diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/b43/rfkill.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c index 78016ae21c50..86bc0a0f735c 100644 --- a/drivers/net/wireless/b43/rfkill.c +++ b/drivers/net/wireless/b43/rfkill.c | |||
@@ -28,23 +28,8 @@ | |||
28 | /* Returns TRUE, if the radio is enabled in hardware. */ | 28 | /* Returns TRUE, if the radio is enabled in hardware. */ |
29 | bool b43_is_hw_radio_enabled(struct b43_wldev *dev) | 29 | bool b43_is_hw_radio_enabled(struct b43_wldev *dev) |
30 | { | 30 | { |
31 | if (dev->phy.rev >= 3 || dev->phy.type == B43_PHYTYPE_LP) { | 31 | return !(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI) |
32 | if (!(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI) | 32 | & B43_MMIO_RADIO_HWENABLED_HI_MASK); |
33 | & B43_MMIO_RADIO_HWENABLED_HI_MASK)) | ||
34 | return 1; | ||
35 | } else { | ||
36 | /* To prevent CPU fault on PPC, do not read a register | ||
37 | * unless the interface is started; however, on resume | ||
38 | * for hibernation, this routine is entered early. When | ||
39 | * that happens, unconditionally return TRUE. | ||
40 | */ | ||
41 | if (b43_status(dev) < B43_STAT_STARTED) | ||
42 | return 1; | ||
43 | if (b43_read16(dev, B43_MMIO_RADIO_HWENABLED_LO) | ||
44 | & B43_MMIO_RADIO_HWENABLED_LO_MASK) | ||
45 | return 1; | ||
46 | } | ||
47 | return 0; | ||
48 | } | 33 | } |
49 | 34 | ||
50 | /* The poll callback for the hardware button. */ | 35 | /* The poll callback for the hardware button. */ |