|
@@ -1126,9 +1126,10 @@ static void rt2x00lib_uninitialize(struct rt2x00_dev *rt2x00dev)
|
|
return;
|
|
return;
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Unregister extra components.
|
|
|
|
|
|
+ * Stop rfkill polling.
|
|
*/
|
|
*/
|
|
- rt2x00rfkill_unregister(rt2x00dev);
|
|
|
|
|
|
+ if (test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
|
|
|
+ rt2x00rfkill_unregister(rt2x00dev);
|
|
|
|
|
|
/*
|
|
/*
|
|
* Allow the HW to uninitialize.
|
|
* Allow the HW to uninitialize.
|
|
@@ -1166,6 +1167,12 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev)
|
|
|
|
|
|
set_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags);
|
|
set_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags);
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Start rfkill polling.
|
|
|
|
+ */
|
|
|
|
+ if (test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
|
|
|
+ rt2x00rfkill_register(rt2x00dev);
|
|
|
|
+
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1375,7 +1382,12 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
|
|
rt2x00link_register(rt2x00dev);
|
|
rt2x00link_register(rt2x00dev);
|
|
rt2x00leds_register(rt2x00dev);
|
|
rt2x00leds_register(rt2x00dev);
|
|
rt2x00debug_register(rt2x00dev);
|
|
rt2x00debug_register(rt2x00dev);
|
|
- rt2x00rfkill_register(rt2x00dev);
|
|
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Start rfkill polling.
|
|
|
|
+ */
|
|
|
|
+ if (!test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
|
|
|
+ rt2x00rfkill_register(rt2x00dev);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
@@ -1390,6 +1402,12 @@ void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
|
|
{
|
|
{
|
|
clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
|
|
clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Stop rfkill polling.
|
|
|
|
+ */
|
|
|
|
+ if (!test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
|
|
|
+ rt2x00rfkill_unregister(rt2x00dev);
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Disable radio.
|
|
* Disable radio.
|
|
*/
|
|
*/
|