* Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") @ 2021-08-11 14:55 Jarkko Nikula 2021-08-16 15:13 ` Jakub Kicinski 0 siblings, 1 reply; 8+ messages in thread From: Jarkko Nikula @ 2021-08-11 14:55 UTC (permalink / raw) To: Oleksij Rempel; +Cc: netdev, linux-usb, David S. Miller Hi Our ASIX USB ethernet adapter stopped working after v5.14-rc1. It doesn't get an IP from DHCP. v5.13 works ok. v5.14-rc1 and today's head 761c6d7ec820 ("Merge tag 'arc-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc") show the regression. I bisected regression into e532a096be0e ("net: usb: asix: ax88772: add phylib support"). Here's the dmesg snippet from working and non-working cases: OK: [ 6.115773] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 [ 8.595202] asix 1-8:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1 NOK: [ 6.511543] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 [ 8.518219] asix 1-8:1.0 eth0: Link is Down lsusb -d 0b95:7720 Bus 001 Device 002: ID 0b95:7720 ASIX Electronics Corp. AX88772 Jarkko ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") 2021-08-11 14:55 Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") Jarkko Nikula @ 2021-08-16 15:13 ` Jakub Kicinski 2021-08-16 16:18 ` Oleksij Rempel 0 siblings, 1 reply; 8+ messages in thread From: Jakub Kicinski @ 2021-08-16 15:13 UTC (permalink / raw) To: Oleksij Rempel; +Cc: Jarkko Nikula, netdev, linux-usb, David S. Miller On Wed, 11 Aug 2021 17:55:34 +0300 Jarkko Nikula wrote: > Hi > > Our ASIX USB ethernet adapter stopped working after v5.14-rc1. It > doesn't get an IP from DHCP. > > v5.13 works ok. v5.14-rc1 and today's head 761c6d7ec820 ("Merge tag > 'arc-5.14-rc6' of > git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc") show the > regression. > > I bisected regression into e532a096be0e ("net: usb: asix: ax88772: add > phylib support"). Oleksij, any comments? > Here's the dmesg snippet from working and non-working cases: > > OK: > [ 6.115773] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, > ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 > [ 8.595202] asix 1-8:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1 > > NOK: > [ 6.511543] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, > ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 > [ 8.518219] asix 1-8:1.0 eth0: Link is Down > > lsusb -d 0b95:7720 > Bus 001 Device 002: ID 0b95:7720 ASIX Electronics Corp. AX88772 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") 2021-08-16 15:13 ` Jakub Kicinski @ 2021-08-16 16:18 ` Oleksij Rempel 2021-08-17 8:23 ` Jarkko Nikula 0 siblings, 1 reply; 8+ messages in thread From: Oleksij Rempel @ 2021-08-16 16:18 UTC (permalink / raw) To: Jakub Kicinski Cc: Oleksij Rempel, Jarkko Nikula, netdev, linux-usb, David S. Miller Hi, On Mon, Aug 16, 2021 at 08:13:14AM -0700, Jakub Kicinski wrote: > On Wed, 11 Aug 2021 17:55:34 +0300 Jarkko Nikula wrote: > > Hi > > > > Our ASIX USB ethernet adapter stopped working after v5.14-rc1. It > > doesn't get an IP from DHCP. > > > > v5.13 works ok. v5.14-rc1 and today's head 761c6d7ec820 ("Merge tag > > 'arc-5.14-rc6' of > > git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc") show the > > regression. > > > > I bisected regression into e532a096be0e ("net: usb: asix: ax88772: add > > phylib support"). > > Oleksij, any comments? sorry, I lost it from radar. > > Here's the dmesg snippet from working and non-working cases: > > > > OK: > > [ 6.115773] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, > > ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 > > [ 8.595202] asix 1-8:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1 > > > > NOK: > > [ 6.511543] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, > > ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 > > [ 8.518219] asix 1-8:1.0 eth0: Link is Down > > > > lsusb -d 0b95:7720 > > Bus 001 Device 002: ID 0b95:7720 ASIX Electronics Corp. AX88772 > It sounds like issue which was fixed with the patch: "net: usb: asix: ax88772: suspend PHY on driver probe" This patch was taken in to v5.14-rc2. Can you please test it? Regards, Oleksij -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") 2021-08-16 16:18 ` Oleksij Rempel @ 2021-08-17 8:23 ` Jarkko Nikula 2021-08-17 9:09 ` Oleksij Rempel 0 siblings, 1 reply; 8+ messages in thread From: Jarkko Nikula @ 2021-08-17 8:23 UTC (permalink / raw) To: Oleksij Rempel, Jakub Kicinski Cc: Oleksij Rempel, netdev, linux-usb, David S. Miller Hi On 8/16/21 7:18 PM, Oleksij Rempel wrote: >>> v5.13 works ok. v5.14-rc1 and today's head 761c6d7ec820 ("Merge tag >>> 'arc-5.14-rc6' of >>> git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc") show the >>> regression. >>> >>> I bisected regression into e532a096be0e ("net: usb: asix: ax88772: add >>> phylib support"). >> > It sounds like issue which was fixed with the patch: > "net: usb: asix: ax88772: suspend PHY on driver probe" > > This patch was taken in to v5.14-rc2. Can you please test it? > Unfortunately it does not fix and was included in last week head 761c6d7ec820. I tested now also linux-next tag next-20210816 and the issue remains. Jarkko ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") 2021-08-17 8:23 ` Jarkko Nikula @ 2021-08-17 9:09 ` Oleksij Rempel 2021-08-17 11:55 ` Jarkko Nikula 0 siblings, 1 reply; 8+ messages in thread From: Oleksij Rempel @ 2021-08-17 9:09 UTC (permalink / raw) To: Jarkko Nikula Cc: Jakub Kicinski, Oleksij Rempel, netdev, linux-usb, David S. Miller On Tue, Aug 17, 2021 at 11:23:40AM +0300, Jarkko Nikula wrote: > Hi > > On 8/16/21 7:18 PM, Oleksij Rempel wrote: > > > > v5.13 works ok. v5.14-rc1 and today's head 761c6d7ec820 ("Merge tag > > > > 'arc-5.14-rc6' of > > > > git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc") show the > > > > regression. > > > > > > > > I bisected regression into e532a096be0e ("net: usb: asix: ax88772: add > > > > phylib support"). > > > > > It sounds like issue which was fixed with the patch: > > "net: usb: asix: ax88772: suspend PHY on driver probe" > > > > This patch was taken in to v5.14-rc2. Can you please test it? > > > Unfortunately it does not fix and was included in last week head > 761c6d7ec820. I tested now also linux-next tag next-20210816 and the issue > remains. OK thx, I'll need to your help to debug it: - please send me complete log, or at least parts related to the asix (dmesg | grep -i Asix) - do the interface is not able to go up at all? For example, it works on hot plug, but is not working on reboot. - Can you please test it with other link partners. Regards, Oleksij -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") 2021-08-17 9:09 ` Oleksij Rempel @ 2021-08-17 11:55 ` Jarkko Nikula 2021-08-20 4:06 ` Oleksij Rempel 0 siblings, 1 reply; 8+ messages in thread From: Jarkko Nikula @ 2021-08-17 11:55 UTC (permalink / raw) To: Oleksij Rempel Cc: Jakub Kicinski, Oleksij Rempel, netdev, linux-usb, David S. Miller [-- Attachment #1: Type: text/plain, Size: 752 bytes --] On 8/17/21 12:09 PM, Oleksij Rempel wrote: > OK thx, I'll need to your help to debug it: > - please send me complete log, or at least parts related to the asix > (dmesg | grep -i Asix) I added following dyndebug options if that helps: asix.dyndbg=+p ax88179_178a.dyndbg=+p Around ~8 s or so after bootup I run following: ifconfig eth0 down; sleep 5; ifconfig eth0 up; sleep 5; ifconfig eth0 down Attachments have grepped dmesg from v5.13 and linux-next next-20210816. > - do the interface is not able to go up at all? For example, it works on > hot plug, but is not working on reboot. > - Can you please test it with other link partners. > I'm now testing this remotely but can test these later this week or next week at the office. Jarko [-- Attachment #2: dmesg-asix-next-20210816 --] [-- Type: text/plain, Size: 19678 bytes --] [ 5.102426] usbcore: registered new interface driver asix [ 5.689331] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_gpio() - value = 0x00b0 [ 5.862604] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_rx_ctl() - mode = 0x0088 [ 5.863707] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_medium_mode() - mode = 0x0336 [ 5.863996] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_rx_ctl() - mode = 0x0088 [ 5.864184] asix 1-8:1.0 (unnamed net_device) (uninitialized): RX_CTL is 0x0088 after all initializations [ 5.864250] asix 1-8:1.0 (unnamed net_device) (uninitialized): Medium Status is 0x0336 after all initializations [ 5.866177] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x00, loc=0x02, returns=0x0000 [ 5.867606] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x00, loc=0x03, returns=0x0000 [ 5.869713] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x01, loc=0x02, returns=0x0000 [ 5.871291] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x01, loc=0x03, returns=0x0000 [ 5.873115] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x02, loc=0x02, returns=0x0000 [ 5.874541] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x02, loc=0x03, returns=0x0000 [ 5.876701] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x03, loc=0x02, returns=0x0000 [ 5.878112] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x03, loc=0x03, returns=0x0000 [ 5.880186] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x04, loc=0x02, returns=0x0000 [ 5.881613] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x04, loc=0x03, returns=0x0000 [ 5.883550] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x05, loc=0x02, returns=0x0000 [ 5.884970] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x05, loc=0x03, returns=0x0000 [ 5.887026] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x06, loc=0x02, returns=0x0000 [ 5.888445] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x06, loc=0x03, returns=0x0000 [ 5.890247] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x07, loc=0x02, returns=0x0000 [ 5.891862] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x07, loc=0x03, returns=0x0000 [ 5.893646] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x08, loc=0x02, returns=0x0000 [ 5.895265] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x08, loc=0x03, returns=0x0000 [ 5.897048] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x09, loc=0x02, returns=0x0000 [ 5.898461] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x09, loc=0x03, returns=0x0000 [ 5.900569] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0a, loc=0x02, returns=0x0000 [ 5.901986] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0a, loc=0x03, returns=0x0000 [ 5.903928] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0b, loc=0x02, returns=0x0000 [ 5.905345] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0b, loc=0x03, returns=0x0000 [ 5.907113] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0c, loc=0x02, returns=0x0000 [ 5.908526] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0c, loc=0x03, returns=0x0000 [ 5.910318] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0d, loc=0x02, returns=0x0000 [ 5.911731] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0d, loc=0x03, returns=0x0000 [ 5.917353] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0e, loc=0x02, returns=0x0000 [ 5.919060] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0e, loc=0x03, returns=0x0000 [ 5.920845] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0f, loc=0x02, returns=0x0000 [ 5.922265] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0f, loc=0x03, returns=0x0000 [ 5.924451] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x02, returns=0x0000 [ 5.925871] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x03, returns=0x0000 [ 5.927976] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x11, loc=0x02, returns=0x0000 [ 5.929396] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x11, loc=0x03, returns=0x0000 [ 5.931145] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x12, loc=0x02, returns=0x0000 [ 5.932562] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x12, loc=0x03, returns=0x0000 [ 5.934343] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x13, loc=0x02, returns=0x0000 [ 5.935770] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x13, loc=0x03, returns=0x0000 [ 5.937538] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x14, loc=0x02, returns=0x0000 [ 5.938956] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x14, loc=0x03, returns=0x0000 [ 5.940723] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x15, loc=0x02, returns=0x0000 [ 5.942142] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x15, loc=0x03, returns=0x0000 [ 5.944217] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x16, loc=0x02, returns=0x0000 [ 5.945641] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x16, loc=0x03, returns=0x0000 [ 5.947577] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x17, loc=0x02, returns=0x0000 [ 5.948999] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x17, loc=0x03, returns=0x0000 [ 5.951040] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x18, loc=0x02, returns=0x0000 [ 5.952465] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x18, loc=0x03, returns=0x0000 [ 5.954270] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x19, loc=0x02, returns=0x0000 [ 5.955888] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x19, loc=0x03, returns=0x0000 [ 5.957688] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1a, loc=0x02, returns=0x0000 [ 5.959304] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1a, loc=0x03, returns=0x0000 [ 5.961090] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1b, loc=0x02, returns=0x0000 [ 5.962507] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1b, loc=0x03, returns=0x0000 [ 5.964467] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1c, loc=0x02, returns=0x0000 [ 5.965898] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1c, loc=0x03, returns=0x0000 [ 5.967878] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1d, loc=0x02, returns=0x0000 [ 5.969292] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1d, loc=0x03, returns=0x0000 [ 5.971057] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1e, loc=0x02, returns=0x0000 [ 5.972465] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1e, loc=0x03, returns=0x0000 [ 5.974250] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1f, loc=0x02, returns=0x0000 [ 5.975664] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1f, loc=0x03, returns=0x0000 [ 5.976040] libphy: Asix MDIO Bus: probed [ 5.980619] asix 1-8:1.0 (unnamed net_device) (uninitialized): internal PHY address 0x10 [ 5.982100] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 5.983526] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 5.991849] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 5.991854] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_write() phy_id=0x10, loc=0x00, val=0x0800 [ 6.004239] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 [ 8.613824] asix 1-8:1.0 eth0: asix_write_rx_ctl() - mode = 0x0088 [ 8.613884] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0336 [ 8.615666] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 8.617501] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 8.619416] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 8.620893] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 8.622331] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 8.623767] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 8.623774] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0000 [ 8.623838] asix 1-8:1.0 eth0: Link is Down [ 9.648383] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 9.649924] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 9.651356] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 9.652826] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 10.673402] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 10.675653] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 10.677840] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 10.680121] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 11.697167] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 11.699603] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 11.701392] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 11.703281] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 12.721432] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 12.725669] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 12.729115] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 12.731077] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 13.745182] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 13.747300] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 13.749069] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 13.750886] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 14.769116] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 14.771248] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 14.773036] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 14.775255] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 15.793150] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 15.795249] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 15.797345] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 15.799269] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 16.817415] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 16.819447] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 16.821343] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 16.823500] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 17.841118] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 17.844032] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 17.846181] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 17.848424] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 18.865199] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 18.867309] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 18.869079] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 18.870881] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 19.889159] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 19.891305] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 19.893070] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 19.894872] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 20.913129] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 20.915449] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 20.920879] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 20.922283] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 21.937441] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 21.941357] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 21.945004] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 21.948480] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 22.961438] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 22.965379] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 22.968861] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 22.970637] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 23.985147] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 23.987254] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 23.989064] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 23.991300] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 25.009180] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 25.011389] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 25.013606] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 25.015856] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 26.033139] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 26.035224] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 26.037135] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 26.039033] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 27.057144] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 27.059228] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 27.061133] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 27.063023] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 28.081148] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 28.083273] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 28.085168] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 28.087023] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 29.105563] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 29.107787] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 29.109983] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 29.112245] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 29.607054] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 29.607089] asix 1-8:1.0 eth0: asix_mdio_write() phy_id=0x10, loc=0x00, val=0x0800 [ 34.624948] asix 1-8:1.0 eth0: asix_write_rx_ctl() - mode = 0x0088 [ 34.625188] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0336 [ 34.627447] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 34.629408] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 34.631464] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 34.632971] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 34.634390] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 34.636115] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 34.636121] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0000 [ 34.636206] asix 1-8:1.0 eth0: Link is Down [ 35.665396] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 35.667771] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 35.669981] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 35.672218] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 36.689119] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 36.691251] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 36.693059] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 36.694942] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 37.713150] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 37.715903] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 37.717761] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 37.719574] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 38.737204] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 38.739282] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 38.741047] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x0000 [ 38.742840] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 39.640279] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x0000 [ 39.640289] asix 1-8:1.0 eth0: asix_mdio_write() phy_id=0x10, loc=0x00, val=0x0800 [-- Attachment #3: dmesg-asix-v5.13 --] [-- Type: text/plain, Size: 2638 bytes --] [ 5.092980] usbcore: registered new interface driver asix [ 5.754924] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_get_phy_addr() [ 5.754931] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_get_phy_addr() returning 0x10e0 [ 5.754993] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_gpio() - value = 0x00b0 [ 6.011491] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_rx_ctl() - mode = 0x0088 [ 6.011607] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_medium_mode() - mode = 0x0336 [ 6.011783] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_rx_ctl() - mode = 0x0088 [ 6.011909] asix 1-8:1.0 (unnamed net_device) (uninitialized): RX_CTL is 0x0088 after all initializations [ 6.011976] asix 1-8:1.0 (unnamed net_device) (uninitialized): Medium Status is 0x0336 after all initializations [ 6.013536] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x02, returns=0x003b [ 6.015049] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x03, returns=0x1811 [ 6.015055] asix 1-8:1.0 (unnamed net_device) (uninitialized): PHYID=0x003b1811 [ 6.015547] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 [ 8.552935] asix 1-8:1.0 eth0: asix_write_rx_ctl() - mode = 0x0088 [ 8.553071] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0336 [ 8.695480] asix 1-8:1.0 eth0: Link Status is: 1 [ 8.697051] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 8.698505] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 8.700084] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x04, returns=0x01e1 [ 8.701512] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x05, returns=0xc1e1 [ 8.701519] asix 1-8:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1 [ 8.710838] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 8.712254] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 8.714408] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x04, returns=0x01e1 [ 8.716032] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x05, returns=0xc1e1 [ 8.716039] asix 1-8:1.0 eth0: ax88772_link_reset() speed: 100 duplex: 1 setting mode to 0x0336 [ 8.716042] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0336 [ 23.421900] asix 1-8:1.0 eth0: asix_write_rx_ctl() - mode = 0x0088 [ 23.422171] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0336 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") 2021-08-17 11:55 ` Jarkko Nikula @ 2021-08-20 4:06 ` Oleksij Rempel 2021-08-20 8:38 ` Jarkko Nikula 0 siblings, 1 reply; 8+ messages in thread From: Oleksij Rempel @ 2021-08-20 4:06 UTC (permalink / raw) To: Jarkko Nikula Cc: Jakub Kicinski, Oleksij Rempel, netdev, linux-usb, David S. Miller [-- Attachment #1: Type: text/plain, Size: 1383 bytes --] Hi Jarkko, On Tue, Aug 17, 2021 at 02:55:20PM +0300, Jarkko Nikula wrote: > On 8/17/21 12:09 PM, Oleksij Rempel wrote: > > OK thx, I'll need to your help to debug it: > > - please send me complete log, or at least parts related to the asix > > (dmesg | grep -i Asix) > > I added following dyndebug options if that helps: > asix.dyndbg=+p ax88179_178a.dyndbg=+p > > Around ~8 s or so after bootup I run following: > ifconfig eth0 down; sleep 5; ifconfig eth0 up; sleep 5; ifconfig eth0 down > > Attachments have grepped dmesg from v5.13 and linux-next next-20210816. thank you! It helps. > > - do the interface is not able to go up at all? For example, it works on > > hot plug, but is not working on reboot. > > - Can you please test it with other link partners. > > > I'm now testing this remotely but can test these later this week or next > week at the office. Can you please test attached patch. And may be add some prints to the ax88772_hw_reset() and ax88772a_hw_reset(). It would be interesting to know, which variant is actually affected. Regards, Oleksij -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | [-- Attachment #2: 0001-net-usb-asix-ax88772-move-embedded-PHY-detection-as-.patch --] [-- Type: text/x-diff, Size: 4334 bytes --] From a96a1bcaba8afa9d716e88b241ac77d97be068f9 Mon Sep 17 00:00:00 2001 From: Oleksij Rempel <o.rempel@pengutronix.de> Date: Thu, 19 Aug 2021 06:58:52 +0200 Subject: [PATCH] net: usb: asix: ax88772: move embedded PHY detection as early as possible Some HW revisions need additional MAC configuration before the embedded PHY can be enabled. If this is not done, we won't be able to get response from the PHY. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- drivers/net/usb/asix.h | 1 + drivers/net/usb/asix_devices.c | 41 +++++++++++++++++----------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/net/usb/asix.h b/drivers/net/usb/asix.h index e1994a246122..2a1e31defe71 100644 --- a/drivers/net/usb/asix.h +++ b/drivers/net/usb/asix.h @@ -184,6 +184,7 @@ struct asix_common_private { struct phy_device *phydev; u16 phy_addr; char phy_name[20]; + bool embd_phy; }; extern const struct driver_info ax88172a_info; diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c index cb01897c7a5d..a74e67a60436 100644 --- a/drivers/net/usb/asix_devices.c +++ b/drivers/net/usb/asix_devices.c @@ -354,24 +354,23 @@ static int ax88772_reset(struct usbnet *dev) static int ax88772_hw_reset(struct usbnet *dev, int in_pm) { struct asix_data *data = (struct asix_data *)&dev->data; - int ret, embd_phy; + struct asix_common_private *priv = dev->driver_priv; u16 rx_ctl; + int ret; ret = asix_write_gpio(dev, AX_GPIO_RSE | AX_GPIO_GPO_2 | AX_GPIO_GPO2EN, 5, in_pm); if (ret < 0) goto out; - embd_phy = ((dev->mii.phy_id & 0x1f) == 0x10 ? 1 : 0); - - ret = asix_write_cmd(dev, AX_CMD_SW_PHY_SELECT, embd_phy, + ret = asix_write_cmd(dev, AX_CMD_SW_PHY_SELECT, priv->embd_phy, 0, 0, NULL, in_pm); if (ret < 0) { netdev_dbg(dev->net, "Select PHY #1 failed: %d\n", ret); goto out; } - if (embd_phy) { + if (priv->embd_phy) { ret = asix_sw_reset(dev, AX_SWRESET_IPPD, in_pm); if (ret < 0) goto out; @@ -449,17 +448,16 @@ static int ax88772_hw_reset(struct usbnet *dev, int in_pm) static int ax88772a_hw_reset(struct usbnet *dev, int in_pm) { struct asix_data *data = (struct asix_data *)&dev->data; - int ret, embd_phy; + struct asix_common_private *priv = dev->driver_priv; u16 rx_ctl, phy14h, phy15h, phy16h; u8 chipcode = 0; + int ret; ret = asix_write_gpio(dev, AX_GPIO_RSE, 5, in_pm); if (ret < 0) goto out; - embd_phy = ((dev->mii.phy_id & 0x1f) == 0x10 ? 1 : 0); - - ret = asix_write_cmd(dev, AX_CMD_SW_PHY_SELECT, embd_phy | + ret = asix_write_cmd(dev, AX_CMD_SW_PHY_SELECT, priv->embd_phy | AX_PHYSEL_SSEN, 0, 0, NULL, in_pm); if (ret < 0) { netdev_dbg(dev->net, "Select PHY #1 failed: %d\n", ret); @@ -683,12 +681,6 @@ static int ax88772_init_phy(struct usbnet *dev) struct asix_common_private *priv = dev->driver_priv; int ret; - ret = asix_read_phy_addr(dev, true); - if (ret < 0) - return ret; - - priv->phy_addr = ret; - snprintf(priv->phy_name, sizeof(priv->phy_name), PHY_ID_FMT, priv->mdio->id, priv->phy_addr); @@ -715,6 +707,12 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf) struct asix_common_private *priv; int ret, i; + priv = devm_kzalloc(&dev->udev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + dev->driver_priv = priv; + usbnet_get_endpoints(dev, intf); /* Maybe the boot loader passed the MAC address via device tree */ @@ -750,6 +748,13 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf) dev->net->needed_headroom = 4; /* cf asix_tx_fixup() */ dev->net->needed_tailroom = 4; /* cf asix_tx_fixup() */ + ret = asix_read_phy_addr(dev, true); + if (ret < 0) + return ret; + + priv->phy_addr = ret; + priv->embd_phy = ((priv->phy_addr & 0x1f) == 0x10 ? true : false); + asix_read_cmd(dev, AX_CMD_STATMNGSTS_REG, 0, 0, 1, &chipcode, 0); chipcode &= AX_CHIPCODE_MASK; @@ -768,12 +773,6 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf) dev->rx_urb_size = 2048; } - priv = devm_kzalloc(&dev->udev->dev, sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; - - dev->driver_priv = priv; - priv->presvd_phy_bmcr = 0; priv->presvd_phy_advertise = 0; if (chipcode == AX_AX88772_CHIPCODE) { -- 2.30.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") 2021-08-20 4:06 ` Oleksij Rempel @ 2021-08-20 8:38 ` Jarkko Nikula 0 siblings, 0 replies; 8+ messages in thread From: Jarkko Nikula @ 2021-08-20 8:38 UTC (permalink / raw) To: Oleksij Rempel Cc: Jakub Kicinski, Oleksij Rempel, netdev, linux-usb, David S. Miller [-- Attachment #1: Type: text/plain, Size: 638 bytes --] On 8/20/21 7:06 AM, Oleksij Rempel wrote: > Can you please test attached patch. > And may be add some prints to the ax88772_hw_reset() and ax88772a_hw_reset(). > It would be interesting to know, which variant is actually affected. > It works! Looks like it goes through ax88772_hw_reset() here. I added on top of your patch "netdev_dbg(dev->net, "%s\n", __func__);" to beginning of both x88772_hw_reset() and ax88772a_hw_reset(). I attached the "dmesg | grep -i asix". This time no ifconfig down/up jump since machine got the link up and IP from the DHCP server. You may add Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> [-- Attachment #2: dmesg-asix --] [-- Type: text/plain, Size: 15292 bytes --] [ 0.000000] Command line: noinitrd console=ttyS0,115200n8 buildroot_hostname=ehl07 module_blacklist=dw_dmac root=PARTUUID=dcd1314f-692a-8749-8b66-c2a1f1ee46e6 resume=PARTUUID=3a0bb9e6-27ae-46d3-a380-43f04fde12ee i2c_designware_core.dyndbg=+p m_can.dyndbg=+p m_can_pci.dyndbg=+p asix.dyndbg=+p ax88179_178a.dyndbg=+p dmi_entry_point=0x748cd000 [ 0.022619] Kernel command line: noinitrd console=ttyS0,115200n8 buildroot_hostname=ehl07 module_blacklist=dw_dmac root=PARTUUID=dcd1314f-692a-8749-8b66-c2a1f1ee46e6 resume=PARTUUID=3a0bb9e6-27ae-46d3-a380-43f04fde12ee i2c_designware_core.dyndbg=+p m_can.dyndbg=+p m_can_pci.dyndbg=+p asix.dyndbg=+p ax88179_178a.dyndbg=+p dmi_entry_point=0x748cd000 [ 5.126770] usbcore: registered new interface driver asix [ 5.712789] asix 1-8:1.0 (unnamed net_device) (uninitialized): internal PHY address 0x10 [ 5.723591] asix 1-8:1.0 (unnamed net_device) (uninitialized): ax88772_hw_reset [ 5.735668] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_gpio() - value = 0x00b0 [ 6.010792] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_rx_ctl() - mode = 0x0088 [ 6.010915] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_medium_mode() - mode = 0x0336 [ 6.011120] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_write_rx_ctl() - mode = 0x0088 [ 6.011227] asix 1-8:1.0 (unnamed net_device) (uninitialized): RX_CTL is 0x0088 after all initializations [ 6.011309] asix 1-8:1.0 (unnamed net_device) (uninitialized): Medium Status is 0x0336 after all initializations [ 6.013405] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x00, loc=0x02, returns=0x0000 [ 6.014910] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x00, loc=0x03, returns=0x0000 [ 6.021857] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x01, loc=0x02, returns=0x0000 [ 6.023376] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x01, loc=0x03, returns=0x0000 [ 6.030024] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x02, loc=0x02, returns=0x0000 [ 6.031391] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x02, loc=0x03, returns=0x0000 [ 6.035294] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x03, loc=0x02, returns=0x0000 [ 6.036789] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x03, loc=0x03, returns=0x0000 [ 6.040771] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x04, loc=0x02, returns=0x0000 [ 6.042139] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x04, loc=0x03, returns=0x0000 [ 6.046118] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x05, loc=0x02, returns=0x0000 [ 6.047560] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x05, loc=0x03, returns=0x0000 [ 6.051306] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x06, loc=0x02, returns=0x0000 [ 6.052747] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x06, loc=0x03, returns=0x0000 [ 6.056534] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x07, loc=0x02, returns=0x0000 [ 6.057962] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x07, loc=0x03, returns=0x0000 [ 6.061899] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x08, loc=0x02, returns=0x0000 [ 6.068703] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x08, loc=0x03, returns=0x0000 [ 6.072668] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x09, loc=0x02, returns=0x0000 [ 6.074123] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x09, loc=0x03, returns=0x0000 [ 6.078067] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0a, loc=0x02, returns=0x0000 [ 6.079596] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0a, loc=0x03, returns=0x0000 [ 6.083303] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0b, loc=0x02, returns=0x0000 [ 6.084738] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0b, loc=0x03, returns=0x0000 [ 6.088636] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0c, loc=0x02, returns=0x0000 [ 6.090062] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0c, loc=0x03, returns=0x0000 [ 6.093646] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0d, loc=0x02, returns=0x0000 [ 6.095177] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0d, loc=0x03, returns=0x0000 [ 6.098943] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0e, loc=0x02, returns=0x0000 [ 6.100484] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0e, loc=0x03, returns=0x0000 [ 6.104265] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0f, loc=0x02, returns=0x0000 [ 6.105690] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x0f, loc=0x03, returns=0x0000 [ 6.109293] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x02, returns=0x003b [ 6.110716] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x03, returns=0x1811 [ 6.114312] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x11, loc=0x02, returns=0x1811 [ 6.115813] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x11, loc=0x03, returns=0x1811 [ 6.119522] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x12, loc=0x02, returns=0x1811 [ 6.120948] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x12, loc=0x03, returns=0x1811 [ 6.124645] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x13, loc=0x02, returns=0x1811 [ 6.126067] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x13, loc=0x03, returns=0x1811 [ 6.129873] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x14, loc=0x02, returns=0x1811 [ 6.131390] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x14, loc=0x03, returns=0x1811 [ 6.135109] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x15, loc=0x02, returns=0x1811 [ 6.136647] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x15, loc=0x03, returns=0x1811 [ 6.140356] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x16, loc=0x02, returns=0x1811 [ 6.141912] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x16, loc=0x03, returns=0x1811 [ 6.145746] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x17, loc=0x02, returns=0x1811 [ 6.147348] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x17, loc=0x03, returns=0x1811 [ 6.151305] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x18, loc=0x02, returns=0x1811 [ 6.152820] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x18, loc=0x03, returns=0x1811 [ 6.156801] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x19, loc=0x02, returns=0x1811 [ 6.158270] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x19, loc=0x03, returns=0x1811 [ 6.162402] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1a, loc=0x02, returns=0x1811 [ 6.163922] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1a, loc=0x03, returns=0x1811 [ 6.167757] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1b, loc=0x02, returns=0x1811 [ 6.169351] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1b, loc=0x03, returns=0x1811 [ 6.173259] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1c, loc=0x02, returns=0x1811 [ 6.174907] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1c, loc=0x03, returns=0x1811 [ 6.178790] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1d, loc=0x02, returns=0x1811 [ 6.180451] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1d, loc=0x03, returns=0x1811 [ 6.184342] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1e, loc=0x02, returns=0x1811 [ 6.185965] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1e, loc=0x03, returns=0x1811 [ 6.189861] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1f, loc=0x02, returns=0x1811 [ 6.191433] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x1f, loc=0x03, returns=0x1811 [ 6.193647] libphy: Asix MDIO Bus: probed [ 6.199983] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x7809 [ 6.201581] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 6.209848] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 6.209853] asix 1-8:1.0 (unnamed net_device) (uninitialized): asix_mdio_write() phy_id=0x10, loc=0x00, val=0x3900 [ 6.222519] asix 1-8:1.0 eth0: register 'asix' at usb-0000:00:14.0-8, ASIX AX88772 USB 2.0 Ethernet, 00:10:60:31:d5:f8 [ 8.349551] asix 1-8:1.0 eth0: asix_write_rx_ctl() - mode = 0x0088 [ 8.349611] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0336 [ 8.351536] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3900 [ 8.351551] asix 1-8:1.0 eth0: asix_mdio_write() phy_id=0x10, loc=0x00, val=0x3100 [ 8.354707] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x04, returns=0x01e1 [ 8.356264] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x7809 [ 8.357770] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 8.359269] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 8.360677] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x7809 [ 8.362076] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x7809 [ 8.362080] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0000 [ 8.362145] asix 1-8:1.0 eth0: Link is Down [ 9.388904] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 9.390510] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x7809 [ 9.392454] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x7809 [ 10.265292] asix 1-8:1.0 eth0: Link Status is: 1 [ 10.393301] asix 1-8:1.0 eth0: Link Status is: 1 [ 10.413595] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 10.415556] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 10.417402] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x05, returns=0xc1e1 [ 10.417536] asix 1-8:1.0 eth0: asix_write_medium_mode() - mode = 0x0336 [ 10.418225] asix 1-8:1.0 eth0: Link is Up - 100Mbps/Full - flow control off [ 11.437384] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 11.439584] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 12.461627] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 12.463740] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 13.485618] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 13.487713] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 14.509668] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 14.511712] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 15.533691] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 15.537704] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 16.557690] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 16.561641] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 17.581726] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 17.585550] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 18.605660] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 18.607662] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 19.629989] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 19.632010] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 20.653657] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 20.655648] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 21.677710] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 21.679696] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 22.701718] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 22.703702] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 23.726345] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 23.728774] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 24.749636] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 24.752064] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 25.773655] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 25.775642] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 26.797688] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 26.799674] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 27.821728] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 27.823704] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 28.845634] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 28.847683] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 29.869654] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 29.871646] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d [ 30.894304] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x00, returns=0x3100 [ 30.896681] asix 1-8:1.0 eth0: asix_mdio_read() phy_id=0x10, loc=0x01, returns=0x782d ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-08-20 8:38 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-08-11 14:55 Regression with commit e532a096be0e ("net: usb: asix: ax88772: add phylib support") Jarkko Nikula 2021-08-16 15:13 ` Jakub Kicinski 2021-08-16 16:18 ` Oleksij Rempel 2021-08-17 8:23 ` Jarkko Nikula 2021-08-17 9:09 ` Oleksij Rempel 2021-08-17 11:55 ` Jarkko Nikula 2021-08-20 4:06 ` Oleksij Rempel 2021-08-20 8:38 ` Jarkko Nikula
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).