aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/b43/main.c')
-rw-r--r--drivers/net/wireless/b43/main.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index cc5285407e88..b44c9f928848 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2874,6 +2874,21 @@ static int b43_dev_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf)
2874 if (b43_is_mode(wl, IEEE80211_IF_TYPE_AP)) 2874 if (b43_is_mode(wl, IEEE80211_IF_TYPE_AP))
2875 b43_set_beacon_int(dev, conf->beacon_int); 2875 b43_set_beacon_int(dev, conf->beacon_int);
2876 2876
2877 if (!!conf->radio_enabled != phy->radio_on) {
2878 if (conf->radio_enabled) {
2879 b43_radio_turn_on(dev);
2880 b43info(dev->wl, "Radio turned on by software\n");
2881 if (!dev->radio_hw_enable) {
2882 b43info(dev->wl, "The hardware RF-kill button "
2883 "still turns the radio physically off. "
2884 "Press the button to turn it on.\n");
2885 }
2886 } else {
2887 b43_radio_turn_off(dev);
2888 b43info(dev->wl, "Radio turned off by software\n");
2889 }
2890 }
2891
2877 spin_lock_irqsave(&wl->irq_lock, flags); 2892 spin_lock_irqsave(&wl->irq_lock, flags);
2878 b43_interrupt_enable(dev, savedirqs); 2893 b43_interrupt_enable(dev, savedirqs);
2879 mmiowb(); 2894 mmiowb();
@@ -3218,6 +3233,8 @@ static void setup_struct_phy_for_init(struct b43_wldev *dev,
3218 phy->aci_wlan_automatic = 0; 3233 phy->aci_wlan_automatic = 0;
3219 phy->aci_hw_rssi = 0; 3234 phy->aci_hw_rssi = 0;
3220 3235
3236 phy->radio_off_context.valid = 0;
3237
3221 lo = phy->lo_control; 3238 lo = phy->lo_control;
3222 if (lo) { 3239 if (lo) {
3223 memset(lo, 0, sizeof(*(phy->lo_control))); 3240 memset(lo, 0, sizeof(*(phy->lo_control)));