diff options
author | Chaoming Li <chaoming_li@realsil.com.cn> | 2011-04-10 19:30:23 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-04-12 16:59:34 -0400 |
commit | 228bdfca9a09c1263c24509b4bc23a67be168e1a (patch) | |
tree | 4e7d1a0e12213f75213b19dbb5956548c024acf6 /drivers/net | |
parent | f0bce44f5f2eb37dba58aa992d0c58da92ded201 (diff) |
rtlwifi: rtl8192ce: Fix LED initialization
Driver rtl8192ce does not initialize the LED correctly.
Signed-off-by: Chaoming Li <chaoming_li@realsil.com.cn>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/rtlwifi/base.c | 12 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/pci.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192ce/led.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192ce/led.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192ce/sw.c | 1 |
5 files changed, 20 insertions, 11 deletions
diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c index dd5318ed787..9477785f116 100644 --- a/drivers/net/wireless/rtlwifi/base.c +++ b/drivers/net/wireless/rtlwifi/base.c | |||
@@ -251,14 +251,16 @@ void rtl_init_rfkill(struct ieee80211_hw *hw) | |||
251 | bool blocked; | 251 | bool blocked; |
252 | u8 valid = 0; | 252 | u8 valid = 0; |
253 | 253 | ||
254 | radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid); | 254 | /*set init state to on */ |
255 | rtlpriv->rfkill.rfkill_state = 1; | ||
256 | wiphy_rfkill_set_hw_state(hw->wiphy, 0); | ||
255 | 257 | ||
256 | /*set init state to that of switch */ | 258 | radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid); |
257 | rtlpriv->rfkill.rfkill_state = radio_state; | ||
258 | printk(KERN_INFO "rtlwifi: wireless switch is %s\n", | ||
259 | rtlpriv->rfkill.rfkill_state ? "on" : "off"); | ||
260 | 259 | ||
261 | if (valid) { | 260 | if (valid) { |
261 | printk(KERN_INFO "rtlwifi: wireless switch is %s\n", | ||
262 | rtlpriv->rfkill.rfkill_state ? "on" : "off"); | ||
263 | |||
262 | rtlpriv->rfkill.rfkill_state = radio_state; | 264 | rtlpriv->rfkill.rfkill_state = radio_state; |
263 | 265 | ||
264 | blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1; | 266 | blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1; |
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c index efded435d59..59a150ce306 100644 --- a/drivers/net/wireless/rtlwifi/pci.c +++ b/drivers/net/wireless/rtlwifi/pci.c | |||
@@ -1785,7 +1785,8 @@ void rtl_pci_disconnect(struct pci_dev *pdev) | |||
1785 | 1785 | ||
1786 | rtl_pci_deinit(hw); | 1786 | rtl_pci_deinit(hw); |
1787 | rtl_deinit_core(hw); | 1787 | rtl_deinit_core(hw); |
1788 | rtlpriv->cfg->ops->deinit_sw_leds(hw); | 1788 | if (rtlpriv->cfg->ops->deinit_sw_leds) |
1789 | rtlpriv->cfg->ops->deinit_sw_leds(hw); | ||
1789 | _rtl_pci_io_handler_release(hw); | 1790 | _rtl_pci_io_handler_release(hw); |
1790 | rtlpriv->cfg->ops->deinit_sw_vars(hw); | 1791 | rtlpriv->cfg->ops->deinit_sw_vars(hw); |
1791 | 1792 | ||
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/led.c b/drivers/net/wireless/rtlwifi/rtl8192ce/led.c index 7b1da8d7508..d21b934b5c3 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192ce/led.c +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/led.c | |||
@@ -32,6 +32,14 @@ | |||
32 | #include "reg.h" | 32 | #include "reg.h" |
33 | #include "led.h" | 33 | #include "led.h" |
34 | 34 | ||
35 | static void _rtl92ce_init_led(struct ieee80211_hw *hw, | ||
36 | struct rtl_led *pled, enum rtl_led_pin ledpin) | ||
37 | { | ||
38 | pled->hw = hw; | ||
39 | pled->ledpin = ledpin; | ||
40 | pled->ledon = false; | ||
41 | } | ||
42 | |||
35 | void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled) | 43 | void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled) |
36 | { | 44 | { |
37 | u8 ledcfg; | 45 | u8 ledcfg; |
@@ -97,10 +105,10 @@ void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled) | |||
97 | 105 | ||
98 | void rtl92ce_init_sw_leds(struct ieee80211_hw *hw) | 106 | void rtl92ce_init_sw_leds(struct ieee80211_hw *hw) |
99 | { | 107 | { |
100 | } | 108 | struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); |
101 | 109 | ||
102 | void rtl92ce_deinit_sw_leds(struct ieee80211_hw *hw) | 110 | _rtl92ce_init_led(hw, &(pcipriv->ledctl.sw_led0), LED_PIN_LED0); |
103 | { | 111 | _rtl92ce_init_led(hw, &(pcipriv->ledctl.sw_led1), LED_PIN_LED1); |
104 | } | 112 | } |
105 | 113 | ||
106 | void _rtl92ce_sw_led_control(struct ieee80211_hw *hw, | 114 | void _rtl92ce_sw_led_control(struct ieee80211_hw *hw, |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/led.h b/drivers/net/wireless/rtlwifi/rtl8192ce/led.h index 10da3018f4b..94332b3af5b 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192ce/led.h +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/led.h | |||
@@ -31,7 +31,6 @@ | |||
31 | #define __RTL92CE_LED_H__ | 31 | #define __RTL92CE_LED_H__ |
32 | 32 | ||
33 | void rtl92ce_init_sw_leds(struct ieee80211_hw *hw); | 33 | void rtl92ce_init_sw_leds(struct ieee80211_hw *hw); |
34 | void rtl92ce_deinit_sw_leds(struct ieee80211_hw *hw); | ||
35 | void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled); | 34 | void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled); |
36 | void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled); | 35 | void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled); |
37 | void rtl92ce_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction); | 36 | void rtl92ce_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction); |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c index b1cc4d44f53..f4e2f3dccca 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c | |||
@@ -131,7 +131,6 @@ static struct rtl_hal_ops rtl8192ce_hal_ops = { | |||
131 | .enable_hw_sec = rtl92ce_enable_hw_security_config, | 131 | .enable_hw_sec = rtl92ce_enable_hw_security_config, |
132 | .set_key = rtl92ce_set_key, | 132 | .set_key = rtl92ce_set_key, |
133 | .init_sw_leds = rtl92ce_init_sw_leds, | 133 | .init_sw_leds = rtl92ce_init_sw_leds, |
134 | .deinit_sw_leds = rtl92ce_deinit_sw_leds, | ||
135 | .get_bbreg = rtl92c_phy_query_bb_reg, | 134 | .get_bbreg = rtl92c_phy_query_bb_reg, |
136 | .set_bbreg = rtl92c_phy_set_bb_reg, | 135 | .set_bbreg = rtl92c_phy_set_bb_reg, |
137 | .get_rfreg = rtl92ce_phy_query_rf_reg, | 136 | .get_rfreg = rtl92ce_phy_query_rf_reg, |