smsc95xx: Use zero length packets when RX fifo is empty
authorStefan Brüns <stefan.bruens@rwth-aachen.de>
Tue, 8 Sep 2015 03:12:00 +0000 (05:12 +0200)
committerJoe Hershberger <joe.hershberger@ni.com>
Thu, 29 Oct 2015 19:05:46 +0000 (14:05 -0500)
Using NAKs on empty RX fifo for bulk in transfers is the right choice
for a interrupt driven model, but U-Boot uses polling and expects an
immediate answer if there is no incoming packet. Using ZLP Bulk In Response
(BIR) mode avoids unexpected timeouts in the host controller driver.

As ZLP mode is reset default, there is no need to set it.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/usb/eth/smsc95xx.c

index 0f47ccb0b21c627efbee83603b68f081a482e6a6..e6943641225c12d739ab5a3d5851ee374652e4ce 100644 (file)
@@ -530,22 +530,6 @@ static int smsc95xx_init_common(struct usb_device *udev, struct ueth_data *dev,
        if (ret < 0)
                return ret;
 
-       ret = smsc95xx_read_reg(udev, HW_CFG, &read_buf);
-       if (ret < 0)
-               return ret;
-       debug("Read Value from HW_CFG : 0x%08x\n", read_buf);
-
-       read_buf |= HW_CFG_BIR_;
-       ret = smsc95xx_write_reg(udev, HW_CFG, read_buf);
-       if (ret < 0)
-               return ret;
-
-       ret = smsc95xx_read_reg(udev, HW_CFG, &read_buf);
-       if (ret < 0)
-               return ret;
-       debug("Read Value from HW_CFG after writing "
-               "HW_CFG_BIR_: 0x%08x\n", read_buf);
-
 #ifdef TURBO_MODE
        if (dev->pusb_dev->speed == USB_SPEED_HIGH) {
                burst_cap = DEFAULT_HS_BURST_CAP_SIZE / HS_USB_PKT_SIZE;