When receiving large fragmented packets, the ASIX 88179A can drop
packets due to an insufficient URB buffer size. This change adjusts
the URB buffer size to match the configuration used in the Linux
kernel, resolving packet drop issues observed when performing TFTP
with a 16KB block size.

Signed-off-by: Khoa Hoang <[email protected]>
---
 drivers/usb/eth/asix88179.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/eth/asix88179.c b/drivers/usb/eth/asix88179.c
index a856aa2d..647a85a5 100644
--- a/drivers/usb/eth/asix88179.c
+++ b/drivers/usb/eth/asix88179.c
@@ -192,10 +192,10 @@
 static const struct {
        unsigned char ctrl, timer_l, timer_h, size, ifg;
 } AX88179_BULKIN_SIZE[] =      {
-       {7, 0x4f, 0,    0x02, 0xff},
-       {7, 0x20, 3,    0x03, 0xff},
-       {7, 0xae, 7,    0x04, 0xff},
-       {7, 0xcc, 0x4c, 0x04, 8},
+       {7, 0x4f, 0,    0x12, 0xff},
+       {7, 0x20, 3,    0x16, 0xff},
+       {7, 0xae, 7,    0x18, 0xff},
+       {7, 0xcc, 0x4c, 0x18, 8},
 };
 
 /* driver private */
@@ -311,7 +311,7 @@ static int asix_basic_reset(struct ueth_data *dev,
        memcpy(tmp, &AX88179_BULKIN_SIZE[0], 5);
        asix_write_cmd(dev, AX_ACCESS_MAC, AX_RX_BULKIN_QCTRL, 5, 5, tmp);
 
-       dev_priv->rx_urb_size = 128 * 20;
+       dev_priv->rx_urb_size = 1024 * 20;
 
        /* Water Level configuration */
        *tmp = 0x34;
-- 

Reply via email to