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