Devices which use LO enabled bit are covered by b43legacy

Signed-off-by: Rafał Miłecki <[email protected]>
---
Is this alright to use inline for this? Is my WARN_ON OK?
---
 drivers/net/wireless/b43/main.c   |    2 ++
 drivers/net/wireless/b43/rfkill.c |   21 +++------------------
 drivers/net/wireless/b43/rfkill.h |    4 ++--
 3 files changed, 7 insertions(+), 20 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index fa48803..9b71bb1 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -4527,6 +4527,8 @@ static int b43_op_start(struct ieee80211_hw *hw)
                }
        }
 
+       /* we don't expect older devices which need other RFKILL check */
+       B43_WARN_ON(dev->dev->id.revision < 3);
        /* XXX: only do if device doesn't support rfkill irq */
        wiphy_rfkill_start_polling(hw->wiphy);
 
diff --git a/drivers/net/wireless/b43/rfkill.c 
b/drivers/net/wireless/b43/rfkill.c
index 78016ae..012ed2f 100644
--- a/drivers/net/wireless/b43/rfkill.c
+++ b/drivers/net/wireless/b43/rfkill.c
@@ -26,25 +26,10 @@
 
 
 /* Returns TRUE, if the radio is enabled in hardware. */
-bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
+inline bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
 {
-       if (dev->phy.rev >= 3 || dev->phy.type == B43_PHYTYPE_LP) {
-               if (!(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI)
-                     & B43_MMIO_RADIO_HWENABLED_HI_MASK))
-                       return 1;
-       } else {
-               /* To prevent CPU fault on PPC, do not read a register
-                * unless the interface is started; however, on resume
-                * for hibernation, this routine is entered early. When
-                * that happens, unconditionally return TRUE.
-                */
-               if (b43_status(dev) < B43_STAT_STARTED)
-                       return 1;
-               if (b43_read16(dev, B43_MMIO_RADIO_HWENABLED_LO)
-                   & B43_MMIO_RADIO_HWENABLED_LO_MASK)
-                       return 1;
-       }
-       return 0;
+       return !(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI)
+               & B43_MMIO_RADIO_HWENABLED_HI_MASK);
 }
 
 /* The poll callback for the hardware button. */
diff --git a/drivers/net/wireless/b43/rfkill.h 
b/drivers/net/wireless/b43/rfkill.h
index f046c3c..7aa8a5a 100644
--- a/drivers/net/wireless/b43/rfkill.h
+++ b/drivers/net/wireless/b43/rfkill.h
@@ -4,8 +4,8 @@
 struct ieee80211_hw;
 struct b43_wldev;
 
-void b43_rfkill_poll(struct ieee80211_hw *hw);
+inline bool b43_is_hw_radio_enabled(struct b43_wldev *dev);
 
-bool b43_is_hw_radio_enabled(struct b43_wldev *dev);
+void b43_rfkill_poll(struct ieee80211_hw *hw);
 
 #endif /* B43_RFKILL_H_ */
-- 
1.6.0.4


_______________________________________________
b43-dev mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/b43-dev

Reply via email to