linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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	[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).