Commit a3cc465d authored by hayeswang's avatar hayeswang Committed by David S. Miller

r8152: fix the checking of the usb speed

When the usb speed of the RTL8152 is not high speed, the USB_DEV_STAT[2:1]
should be equal to [0 1]. That is, the STAT_SPEED_FULL should be equal
to 2.

There is a easy way to check the usb speed by the speed field of the
struct usb_device. Use it to replace the original metheod.
Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
Spotted-by: default avatarAndrey Utkin <andrey.krieger.utkin@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e62f7757
...@@ -282,7 +282,7 @@ ...@@ -282,7 +282,7 @@
/* USB_DEV_STAT */ /* USB_DEV_STAT */
#define STAT_SPEED_MASK 0x0006 #define STAT_SPEED_MASK 0x0006
#define STAT_SPEED_HIGH 0x0000 #define STAT_SPEED_HIGH 0x0000
#define STAT_SPEED_FULL 0x0001 #define STAT_SPEED_FULL 0x0002
/* USB_TX_AGG */ /* USB_TX_AGG */
#define TX_AGG_MAX_THRESHOLD 0x03 #define TX_AGG_MAX_THRESHOLD 0x03
...@@ -2292,9 +2292,8 @@ static void r8152b_exit_oob(struct r8152 *tp) ...@@ -2292,9 +2292,8 @@ static void r8152b_exit_oob(struct r8152 *tp)
/* rx share fifo credit full threshold */ /* rx share fifo credit full threshold */
ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL0, RXFIFO_THR1_NORMAL); ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL0, RXFIFO_THR1_NORMAL);
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_DEV_STAT); if (tp->udev->speed == USB_SPEED_FULL ||
ocp_data &= STAT_SPEED_MASK; tp->udev->speed == USB_SPEED_LOW) {
if (ocp_data == STAT_SPEED_FULL) {
/* rx share fifo credit near full threshold */ /* rx share fifo credit near full threshold */
ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL1, ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL1,
RXFIFO_THR2_FULL); RXFIFO_THR2_FULL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment