|
@@ -145,10 +145,15 @@ void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
|
|
|
|
|
|
rt2x00dev->rfkill->name = rt2x00dev->ops->name;
|
|
|
rt2x00dev->rfkill->data = rt2x00dev;
|
|
|
- rt2x00dev->rfkill->state = -1;
|
|
|
rt2x00dev->rfkill->toggle_radio = rt2x00rfkill_toggle_radio;
|
|
|
- if (test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
|
|
|
+ if (test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) {
|
|
|
rt2x00dev->rfkill->get_state = rt2x00rfkill_get_state;
|
|
|
+ rt2x00dev->rfkill->state =
|
|
|
+ rt2x00dev->ops->lib->rfkill_poll(rt2x00dev) ?
|
|
|
+ RFKILL_STATE_SOFT_BLOCKED : RFKILL_STATE_UNBLOCKED;
|
|
|
+ } else {
|
|
|
+ rt2x00dev->rfkill->state = RFKILL_STATE_UNBLOCKED;
|
|
|
+ }
|
|
|
|
|
|
INIT_DELAYED_WORK(&rt2x00dev->rfkill_work, rt2x00rfkill_poll);
|
|
|
|