Re: [PATCH net-next v2 2/3] net: dsa: mv88e6xxx: move call to mv88e6xxx_mdios_register()

From: Klaus Kudielka
Date: Sun Mar 12 2023 - 06:15:26 EST


On Sun, 2023-03-12 at 00:49 +0200, Vladimir Oltean wrote:
> While testing this, I've noticed the following behavior change:
>
> Before:
>
> [root@mox:~] # echo d0032004.mdio-mii:10 > /sys/bus/mdio_bus/drivers/mv88e6085/unbind
...
> [root@mox:~] # echo d0032004.mdio-mii:10 > /sys/bus/mdio_bus/drivers/mv88e6085/bind
> [   45.726662] mv88e6085 d0032004.mdio-mii:10: switch 0x3900 detected: Marvell 88E6390, revision 1
...
> [   55.068103] DSA: tree 0 setup
>
> After:
>
> [root@mox:~] # echo d0032004.mdio-mii:10 > /sys/bus/mdio_bus/drivers/mv88e6085/unbind
...
> [root@mox:~] # echo d0032004.mdio-mii:10 > /sys/bus/mdio_bus/drivers/mv88e6085/bind
> [   46.422669] mv88e6085 d0032004.mdio-mii:10: switch 0x3900 detected: Marvell 88E6390, revision 1
...
> [   51.351383] mv88e6085 d0032004.mdio-mii:11 lan9 (uninitialized): PHY [!soc!internal-regs@d0000000!mdio@32004!switch1@11!mdio:01] driver [Marvell 88E6390 Family] (irq=0)
> [   51.366620] Marvell 88E6390 Family !soc!internal-regs@d0000000!mdio@32004!switch1@11!mdio:01: Error -22 requesting IRQ 0, falling back to polling
...
> [   56.197980] DSA: tree 0 setup
>
> instead I am noticing that the internal PHYs of switch d0032004.mdio-mii:11 and
> d0032004.mdio-mii:12 are failing in phy_request_interrupt() - request_threaded_irq()
> returns -EINVAL.
>
> I haven't studied yet why that is. This happens with arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts,
> which doesn't describe the switch PHY interrupts in the DTS. I don't know more yet.
>
> There's nothing worth mentioning in the boot log prior to my unbind/bind commands.

Just trying to reproduce this on the Omnia (with the whole series applied, plus some
*** debug *** messages concerning timing). But all seems to be good here:

root@spare:/sys/bus/mdio_bus/drivers/mv88e6085# echo f1072004.mdio-mii:10 >unbind
[ 3735.983144] mvneta f1030000.ethernet eth1: Link is Down
[ 3735.987548] mvneta f1030000.ethernet eth1: configuring for fixed/rgmii link mode
[ 3735.988464] mvneta f1070000.ethernet eth0: left promiscuous mode
[ 3735.988544] mvneta f1030000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
[ 3735.990900] br0: port 5(lan0) entered disabled state
[ 3735.992379] mv88e6085 f1072004.mdio-mii:10 lan0 (unregistering): left allmulticast mode
[ 3735.992392] mv88e6085 f1072004.mdio-mii:10 lan0 (unregistering): left promiscuous mode
[ 3735.992438] br0: port 5(lan0) entered disabled state
[ 3736.054036] br0: port 4(lan1) entered disabled state
[ 3736.054239] mv88e6085 f1072004.mdio-mii:10 lan1 (unregistering): left allmulticast mode
[ 3736.054248] mv88e6085 f1072004.mdio-mii:10 lan1 (unregistering): left promiscuous mode
[ 3736.054275] br0: port 4(lan1) entered disabled state
[ 3736.107691] br0: port 3(lan2) entered disabled state
[ 3736.107894] mv88e6085 f1072004.mdio-mii:10 lan2 (unregistering): left allmulticast mode
[ 3736.107903] mv88e6085 f1072004.mdio-mii:10 lan2 (unregistering): left promiscuous mode
[ 3736.107929] br0: port 3(lan2) entered disabled state
[ 3736.155780] br0: port 2(lan3) entered disabled state
[ 3736.155974] mv88e6085 f1072004.mdio-mii:10 lan3 (unregistering): left allmulticast mode
[ 3736.155983] mv88e6085 f1072004.mdio-mii:10 lan3 (unregistering): left promiscuous mode
[ 3736.156011] br0: port 2(lan3) entered disabled state
[ 3736.211477] br0: port 1(lan4) entered disabled state
[ 3736.211787] mv88e6085 f1072004.mdio-mii:10 lan4 (unregistering): left allmulticast mode
[ 3736.211797] mvneta f1030000.ethernet eth1: left allmulticast mode
[ 3736.211811] mv88e6085 f1072004.mdio-mii:10 lan4 (unregistering): left promiscuous mode
[ 3736.211816] mvneta f1030000.ethernet eth1: left promiscuous mode
[ 3736.211865] br0: port 1(lan4) entered disabled state
[ 3736.282416] mv88e6085 f1072004.mdio-mii:10: Link is Down
[ 3736.283704] mv88e6085 f1072004.mdio-mii:10: Link is Down
[ 3736.284864] DSA: tree 0 torn down


