Loading drivers/net/usb/r8152.c +40 −52 Original line number Diff line number Diff line Loading @@ -1938,7 +1938,6 @@ static void _rtl8152_set_rx_mode(struct net_device *netdev) __le32 tmp[2]; u32 ocp_data; clear_bit(RTL8152_SET_RX_MODE, &tp->flags); netif_stop_queue(netdev); ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); ocp_data &= ~RCR_ACPT_ALL; Loading Loading @@ -2424,8 +2423,6 @@ static void rtl_phy_reset(struct r8152 *tp) u16 data; int i; clear_bit(PHY_RESET, &tp->flags); data = r8152_mdio_read(tp, MII_BMCR); /* don't reset again before the previous one complete */ Loading Loading @@ -2455,23 +2452,23 @@ static void r8153_teredo_off(struct r8152 *tp) ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TEREDO_TIMER, 0); } static void r8152b_disable_aldps(struct r8152 *tp) { ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPDNPS | LINKENA | DIS_SDSAVE); msleep(20); } static inline void r8152b_enable_aldps(struct r8152 *tp) static void r8152_aldps_en(struct r8152 *tp, bool enable) { if (enable) { ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPWRSAVE | ENPDNPS | LINKENA | DIS_SDSAVE); } else { ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPDNPS | LINKENA | DIS_SDSAVE); msleep(20); } } static void rtl8152_disable(struct r8152 *tp) { r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); rtl_disable(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); } static void r8152b_hw_phy_cfg(struct r8152 *tp) Loading Loading @@ -2783,30 +2780,26 @@ static void r8153_enter_oob(struct r8152 *tp) 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; 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; ocp_reg_write(tp, OCP_POWER_CFG, data); 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) { r8153_disable_aldps(tp); r8153_aldps_en(tp, false); rtl_disable(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); usb_enable_lpm(tp->udev); } Loading Loading @@ -2884,10 +2877,9 @@ static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u16 speed, u8 duplex) r8152_mdio_write(tp, MII_ADVERTISE, anar); r8152_mdio_write(tp, MII_BMCR, bmcr); if (test_bit(PHY_RESET, &tp->flags)) { if (test_and_clear_bit(PHY_RESET, &tp->flags)) { int i; clear_bit(PHY_RESET, &tp->flags); for (i = 0; i < 50; i++) { msleep(20); if ((r8152_mdio_read(tp, MII_BMCR) & BMCR_RESET) == 0) Loading @@ -2896,7 +2888,6 @@ static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u16 speed, u8 duplex) } out: return ret; } Loading @@ -2905,9 +2896,9 @@ static void rtl8152_up(struct r8152 *tp) if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); r8152b_exit_oob(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); } static void rtl8152_down(struct r8152 *tp) Loading @@ -2918,9 +2909,9 @@ static void rtl8152_down(struct r8152 *tp) } r8152_power_cut_en(tp, false); r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); r8152b_enter_oob(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); } static void rtl8153_up(struct r8152 *tp) Loading @@ -2929,9 +2920,9 @@ static void rtl8153_up(struct r8152 *tp) return; r8153_u1u2en(tp, false); r8153_disable_aldps(tp); r8153_aldps_en(tp, false); r8153_first_init(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); r8153_u2p3en(tp, true); r8153_u1u2en(tp, true); usb_enable_lpm(tp->udev); Loading @@ -2947,9 +2938,9 @@ static void rtl8153_down(struct r8152 *tp) r8153_u1u2en(tp, false); r8153_u2p3en(tp, false); r8153_power_cut_en(tp, false); r8153_disable_aldps(tp); r8153_aldps_en(tp, false); r8153_enter_oob(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); } static bool rtl8152_in_nway(struct r8152 *tp) Loading Loading @@ -2983,7 +2974,6 @@ static void set_carrier(struct r8152 *tp) struct net_device *netdev = tp->netdev; u8 speed; clear_bit(RTL8152_LINK_CHG, &tp->flags); speed = rtl8152_get_speed(tp); if (speed & LINK_STATUS) { Loading Loading @@ -3026,20 +3016,18 @@ static void rtl_work_func_t(struct work_struct *work) goto out1; } if (test_bit(RTL8152_LINK_CHG, &tp->flags)) if (test_and_clear_bit(RTL8152_LINK_CHG, &tp->flags)) set_carrier(tp); if (test_bit(RTL8152_SET_RX_MODE, &tp->flags)) if (test_and_clear_bit(RTL8152_SET_RX_MODE, &tp->flags)) _rtl8152_set_rx_mode(tp->netdev); /* don't schedule napi before linking */ if (test_bit(SCHEDULE_NAPI, &tp->flags) && netif_carrier_ok(tp->netdev)) { clear_bit(SCHEDULE_NAPI, &tp->flags); if (test_and_clear_bit(SCHEDULE_NAPI, &tp->flags) && netif_carrier_ok(tp->netdev)) napi_schedule(&tp->napi); } if (test_bit(PHY_RESET, &tp->flags)) if (test_and_clear_bit(PHY_RESET, &tp->flags)) rtl_phy_reset(tp); mutex_unlock(&tp->control); Loading Loading @@ -3238,7 +3226,7 @@ static void r8152b_init(struct r8152 *tp) if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); if (tp->version == RTL_VER_01) { ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE); Loading @@ -3260,7 +3248,7 @@ static void r8152b_init(struct r8152 *tp) ocp_write_word(tp, MCU_TYPE_PLA, PLA_GPHY_INTR_IMR, ocp_data); r8152b_enable_eee(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); r8152b_enable_fc(tp); rtl_tally_reset(tp); Loading @@ -3278,7 +3266,7 @@ static void r8153_init(struct r8152 *tp) if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; r8153_disable_aldps(tp); r8153_aldps_en(tp, false); r8153_u1u2en(tp, false); for (i = 0; i < 500; i++) { Loading Loading @@ -3367,7 +3355,7 @@ static void r8153_init(struct r8152 *tp) EEE_SPDWN_EN); r8153_enable_eee(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); r8152b_enable_fc(tp); rtl_tally_reset(tp); r8153_u2p3en(tp, true); Loading Loading
drivers/net/usb/r8152.c +40 −52 Original line number Diff line number Diff line Loading @@ -1938,7 +1938,6 @@ static void _rtl8152_set_rx_mode(struct net_device *netdev) __le32 tmp[2]; u32 ocp_data; clear_bit(RTL8152_SET_RX_MODE, &tp->flags); netif_stop_queue(netdev); ocp_data = ocp_read_dword(tp, MCU_TYPE_PLA, PLA_RCR); ocp_data &= ~RCR_ACPT_ALL; Loading Loading @@ -2424,8 +2423,6 @@ static void rtl_phy_reset(struct r8152 *tp) u16 data; int i; clear_bit(PHY_RESET, &tp->flags); data = r8152_mdio_read(tp, MII_BMCR); /* don't reset again before the previous one complete */ Loading Loading @@ -2455,23 +2452,23 @@ static void r8153_teredo_off(struct r8152 *tp) ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TEREDO_TIMER, 0); } static void r8152b_disable_aldps(struct r8152 *tp) { ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPDNPS | LINKENA | DIS_SDSAVE); msleep(20); } static inline void r8152b_enable_aldps(struct r8152 *tp) static void r8152_aldps_en(struct r8152 *tp, bool enable) { if (enable) { ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPWRSAVE | ENPDNPS | LINKENA | DIS_SDSAVE); } else { ocp_reg_write(tp, OCP_ALDPS_CONFIG, ENPDNPS | LINKENA | DIS_SDSAVE); msleep(20); } } static void rtl8152_disable(struct r8152 *tp) { r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); rtl_disable(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); } static void r8152b_hw_phy_cfg(struct r8152 *tp) Loading Loading @@ -2783,30 +2780,26 @@ static void r8153_enter_oob(struct r8152 *tp) 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; 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; ocp_reg_write(tp, OCP_POWER_CFG, data); 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) { r8153_disable_aldps(tp); r8153_aldps_en(tp, false); rtl_disable(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); usb_enable_lpm(tp->udev); } Loading Loading @@ -2884,10 +2877,9 @@ static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u16 speed, u8 duplex) r8152_mdio_write(tp, MII_ADVERTISE, anar); r8152_mdio_write(tp, MII_BMCR, bmcr); if (test_bit(PHY_RESET, &tp->flags)) { if (test_and_clear_bit(PHY_RESET, &tp->flags)) { int i; clear_bit(PHY_RESET, &tp->flags); for (i = 0; i < 50; i++) { msleep(20); if ((r8152_mdio_read(tp, MII_BMCR) & BMCR_RESET) == 0) Loading @@ -2896,7 +2888,6 @@ static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u16 speed, u8 duplex) } out: return ret; } Loading @@ -2905,9 +2896,9 @@ static void rtl8152_up(struct r8152 *tp) if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); r8152b_exit_oob(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); } static void rtl8152_down(struct r8152 *tp) Loading @@ -2918,9 +2909,9 @@ static void rtl8152_down(struct r8152 *tp) } r8152_power_cut_en(tp, false); r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); r8152b_enter_oob(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); } static void rtl8153_up(struct r8152 *tp) Loading @@ -2929,9 +2920,9 @@ static void rtl8153_up(struct r8152 *tp) return; r8153_u1u2en(tp, false); r8153_disable_aldps(tp); r8153_aldps_en(tp, false); r8153_first_init(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); r8153_u2p3en(tp, true); r8153_u1u2en(tp, true); usb_enable_lpm(tp->udev); Loading @@ -2947,9 +2938,9 @@ static void rtl8153_down(struct r8152 *tp) r8153_u1u2en(tp, false); r8153_u2p3en(tp, false); r8153_power_cut_en(tp, false); r8153_disable_aldps(tp); r8153_aldps_en(tp, false); r8153_enter_oob(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); } static bool rtl8152_in_nway(struct r8152 *tp) Loading Loading @@ -2983,7 +2974,6 @@ static void set_carrier(struct r8152 *tp) struct net_device *netdev = tp->netdev; u8 speed; clear_bit(RTL8152_LINK_CHG, &tp->flags); speed = rtl8152_get_speed(tp); if (speed & LINK_STATUS) { Loading Loading @@ -3026,20 +3016,18 @@ static void rtl_work_func_t(struct work_struct *work) goto out1; } if (test_bit(RTL8152_LINK_CHG, &tp->flags)) if (test_and_clear_bit(RTL8152_LINK_CHG, &tp->flags)) set_carrier(tp); if (test_bit(RTL8152_SET_RX_MODE, &tp->flags)) if (test_and_clear_bit(RTL8152_SET_RX_MODE, &tp->flags)) _rtl8152_set_rx_mode(tp->netdev); /* don't schedule napi before linking */ if (test_bit(SCHEDULE_NAPI, &tp->flags) && netif_carrier_ok(tp->netdev)) { clear_bit(SCHEDULE_NAPI, &tp->flags); if (test_and_clear_bit(SCHEDULE_NAPI, &tp->flags) && netif_carrier_ok(tp->netdev)) napi_schedule(&tp->napi); } if (test_bit(PHY_RESET, &tp->flags)) if (test_and_clear_bit(PHY_RESET, &tp->flags)) rtl_phy_reset(tp); mutex_unlock(&tp->control); Loading Loading @@ -3238,7 +3226,7 @@ static void r8152b_init(struct r8152 *tp) if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; r8152b_disable_aldps(tp); r8152_aldps_en(tp, false); if (tp->version == RTL_VER_01) { ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_LED_FEATURE); Loading @@ -3260,7 +3248,7 @@ static void r8152b_init(struct r8152 *tp) ocp_write_word(tp, MCU_TYPE_PLA, PLA_GPHY_INTR_IMR, ocp_data); r8152b_enable_eee(tp); r8152b_enable_aldps(tp); r8152_aldps_en(tp, true); r8152b_enable_fc(tp); rtl_tally_reset(tp); Loading @@ -3278,7 +3266,7 @@ static void r8153_init(struct r8152 *tp) if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; r8153_disable_aldps(tp); r8153_aldps_en(tp, false); r8153_u1u2en(tp, false); for (i = 0; i < 500; i++) { Loading Loading @@ -3367,7 +3355,7 @@ static void r8153_init(struct r8152 *tp) EEE_SPDWN_EN); r8153_enable_eee(tp); r8153_enable_aldps(tp); r8153_aldps_en(tp, true); r8152b_enable_fc(tp); rtl_tally_reset(tp); r8153_u2p3en(tp, true); Loading