b43: Fix rfkill radio LED
authorLarry Finger <Larry.Finger@lwfinger.net>
Fri, 14 Dec 2007 12:59:11 +0000 (13:59 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 17 Dec 2007 22:01:40 +0000 (17:01 -0500)
commit1a8d122782bdabe4475f29d022c9a0c092ac9878
tree573b0ce811f6cc7db621b3f1301ef44caa5f5e62
parentcb935cb4bd155d50ac98617b580aadd9d7ef3a0f
b43: Fix rfkill radio LED

This fixes Bug #9414

Since addition of the rfkill callback, the LED associated with the off
switch on the radio has not worked for several reasons:

(1) Essential data in the rfkill structure were missing.
(2) The rfkill structure was initialized after the LED initialization.
(3) There was a minor memory leak if the radio LED structure was inited.

Once the above problems were fixed, additional difficulties were noted:

(4) The radio LED was in the wrong state at startup.
(5) The radio switch had to be manipulated twice for each state change.
(6) A circular mutex locking situation existed.
(7) If rfkill-input is built as a module, it is not automatically loaded.

This patch fixes all of the above.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/leds.c
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/rfkill.c