root@spare:/sys/bus/mdio_bus/drivers/mv88e6085# echo f1072004.mdio-mii:10 >bind
[ 3812.564891] mv88e6085 f1072004.mdio-mii:10: *** mv88e6xxx_probe call ***
[ 3812.565234] mv88e6085 f1072004.mdio-mii:10: switch 0x1760 detected: Marvell 88E6176, revision 1
[ 3812.587468] mdio_bus mv88e6xxx-1: *** mdiobus_scan_bus_c22 call ***
[ 3812.685412] mdio_bus mv88e6xxx-1: *** mdiobus_scan_bus_c22 return ***
[ 3812.685424] mdio_bus mv88e6xxx-1: *** mdiobus_scan_bus_c45 call ***
[ 3812.877792] mdio_bus mv88e6xxx-1: *** mdiobus_scan_bus_c45 return ***
[ 3813.539320] mv88e6085 f1072004.mdio-mii:10: configuring for fixed/rgmii-id link mode
[ 3813.541571] mv88e6085 f1072004.mdio-mii:10: configuring for fixed/rgmii-id link mode
[ 3813.542825] mv88e6085 f1072004.mdio-mii:10: Link is Up - 1Gbps/Full - flow control off
[ 3813.547546] mv88e6085 f1072004.mdio-mii:10: Link is Up - 1Gbps/Full - flow control off
[ 3813.588899] mv88e6085 f1072004.mdio-mii:10 lan0 (uninitialized): PHY [mv88e6xxx-1:00] driver [Marvell 88E1540] (irq=68)
[ 3813.593875] mvneta f1030000.ethernet eth1: Link is Down
[ 3813.598298] mvneta f1030000.ethernet eth1: configuring for fixed/rgmii link mode
[ 3813.598402] mvneta f1030000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
[ 3813.642980] br0: port 1(lan0) entered blocking state
[ 3813.642996] br0: port 1(lan0) entered disabled state
[ 3813.643022] mv88e6085 f1072004.mdio-mii:10 lan0: entered allmulticast mode
[ 3813.643031] mvneta f1030000.ethernet eth1: entered allmulticast mode
[ 3813.694319] mv88e6085 f1072004.mdio-mii:10 lan0: entered promiscuous mode
[ 3813.694329] mvneta f1030000.ethernet eth1: entered promiscuous mode
[ 3813.695964] mv88e6085 f1072004.mdio-mii:10 lan1 (uninitialized): PHY [mv88e6xxx-1:01] driver [Marvell 88E1540] (irq=69)
[ 3813.704931] mv88e6085 f1072004.mdio-mii:10 lan0: configuring for phy/gmii link mode
[ 3813.756527] br0: port 2(lan1) entered blocking state
[ 3813.756539] br0: port 2(lan1) entered disabled state
[ 3813.756560] mv88e6085 f1072004.mdio-mii:10 lan1: entered allmulticast mode
[ 3813.763061] mv88e6085 f1072004.mdio-mii:10 lan2 (uninitialized): PHY [mv88e6xxx-1:02] driver [Marvell 88E1540] (irq=70)
[ 3813.791552] mv88e6085 f1072004.mdio-mii:10 lan1: entered promiscuous mode
[ 3813.797391] mv88e6085 f1072004.mdio-mii:10 lan1: configuring for phy/gmii link mode
[ 3813.839969] br0: port 3(lan2) entered blocking state
[ 3813.839982] br0: port 3(lan2) entered disabled state
[ 3813.840003] mv88e6085 f1072004.mdio-mii:10 lan2: entered allmulticast mode
[ 3813.870495] mv88e6085 f1072004.mdio-mii:10 lan2: entered promiscuous mode
[ 3813.871911] mv88e6085 f1072004.mdio-mii:10 lan2: configuring for phy/gmii link mode
[ 3813.889652] mv88e6085 f1072004.mdio-mii:10 lan3 (uninitialized): PHY [mv88e6xxx-1:03] driver [Marvell 88E1540] (irq=71)
[ 3813.940164] br0: port 4(lan3) entered blocking state
[ 3813.940176] br0: port 4(lan3) entered disabled state
[ 3813.940198] mv88e6085 f1072004.mdio-mii:10 lan3: entered allmulticast mode
[ 3813.971126] mv88e6085 f1072004.mdio-mii:10 lan3: entered promiscuous mode
[ 3813.972540] mv88e6085 f1072004.mdio-mii:10 lan3: configuring for phy/gmii link mode
[ 3813.989835] mv88e6085 f1072004.mdio-mii:10 lan4 (uninitialized): PHY [mv88e6xxx-1:04] driver [Marvell 88E1540] (irq=72)
[ 3813.999680] mvneta f1070000.ethernet eth0: entered promiscuous mode
[ 3813.999719] DSA: tree 0 setup
[ 3813.999727] mv88e6085 f1072004.mdio-mii:10: *** mv88e6xxx_probe return 0 ***
[ 3814.043574] br0: port 5(lan4) entered blocking state
[ 3814.043587] br0: port 5(lan4) entered disabled state
[ 3814.043610] mv88e6085 f1072004.mdio-mii:10 lan4: entered allmulticast mode
[ 3814.073902] mv88e6085 f1072004.mdio-mii:10 lan4: entered promiscuous mode
[ 3814.075319] mv88e6085 f1072004.mdio-mii:10 lan4: configuring for phy/gmii link mode
[ 3817.139771] mv88e6085 f1072004.mdio-mii:10 lan3: Link is Up - 1Gbps/Full - flow control rx/tx
[ 3817.139793] IPv6: ADDRCONF(NETDEV_CHANGE): lan3: link becomes ready
[ 3817.139854] br0: port 4(lan3) entered blocking state
[ 3817.139862] br0: port 4(lan3) entered forwarding state

Best regards, Klaus