mirror of https://gitee.com/openkylin/linux.git
b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support
This patch sets the rfkill state to RFKILL_STATE_HARD_BLOCKED when the radio is killed by the hardware switch. Signed-off-by: Adel Gadllah <adel.gadllah@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
f97d1f489d
commit
bc19d6e0b7
|
@ -43,6 +43,23 @@ static bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Update the rfkill state */
|
||||
static void b43_rfkill_update_state(struct b43_wldev *dev)
|
||||
{
|
||||
struct b43_rfkill *rfk = &(dev->wl->rfkill);
|
||||
|
||||
if (!dev->radio_hw_enable) {
|
||||
rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dev->phy.radio_on)
|
||||
rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
|
||||
else
|
||||
rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
|
||||
|
||||
}
|
||||
|
||||
/* The poll callback for the hardware button. */
|
||||
static void b43_rfkill_poll(struct input_polled_dev *poll_dev)
|
||||
{
|
||||
|
@ -60,6 +77,7 @@ static void b43_rfkill_poll(struct input_polled_dev *poll_dev)
|
|||
if (unlikely(enabled != dev->radio_hw_enable)) {
|
||||
dev->radio_hw_enable = enabled;
|
||||
report_change = 1;
|
||||
b43_rfkill_update_state(dev);
|
||||
b43info(wl, "Radio hardware status changed to %s\n",
|
||||
enabled ? "ENABLED" : "DISABLED");
|
||||
}
|
||||
|
|
|
@ -44,6 +44,23 @@ static bool b43legacy_is_hw_radio_enabled(struct b43legacy_wldev *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Update the rfkill state */
|
||||
static void b43legacy_rfkill_update_state(struct b43legacy_wldev *dev)
|
||||
{
|
||||
struct b43legacy_rfkill *rfk = &(dev->wl->rfkill);
|
||||
|
||||
if (!dev->radio_hw_enable) {
|
||||
rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dev->phy.radio_on)
|
||||
rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
|
||||
else
|
||||
rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
|
||||
|
||||
}
|
||||
|
||||
/* The poll callback for the hardware button. */
|
||||
static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev)
|
||||
{
|
||||
|
@ -61,6 +78,7 @@ static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev)
|
|||
if (unlikely(enabled != dev->radio_hw_enable)) {
|
||||
dev->radio_hw_enable = enabled;
|
||||
report_change = 1;
|
||||
b43legacy_rfkill_update_state(dev);
|
||||
b43legacyinfo(wl, "Radio hardware status changed to %s\n",
|
||||
enabled ? "ENABLED" : "DISABLED");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue