Now that the radio is controlled by rfkill, there is a potential
difficulty in helping a new user get started, as it is unlikely
that they will have setup rfkill. This patch prints a message if
the interface is started with the hardware switch off.

Signed-off-by: Larry Finger <[EMAIL PROTECTED]>
---

John,

This patch is intended for the everything branch of wireless-2.6.

Larry

 main.c   |   10 +++++++---
 main.h   |    2 ++
 rfkill.c |    2 +-
 3 files changed, 10 insertions(+), 4 deletions(-)

Index: wireless-2.6/drivers/net/wireless/b43/main.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/b43/main.c
+++ wireless-2.6/drivers/net/wireless/b43/main.c
@@ -3181,11 +3181,15 @@ static void setup_struct_phy_for_init(st
 
 static void setup_struct_wldev_for_init(struct b43_wldev *dev)
 {
+       struct b43_wl *wl = dev->wl;
+
        /* Flags */
        dev->reg124_set_0x4 = 0;
-       /* Assume the radio is enabled. If it's not enabled, the state will
-        * immediately get fixed on the first periodic work run. */
-       dev->radio_hw_enable = 1;
+       dev->radio_hw_enable = b43_is_hw_radio_enabled(dev);
+       if (!dev->radio_hw_enable)
+               b43info(wl, "***** The hardware switch for your radio switch"
+                       " is off.\n          ***** Until it is switched on,"
+                       " your device will not work.\n");
 
        /* Stats */
        memset(&dev->stats, 0, sizeof(dev->stats));
Index: wireless-2.6/drivers/net/wireless/b43/main.h
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/b43/main.h
+++ wireless-2.6/drivers/net/wireless/b43/main.h
@@ -116,6 +116,8 @@ void b43_mac_enable(struct b43_wldev *de
 
 void b43_controller_restart(struct b43_wldev *dev, const char *reason);
 
+bool b43_is_hw_radio_enabled(struct b43_wldev *dev);
+
 #define B43_PS_ENABLED (1 << 0)        /* Force enable hardware power saving */
 #define B43_PS_DISABLED        (1 << 1)        /* Force disable hardware power 
saving */
 #define B43_PS_AWAKE   (1 << 2)        /* Force device awake */
Index: wireless-2.6/drivers/net/wireless/b43/rfkill.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/b43/rfkill.c
+++ wireless-2.6/drivers/net/wireless/b43/rfkill.c
@@ -27,7 +27,7 @@
 
 
 /* Returns TRUE, if the radio is enabled in hardware. */
-static bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
+bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
 {
        if (dev->phy.rev >= 3) {
                if (!(b43_read32(dev, B43_MMIO_RADIO_HWENABLED_HI)
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to