diff options
| author | Stephen Warren <[email protected]> | 2014-02-27 13:27:02 -0700 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2014-03-07 10:59:06 -0500 |
| commit | 9a04a858ebb711767f368c5a752928ffc36ed4de (patch) | |
| tree | a43ced06f4c3e93104a7701c974b1a5c0ae69bec /drivers | |
| parent | e4b87e5b1d026bd010e2ba3abbf89561e8320287 (diff) | |
net: asix: don't pad odd-length TX packets
For Ethernet/USB RX packets, the ASIX HW pads odd-sized packets so that
they have an even size. Currently, asix_recv() does remove this padding,
and asic_send() adds equivalent padding in the TX path. However, the HW
does not appear to need this packing for TX packets in practical testing
with "ASIX Elec. Corp. AX88x72A 000001" Vendor: 0x0b95 Product 0x7720
Version 0.1. The Linux kernel does no such padding for the TX path.
Remove the padding from the TX path:
* For consistency with the Linux kernel.
* NVIDIA has a Tegra simulator which validates that the length of USB
packets sent to an ASIX device matches the packet length value inside
the packet data. Having U-Boot and the kernel do the same thing when
creating the TX packets simplifies the simulator's validation.
Cc: Lucas Stach <[email protected]>
Cc: Marek Vasut <[email protected]>
Cc: Simon Glass <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
Acked-by: Simon Glass <[email protected]>
Acked-by: Marek Vasut <[email protected]>
Tested-by: Marek Vasut <[email protected]>
Tested-by: Gerhard Sittig <[email protected]>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/usb/eth/asix.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c index 659533a8d4e..ce133f00698 100644 --- a/drivers/usb/eth/asix.c +++ b/drivers/usb/eth/asix.c @@ -468,8 +468,6 @@ static int asix_send(struct eth_device *eth, void *packet, int length) memcpy(msg, &packet_len, sizeof(packet_len)); memcpy(msg + sizeof(packet_len), (void *)packet, length); - if (length & 1) - length++; err = usb_bulk_msg(dev->pusb_dev, usb_sndbulkpipe(dev->pusb_dev, dev->ep_out), |
