diff options
author | Hayes Wang <hayeswang@realtek.com> | 2020-01-22 16:02:10 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-01-23 11:20:57 +0100 |
commit | d7f1b59655efb5a285d227c8f9853a98eab5c2fd (patch) | |
tree | 01c0f29293775a24999e431e295e53b7c7cc0672 /drivers/net/usb/r8152.c | |
parent | 08997b5eec08a2c29367f19a74abdea54b299406 (diff) | |
download | linux-d7f1b59655efb5a285d227c8f9853a98eab5c2fd.tar.gz linux-d7f1b59655efb5a285d227c8f9853a98eab5c2fd.tar.bz2 linux-d7f1b59655efb5a285d227c8f9853a98eab5c2fd.zip |
r8152: disable test IO for RTL8153B
For RTL8153B with QFN32, disable test IO. Otherwise, it may cause
abnormal behavior for the device randomly.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/r8152.c')
-rw-r--r-- | drivers/net/usb/r8152.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 1fb85c79bd33..7efeddad1fc8 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -312,6 +312,7 @@ /* PLA_PHY_PWR */ #define TX_10M_IDLE_EN 0x0080 #define PFM_PWM_SWITCH 0x0040 +#define TEST_IO_OFF BIT(4) /* PLA_MAC_PWR_CTRL */ #define D3_CLK_GATED_EN 0x00004000 @@ -5538,6 +5539,15 @@ static void r8153b_init(struct r8152 *tp) ocp_data &= ~PLA_MCU_SPDWN_EN; ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data); + if (tp->version == RTL_VER_09) { + /* Disable Test IO for 32QFN */ + if (ocp_read_byte(tp, MCU_TYPE_PLA, 0xdc00) & BIT(5)) { + ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR); + ocp_data |= TEST_IO_OFF; + ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data); + } + } + set_bit(GREEN_ETHERNET, &tp->flags); /* rx aggregation */ |