r8152: disable the capability of zero length
authorhayeswang <hayeswang@realtek.com>
Fri, 31 Jul 2015 03:23:39 +0000 (11:23 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 31 Jul 2015 22:24:59 +0000 (15:24 -0700)
The UEFI driver would enable zero length, and the Linux driver doesn't
need it. Zero length let the hw complete the transfer with length 0,
when there is no received packet. It would add the load of USB host
controller and reduce the performance.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/r8152.c

index 57b72ecb5455e7981e436e1cd172f128286bdb69..348652a190af2e480b74cca6a8d640d1016f3592 100644 (file)
 
 /* USB_USB_CTRL */
 #define RX_AGG_DISABLE         0x0010
+#define RX_ZERO_EN             0x0080
 
 /* USB_U2P3_CTRL */
 #define U2P3_ENABLE            0x0001
@@ -2705,7 +2706,7 @@ static void r8153_first_init(struct r8152 *tp)
 
        /* rx aggregation */
        ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
-       ocp_data &= ~RX_AGG_DISABLE;
+       ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
        ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
 }
 
@@ -3227,7 +3228,7 @@ static void r8152b_init(struct r8152 *tp)
 
        /* enable rx aggregation */
        ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
-       ocp_data &= ~RX_AGG_DISABLE;
+       ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
        ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
 }