Commit d7f1b596 authored by Hayes Wang's avatar Hayes Wang Committed by David S. Miller

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: default avatarHayes Wang <hayeswang@realtek.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 08997b5e
...@@ -312,6 +312,7 @@ ...@@ -312,6 +312,7 @@
/* PLA_PHY_PWR */ /* PLA_PHY_PWR */
#define TX_10M_IDLE_EN 0x0080 #define TX_10M_IDLE_EN 0x0080
#define PFM_PWM_SWITCH 0x0040 #define PFM_PWM_SWITCH 0x0040
#define TEST_IO_OFF BIT(4)
/* PLA_MAC_PWR_CTRL */ /* PLA_MAC_PWR_CTRL */
#define D3_CLK_GATED_EN 0x00004000 #define D3_CLK_GATED_EN 0x00004000
...@@ -5538,6 +5539,15 @@ static void r8153b_init(struct r8152 *tp) ...@@ -5538,6 +5539,15 @@ static void r8153b_init(struct r8152 *tp)
ocp_data &= ~PLA_MCU_SPDWN_EN; ocp_data &= ~PLA_MCU_SPDWN_EN;
ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, ocp_data); 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); set_bit(GREEN_ETHERNET, &tp->flags);
/* rx aggregation */ /* rx aggregation */
......
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