[U-Boot] [PATCH] net: asix: Fix AX88772B when used with DriverModel

Joshua Scott joshua.scott at alliedtelesis.co.nz
Tue Sep 6 06:03:11 CEST 2016


A previous patch (net: asix: fix operation without eeprom) added a
two-byte shift to the packet buffer when receiving a packet on the
AX88772B.

This shift was not included when the driver was updated to work with
DriverModel. Testing on a Marvell DB-88F6820-ACM showed that the adapter
was not functioning correctly (EHCI timeouts).

This patch brings the two-byte shift to the DriverModel implementation
of ops->recv (asix_eth_recv).

Testing on the same board, we were able to TFTP a file over and confirm
that the crc32 was correct.

Signed-off-by: Joshua Scott <joshua.scott at alliedtelesis.co.nz>
---
 drivers/usb/eth/asix.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c
index ad083cf..a610ae4 100644
--- a/drivers/usb/eth/asix.c
+++ b/drivers/usb/eth/asix.c
@@ -819,6 +819,11 @@ int asix_eth_recv(struct udevice *dev, int flags, uchar **packetp)
 	}
 
 	*packetp = ptr + sizeof(packet_len);
+
+	if ((ueth->pusb_dev->descriptor.idVendor == ASIX_USB_VENDOR_ID) &&
+	    (ueth->pusb_dev->descriptor.idProduct == AX88772B_USB_PRODUCT_ID))
+		*packetp += 2;
+
 	return packet_len;
 
 err:
-- 
2.9.0



More information about the U-Boot mailing list