I've received reports that an ethernet usb dongle doesn't work (google internal bug 304028301)...
Investigation shows that we have 5.10 (GKI) with USB_NET_AX8817X=y and AX88796B_PHY not set. I *think* this configuration combination makes no sense? [note: I'm unsure how many different phy's this driver supports...]
Obviously, we could simply turn it on 'manually'... but:
commit dde25846925765a88df8964080098174495c1f10 Author: Oleksij Rempel o.rempel@pengutronix.de Date: Mon Jun 7 10:27:22 2021 +0200
net: usb/phy: asix: add support for ax88772A/C PHYs
Add support for build-in x88772A/C PHYs
Signed-off-by: Oleksij Rempel o.rempel@pengutronix.de Reviewed-by: Andrew Lunn andrew@lunn.ch Signed-off-by: David S. Miller davem@davemloft.net
includes (as a side effect):
drivers/net/usb/Kconfig @@ -164,6 +164,7 @@ config USB_NET_AX8817X depends on USB_USBNET select CRC32 select PHYLIB + select AX88796B_PHY default y
which presumably makes this (particular problem) a non issue on 5.15+
I'm guessing the above fix (ie. commit dde25846925765a88df8964080098174495c1f10) could (should?) simply be backported to older stable kernels?
I've verified it cherrypicks cleanly and builds (on x86_64 5.10 gki), ie. $ git checkout android/kernel/common/android13-5.10 $ git cherry-pick -x dde25846925765a88df8964080098174495c1f10 $ make ARCH=x86_64 gki_defconfig $ egrep -i ax88796b < .config CONFIG_AX88796B_PHY=y $ make -j50 ./drivers/net/phy/ax88796b.o gets built
I've sourced a copy of the problematic hardware, but I'm hitting problems where on at least two (both my chromebook and 1 of the 2 usb-c ports on my lenovo laptop) totally different usb controllers/ports it doesn't even usb enumerate (ie. nothing in dmesg, no show on lsusb), which is making testing difficult (unsure if I just got a bad sample)...
- Maciej
On Sun, Oct 15, 2023 at 2:55 PM Maciej Żenczykowski maze@google.com wrote:
I've received reports that an ethernet usb dongle doesn't work (google internal bug 304028301)...
Investigation shows that we have 5.10 (GKI) with USB_NET_AX8817X=y and AX88796B_PHY not set. I *think* this configuration combination makes no sense? [note: I'm unsure how many different phy's this driver supports...]
Obviously, we could simply turn it on 'manually'... but:
commit dde25846925765a88df8964080098174495c1f10 Author: Oleksij Rempel o.rempel@pengutronix.de Date: Mon Jun 7 10:27:22 2021 +0200
net: usb/phy: asix: add support for ax88772A/C PHYs Add support for build-in x88772A/C PHYs Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
includes (as a side effect):
drivers/net/usb/Kconfig @@ -164,6 +164,7 @@ config USB_NET_AX8817X depends on USB_USBNET select CRC32 select PHYLIB
select AX88796B_PHY default y
which presumably makes this (particular problem) a non issue on 5.15+
I'm guessing the above fix (ie. commit dde25846925765a88df8964080098174495c1f10) could (should?) simply be backported to older stable kernels?
I've verified it cherrypicks cleanly and builds (on x86_64 5.10 gki), ie. $ git checkout android/kernel/common/android13-5.10 $ git cherry-pick -x dde25846925765a88df8964080098174495c1f10 $ make ARCH=x86_64 gki_defconfig $ egrep -i ax88796b < .config CONFIG_AX88796B_PHY=y $ make -j50 ./drivers/net/phy/ax88796b.o gets built
I've sourced a copy of the problematic hardware, but I'm hitting problems where on at least two (both my chromebook and 1 of the 2 usb-c ports on my lenovo laptop) totally different usb controllers/ports it doesn't even usb enumerate (ie. nothing in dmesg, no show on lsusb), which is making testing difficult (unsure if I just got a bad sample)...
And actually looking longer at the logs:
usb 1-5: new high-speed USB device number 9 using xhci_hcd usb 1-5: New USB device found, idVendor=0b95, idProduct=772b, bcdDevice= 0.02 usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-5: Product: AX88772C usb 1-5: Manufacturer: ASIX Elec. Corp. usb 1-5: SerialNumber: 000002 asix 1-5:1.0 (unnamed net_device) (uninitialized): PHY [usb-001:009:10] driver [Asix Electronics AX88772C] (irq=POLL) Asix Electronics AX88772C usb-001:009:10: attached PHY driver (mii_bus:phy_addr=usb-001:009:10, irq=POLL) asix 1-5:1.0 eth0: register 'asix' at usb-0000:00:14.0-5, ASIX AX88772B USB 2.0 Ethernet, 14:ae:85:70:44:29 asix 1-5:1.0 enx14ae85704429: renamed from eth0 asix 1-5:1.0 enx14ae85704429: configuring for phy/internal link mode usb 1-5: USB disconnect, device number 9 asix 1-5:1.0 enx14ae85704429: unregister 'asix' usb-0000:00:14.0-5, ASIX AX88772B USB 2.0 Ethernet
It looks like the rest of that patch is needed too, since it is a AX88772C phy.
This means even with the option manually enabled, we'd still need to cherrypick dde25846925765a88df8964080098174495c1f10 "net: usb/phy: asix: add support for ax88772A/C PHYs" since apparently this is simply new(ish) hardware with built-in x88772C PHY.
On Sun, Oct 15, 2023 at 03:13:26PM -0700, Maciej Żenczykowski wrote:
On Sun, Oct 15, 2023 at 2:55 PM Maciej Żenczykowski maze@google.com wrote: And actually looking longer at the logs:
usb 1-5: new high-speed USB device number 9 using xhci_hcd usb 1-5: New USB device found, idVendor=0b95, idProduct=772b, bcdDevice= 0.02 usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-5: Product: AX88772C usb 1-5: Manufacturer: ASIX Elec. Corp. usb 1-5: SerialNumber: 000002 asix 1-5:1.0 (unnamed net_device) (uninitialized): PHY [usb-001:009:10] driver [Asix Electronics AX88772C] (irq=POLL) Asix Electronics AX88772C usb-001:009:10: attached PHY driver (mii_bus:phy_addr=usb-001:009:10, irq=POLL) asix 1-5:1.0 eth0: register 'asix' at usb-0000:00:14.0-5, ASIX AX88772B USB 2.0 Ethernet, 14:ae:85:70:44:29 asix 1-5:1.0 enx14ae85704429: renamed from eth0 asix 1-5:1.0 enx14ae85704429: configuring for phy/internal link mode usb 1-5: USB disconnect, device number 9 asix 1-5:1.0 enx14ae85704429: unregister 'asix' usb-0000:00:14.0-5, ASIX AX88772B USB 2.0 Ethernet
It looks like the rest of that patch is needed too, since it is a AX88772C phy.
This means even with the option manually enabled, we'd still need to cherrypick dde25846925765a88df8964080098174495c1f10 "net: usb/phy: asix: add support for ax88772A/C PHYs" since apparently this is simply new(ish) hardware with built-in x88772C PHY.
As far as I see, you are not using clean mainline stable kernel. All changes which make your kernel to need an external PHY driver are _not_ in v5.10.198.
You will need to cherrypick at least 28 last patches from this stack: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
and some from here too: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
Regards, Oleksij
On Mon, Oct 16, 2023 at 1:29 AM Oleksij Rempel o.rempel@pengutronix.de wrote:
On Sun, Oct 15, 2023 at 03:13:26PM -0700, Maciej Żenczykowski wrote:
On Sun, Oct 15, 2023 at 2:55 PM Maciej Żenczykowski maze@google.com wrote: And actually looking longer at the logs:
usb 1-5: new high-speed USB device number 9 using xhci_hcd usb 1-5: New USB device found, idVendor=0b95, idProduct=772b, bcdDevice= 0.02 usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-5: Product: AX88772C usb 1-5: Manufacturer: ASIX Elec. Corp. usb 1-5: SerialNumber: 000002 asix 1-5:1.0 (unnamed net_device) (uninitialized): PHY [usb-001:009:10] driver [Asix Electronics AX88772C] (irq=POLL) Asix Electronics AX88772C usb-001:009:10: attached PHY driver (mii_bus:phy_addr=usb-001:009:10, irq=POLL) asix 1-5:1.0 eth0: register 'asix' at usb-0000:00:14.0-5, ASIX AX88772B USB 2.0 Ethernet, 14:ae:85:70:44:29 asix 1-5:1.0 enx14ae85704429: renamed from eth0 asix 1-5:1.0 enx14ae85704429: configuring for phy/internal link mode usb 1-5: USB disconnect, device number 9 asix 1-5:1.0 enx14ae85704429: unregister 'asix' usb-0000:00:14.0-5, ASIX AX88772B USB 2.0 Ethernet
It looks like the rest of that patch is needed too, since it is a AX88772C phy.
This means even with the option manually enabled, we'd still need to cherrypick dde25846925765a88df8964080098174495c1f10 "net: usb/phy: asix: add support for ax88772A/C PHYs" since apparently this is simply new(ish) hardware with built-in x88772C PHY.
As far as I see, you are not using clean mainline stable kernel. All changes which make your kernel to need an external PHY driver are _not_ in v5.10.198.
No, the dmesg was actually from a (probably clean-ish 6.4-ish) debian kernel on my laptop, where the device enumerates and works in one of the 2 usb-c ports.
As I mentioned the hardware that actually runs 5.10 is having issues even detecting my test device. (and while that 5.10 is far from clean mainline, the usb and network driver portions are more or less untouched)
You will need to cherrypick at least 28 last patches from this stack: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
and some from here too: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
I think this basically means the answer is "if you want this to work upgrade to a newer kernel". Which of course won't make any users happy, but oh well...
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 |
On Mon, Oct 16, 2023 at 11:27:07AM -0700, Maciej Żenczykowski wrote:
On Mon, Oct 16, 2023 at 1:29 AM Oleksij Rempel o.rempel@pengutronix.de wrote:
On Sun, Oct 15, 2023 at 03:13:26PM -0700, Maciej Żenczykowski wrote:
This means even with the option manually enabled, we'd still need to cherrypick dde25846925765a88df8964080098174495c1f10 "net: usb/phy: asix: add support for ax88772A/C PHYs" since apparently this is simply new(ish) hardware with built-in x88772C PHY.
As far as I see, you are not using clean mainline stable kernel. All changes which make your kernel to need an external PHY driver are _not_ in v5.10.198.
No, the dmesg was actually from a (probably clean-ish 6.4-ish) debian kernel on my laptop, where the device enumerates and works in one of the 2 usb-c ports.
As I mentioned the hardware that actually runs 5.10 is having issues even detecting my test device. (and while that 5.10 is far from clean mainline, the usb and network driver portions are more or less untouched)
You will need to cherrypick at least 28 last patches from this stack: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
and some from here too: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
I think this basically means the answer is "if you want this to work upgrade to a newer kernel". Which of course won't make any users happy, but oh well...
It means - what ever problem there is, it is most probably not related to the asix driver. In kernel v5.10, there are no external dependencies to other PHY drivers.
Regards, Oleksij
On Mon, Oct 16, 2023 at 9:20 PM Oleksij Rempel o.rempel@pengutronix.de wrote:
On Mon, Oct 16, 2023 at 11:27:07AM -0700, Maciej Żenczykowski wrote:
On Mon, Oct 16, 2023 at 1:29 AM Oleksij Rempel o.rempel@pengutronix.de wrote:
On Sun, Oct 15, 2023 at 03:13:26PM -0700, Maciej Żenczykowski wrote:
This means even with the option manually enabled, we'd still need to cherrypick dde25846925765a88df8964080098174495c1f10 "net: usb/phy: asix: add support for ax88772A/C PHYs" since apparently this is simply new(ish) hardware with built-in x88772C PHY.
As far as I see, you are not using clean mainline stable kernel. All changes which make your kernel to need an external PHY driver are _not_ in v5.10.198.
No, the dmesg was actually from a (probably clean-ish 6.4-ish) debian kernel on my laptop, where the device enumerates and works in one of the 2 usb-c ports.
As I mentioned the hardware that actually runs 5.10 is having issues even detecting my test device. (and while that 5.10 is far from clean mainline, the usb and network driver portions are more or less untouched)
You will need to cherrypick at least 28 last patches from this stack: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
and some from here too: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
I think this basically means the answer is "if you want this to work upgrade to a newer kernel". Which of course won't make any users happy, but oh well...
It means - what ever problem there is, it is most probably not related to the asix driver. In kernel v5.10, there are no external dependencies to other PHY drivers.
I take this to mean you think that the built-in ax88772C PHY should work out of the box with 5.10, and if it doesn't then this presumably means there's something wrong at the usb controller level. (hopefully I'll get a second unit and be able to confirm this...)
I take this to mean you think that the built-in ax88772C PHY should work out of the box with 5.10, and if it doesn't then this presumably means there's something wrong at the usb controller level. (hopefully I'll get a second unit and be able to confirm this...)
Just to follow up on this.
I got my hands on a second identical adapter (the one that got the bug filed in the first place).
It behaves (ie. fails) in exactly the same way. ie. dmesg (on multiple devices, but only on some usb-c ports) doesn't even show usb connect events, nothing on lsusb (of course), etc.
(The fact that both of these adapters work on exactly the same 1 of 2 usb-c ports on my lenovo thinkpad laptop is particularly weird... you'd think those would be identical...)
I'm going to blame this on usb controller compatibility issues.
I'll have to track down someone with a usb wire sniffer and a desire to debug this further.
Hi Maciej,
On Sun, Oct 15, 2023 at 02:55:29PM -0700, Maciej Żenczykowski wrote:
I've received reports that an ethernet usb dongle doesn't work (google internal bug 304028301)...
Investigation shows that we have 5.10 (GKI) with USB_NET_AX8817X=y and AX88796B_PHY not set. I *think* this configuration combination makes no sense? [note: I'm unsure how many different phy's this driver supports...]
After porting part of this driver to PHYlib and then to PHYlink, the driver is capable of supporting nearly all drivers/net/phy/*
I did this port for following USB Ethernet adapter which needs different PHY: https://linux-automation.com/en/products/usb-t1l.html
Obviously, we could simply turn it on 'manually'... but:
commit dde25846925765a88df8964080098174495c1f10 Author: Oleksij Rempel o.rempel@pengutronix.de Date: Mon Jun 7 10:27:22 2021 +0200
net: usb/phy: asix: add support for ax88772A/C PHYs Add support for build-in x88772A/C PHYs Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
includes (as a side effect):
drivers/net/usb/Kconfig @@ -164,6 +164,7 @@ config USB_NET_AX8817X depends on USB_USBNET select CRC32 select PHYLIB
select AX88796B_PHY default y
which presumably makes this (particular problem) a non issue on 5.15+
I'm guessing the above fix (ie. commit dde25846925765a88df8964080098174495c1f10) could (should?) simply be backported to older stable kernels?
I've verified it cherrypicks cleanly and builds (on x86_64 5.10 gki), ie. $ git checkout android/kernel/common/android13-5.10 $ git cherry-pick -x dde25846925765a88df8964080098174495c1f10 $ make ARCH=x86_64 gki_defconfig $ egrep -i ax88796b < .config CONFIG_AX88796B_PHY=y $ make -j50 ./drivers/net/phy/ax88796b.o gets built
As far as i know, mainline kernel v5.10.198 do not supports ax88772A/C PHYs within the ax88796b.c driver: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/driver...
There is no need to backport this patch to other stable kernels, except they include porting of drivers/net/usb/asix_devices to PHYlink framework.
I've sourced a copy of the problematic hardware, but I'm hitting problems where on at least two (both my chromebook and 1 of the 2 usb-c ports on my lenovo laptop) totally different usb controllers/ports it doesn't even usb enumerate (ie. nothing in dmesg, no show on lsusb), which is making testing difficult (unsure if I just got a bad sample)...
I use ax88772 based HW on different systems including on UCB-C ports (for example on DELL XPS 13 developer edition)
Regards, Oleksij
linux-stable-mirror@lists.linaro.org