diff options
author | Joshua Scott <joshua.scott@alliedtelesis.co.nz> | 2016-09-06 16:03:11 +1200 |
---|---|---|
committer | Joe Hershberger <joe.hershberger@ni.com> | 2016-09-09 13:13:42 -0500 |
commit | 41d1258aceb45b45f9e68f67a9c40f0afbc09dc9 (patch) | |
tree | 036a1de81d6cb997793613ea9ba235ba20e1327d /drivers/usb/eth/asix.c | |
parent | 11e8ec96dcff19ac0e0232a1ae10999398d64e3b (diff) |
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>
Diffstat (limited to 'drivers/usb/eth/asix.c')
-rw-r--r-- | drivers/usb/eth/asix.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c index ad083cf8ae4..a610ae447bf 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: |