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