Commit ad196359 authored by hayeswang's avatar hayeswang Committed by Greg Kroah-Hartman

r8152: adjust ALDPS function

commit cda9fb01 upstream.

Replace disable_aldps() and enable_aldps() with aldps_en().
Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a37ff616
...@@ -2461,23 +2461,23 @@ static void r8153_teredo_off(struct r8152 *tp) ...@@ -2461,23 +2461,23 @@ static void r8153_teredo_off(struct r8152 *tp)
ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TEREDO_TIMER, 0); ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TEREDO_TIMER, 0);
} }
static void r8152b_disable_aldps(struct r8152 *tp) static void r8152_aldps_en(struct r8152 *tp, bool enable)
{
ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPDNPS | LINKENA | DIS_SDSAVE);
msleep(20);
}
static inline void r8152b_enable_aldps(struct r8152 *tp)
{ {
if (enable) {
ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPWRSAVE | ENPDNPS | ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPWRSAVE | ENPDNPS |
LINKENA | DIS_SDSAVE); LINKENA | DIS_SDSAVE);
} else {
ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPDNPS | LINKENA |
DIS_SDSAVE);
msleep(20);
}
} }
static void rtl8152_disable(struct r8152 *tp) static void rtl8152_disable(struct r8152 *tp)
{ {
r8152b_disable_aldps(tp); r8152_aldps_en(tp, false);
rtl_disable(tp); rtl_disable(tp);
r8152b_enable_aldps(tp); r8152_aldps_en(tp, true);
} }
static void r8152b_hw_phy_cfg(struct r8152 *tp) static void r8152b_hw_phy_cfg(struct r8152 *tp)
...@@ -2789,30 +2789,26 @@ static void r8153_enter_oob(struct r8152 *tp) ...@@ -2789,30 +2789,26 @@ static void r8153_enter_oob(struct r8152 *tp)
ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data);
} }
static void r8153_disable_aldps(struct r8152 *tp) static void r8153_aldps_en(struct r8152 *tp, bool enable)
{ {
u16 data; u16 data;
data = ocp_reg_read(tp, OCP_POWER_CFG); data = ocp_reg_read(tp, OCP_POWER_CFG);
if (enable) {
data |= EN_ALDPS;
ocp_reg_write(tp, OCP_POWER_CFG, data);
} else {
data &= ~EN_ALDPS; data &= ~EN_ALDPS;
ocp_reg_write(tp, OCP_POWER_CFG, data); ocp_reg_write(tp, OCP_POWER_CFG, data);
msleep(20); msleep(20);
} }
static void r8153_enable_aldps(struct r8152 *tp)
{
u16 data;
data = ocp_reg_read(tp, OCP_POWER_CFG);
data |= EN_ALDPS;
ocp_reg_write(tp, OCP_POWER_CFG, data);
} }
static void rtl8153_disable(struct r8152 *tp) static void rtl8153_disable(struct r8152 *tp)
{ {
r8153_disable_aldps(tp); r8153_aldps_en(tp, false);
rtl_disable(tp); rtl_disable(tp);
r8153_enable_aldps(tp); r8153_aldps_en(tp, true);
usb_enable_lpm(tp->udev); usb_enable_lpm(tp->udev);
} }
...@@ -2909,9 +2905,9 @@ static void rtl8152_up(struct r8152 *tp) ...@@ -2909,9 +2905,9 @@ static void rtl8152_up(struct r8152 *tp)
if (test_bit(RTL8152_UNPLUG, &tp->flags)) if (test_bit(RTL8152_UNPLUG, &tp->flags))
return; return;
r8152b_disable_aldps(tp); r8152_aldps_en(tp, false);
r8152b_exit_oob(tp); r8152b_exit_oob(tp);
r8152b_enable_aldps(tp); r8152_aldps_en(tp, true);
} }
static void rtl8152_down(struct r8152 *tp) static void rtl8152_down(struct r8152 *tp)
...@@ -2922,9 +2918,9 @@ static void rtl8152_down(struct r8152 *tp) ...@@ -2922,9 +2918,9 @@ static void rtl8152_down(struct r8152 *tp)
} }
r8152_power_cut_en(tp, false); r8152_power_cut_en(tp, false);
r8152b_disable_aldps(tp); r8152_aldps_en(tp, false);
r8152b_enter_oob(tp); r8152b_enter_oob(tp);
r8152b_enable_aldps(tp); r8152_aldps_en(tp, true);
} }
static void rtl8153_up(struct r8152 *tp) static void rtl8153_up(struct r8152 *tp)
...@@ -2933,9 +2929,9 @@ static void rtl8153_up(struct r8152 *tp) ...@@ -2933,9 +2929,9 @@ static void rtl8153_up(struct r8152 *tp)
return; return;
r8153_u1u2en(tp, false); r8153_u1u2en(tp, false);
r8153_disable_aldps(tp); r8153_aldps_en(tp, false);
r8153_first_init(tp); r8153_first_init(tp);
r8153_enable_aldps(tp); r8153_aldps_en(tp, true);
r8153_u2p3en(tp, true); r8153_u2p3en(tp, true);
r8153_u1u2en(tp, true); r8153_u1u2en(tp, true);
usb_enable_lpm(tp->udev); usb_enable_lpm(tp->udev);
...@@ -2951,9 +2947,9 @@ static void rtl8153_down(struct r8152 *tp) ...@@ -2951,9 +2947,9 @@ static void rtl8153_down(struct r8152 *tp)
r8153_u1u2en(tp, false); r8153_u1u2en(tp, false);
r8153_u2p3en(tp, false); r8153_u2p3en(tp, false);
r8153_power_cut_en(tp, false); r8153_power_cut_en(tp, false);
r8153_disable_aldps(tp); r8153_aldps_en(tp, false);
r8153_enter_oob(tp); r8153_enter_oob(tp);
r8153_enable_aldps(tp); r8153_aldps_en(tp, true);
} }
static bool rtl8152_in_nway(struct r8152 *tp) static bool rtl8152_in_nway(struct r8152 *tp)
...@@ -3280,7 +3276,7 @@ static void r8152b_init(struct r8152 *tp) ...@@ -3280,7 +3276,7 @@ static void r8152b_init(struct r8152 *tp)
if (test_bit(RTL8152_UNPLUG, &tp->flags)) if (test_bit(RTL8152_UNPLUG, &tp->flags))
return; return;
r8152b_disable_aldps(tp); r8152_aldps_en(tp, false);
if (tp->version == RTL_VER_01) { if (tp->version == RTL_VER_01) {
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE); ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE);
...@@ -3302,7 +3298,7 @@ static void r8152b_init(struct r8152 *tp) ...@@ -3302,7 +3298,7 @@ static void r8152b_init(struct r8152 *tp)
ocp_write_word(tp, MCU_TYPE_PLA, PLA_GPHY_INTR_IMR, ocp_data); ocp_write_word(tp, MCU_TYPE_PLA, PLA_GPHY_INTR_IMR, ocp_data);
r8152b_enable_eee(tp); r8152b_enable_eee(tp);
r8152b_enable_aldps(tp); r8152_aldps_en(tp, true);
r8152b_enable_fc(tp); r8152b_enable_fc(tp);
rtl_tally_reset(tp); rtl_tally_reset(tp);
...@@ -3320,7 +3316,7 @@ static void r8153_init(struct r8152 *tp) ...@@ -3320,7 +3316,7 @@ static void r8153_init(struct r8152 *tp)
if (test_bit(RTL8152_UNPLUG, &tp->flags)) if (test_bit(RTL8152_UNPLUG, &tp->flags))
return; return;
r8153_disable_aldps(tp); r8153_aldps_en(tp, false);
r8153_u1u2en(tp, false); r8153_u1u2en(tp, false);
for (i = 0; i < 500; i++) { for (i = 0; i < 500; i++) {
...@@ -3409,7 +3405,7 @@ static void r8153_init(struct r8152 *tp) ...@@ -3409,7 +3405,7 @@ static void r8153_init(struct r8152 *tp)
EEE_SPDWN_EN); EEE_SPDWN_EN);
r8153_enable_eee(tp); r8153_enable_eee(tp);
r8153_enable_aldps(tp); r8153_aldps_en(tp, true);
r8152b_enable_fc(tp); r8152b_enable_fc(tp);
rtl_tally_reset(tp); rtl_tally_reset(tp);
r8153_u2p3en(tp, true); r8153_u2p3en(tp, true);
......
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