summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Scott <joshua.scott@alliedtelesis.co.nz>2016-09-06 16:03:11 +1200
committerJoe Hershberger <joe.hershberger@ni.com>2016-09-09 13:13:42 -0500
commit41d1258aceb45b45f9e68f67a9c40f0afbc09dc9 (patch)
tree036a1de81d6cb997793613ea9ba235ba20e1327d
parent11e8ec96dcff19ac0e0232a1ae10999398d64e3b (diff)
downloadu-boot-41d1258aceb45b45f9e68f67a9c40f0afbc09dc9.tar.gz
u-boot-41d1258aceb45b45f9e68f67a9c40f0afbc09dc9.tar.bz2
u-boot-41d1258aceb45b45f9e68f67a9c40f0afbc09dc9.zip
net: asix: Fix AX88772B when used with DriverModel
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@alliedtelesis.co.nz> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-rw-r--r--drivers/usb/eth/asix.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c
index ad083cf8ae..a610ae447b 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: