rt2x00pci_register_read(rt2x00dev, GPIOCSR, ®);
return rt2x00_get_field32(reg, GPIOCSR_BIT0);
}
+#else
+#define rt2400pci_rfkill_poll NULL
#endif /* CONFIG_RT2400PCI_RFKILL */
/*
/*
* Detect if this device has an hardware controlled radio.
*/
+#ifdef CONFIG_RT2400PCI_RFKILL
if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO))
__set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags);
+#endif /* CONFIG_RT2400PCI_RFKILL */
/*
* Check if the BBP tuning should be enabled.
.initialize = rt2x00pci_initialize,
.uninitialize = rt2x00pci_uninitialize,
.set_device_state = rt2400pci_set_device_state,
-#ifdef CONFIG_RT2400PCI_RFKILL
.rfkill_poll = rt2400pci_rfkill_poll,
-#endif /* CONFIG_RT2400PCI_RFKILL */
.link_stats = rt2400pci_link_stats,
.reset_tuner = rt2400pci_reset_tuner,
.link_tuner = rt2400pci_link_tuner,
rt2x00pci_register_read(rt2x00dev, GPIOCSR, ®);
return rt2x00_get_field32(reg, GPIOCSR_BIT0);
}
+#else
+#define rt2500pci_rfkill_poll NULL
#endif /* CONFIG_RT2500PCI_RFKILL */
/*
/*
* Detect if this device has an hardware controlled radio.
*/
+#ifdef CONFIG_RT2500PCI_RFKILL
if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO))
__set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags);
+#endif /* CONFIG_RT2500PCI_RFKILL */
/*
* Check if the BBP tuning should be enabled.
.initialize = rt2x00pci_initialize,
.uninitialize = rt2x00pci_uninitialize,
.set_device_state = rt2500pci_set_device_state,
-#ifdef CONFIG_RT2500PCI_RFKILL
.rfkill_poll = rt2500pci_rfkill_poll,
-#endif /* CONFIG_RT2500PCI_RFKILL */
.link_stats = rt2500pci_link_stats,
.reset_tuner = rt2500pci_reset_tuner,
.link_tuner = rt2500pci_link_tuner,
DEVICE_STARTED,
DEVICE_STARTED_SUSPEND,
DEVICE_ENABLED_RADIO,
- DEVICE_ENABLED_RADIO_HW,
+ DEVICE_DISABLED_RADIO_HW,
/*
* Driver features
* And check if the hardware button has been disabled.
*/
if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags) ||
- (test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) &&
- !test_bit(DEVICE_ENABLED_RADIO_HW, &rt2x00dev->flags)))
+ test_bit(DEVICE_DISABLED_RADIO_HW, &rt2x00dev->flags))
return 0;
/*
/*
* Interval defines
+ * Both the link tuner as the rfkill will be called once per second.
*/
#define LINK_TUNE_INTERVAL ( round_jiffies(HZ) )
-#define RFKILL_POLL_INTERVAL ( HZ / 4 )
+#define RFKILL_POLL_INTERVAL ( 1000 )
/*
* Radio control handlers.
#else
static inline int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
{
- /*
- * Force enable this flag, this will assure that
- * devices with a hardware button but without rfkill support
- * can still use their hardware.
- */
- __set_bit(DEVICE_ENABLED_RADIO_HW, &rt2x00dev->flags);
-
return 0;
}
if (state == RFKILL_STATE_ON) {
INFO(rt2x00dev, "Hardware button pressed, enabling radio.\n");
- __set_bit(DEVICE_ENABLED_RADIO_HW, &rt2x00dev->flags);
+ __clear_bit(DEVICE_DISABLED_RADIO_HW, &rt2x00dev->flags);
retval = rt2x00lib_enable_radio(rt2x00dev);
} else if (state == RFKILL_STATE_OFF) {
INFO(rt2x00dev, "Hardware button pressed, disabling radio.\n");
- __clear_bit(DEVICE_ENABLED_RADIO_HW, &rt2x00dev->flags);
+ __set_bit(DEVICE_DISABLED_RADIO_HW, &rt2x00dev->flags);
rt2x00lib_disable_radio(rt2x00dev);
}
rt2x00pci_register_read(rt2x00dev, MAC_CSR13, ®);
return rt2x00_get_field32(reg, MAC_CSR13_BIT5);;
}
+#else
+#define rt61pci_rfkill_poll NULL
#endif /* CONFIG_RT61PCI_RFKILL */
/*
/*
* Detect if this device has an hardware controlled radio.
*/
+#ifdef CONFIG_RT61PCI_RFKILL
if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO))
__set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags);
+#endif /* CONFIG_RT61PCI_RFKILL */
/*
* Read frequency offset and RF programming sequence.
.initialize = rt2x00pci_initialize,
.uninitialize = rt2x00pci_uninitialize,
.set_device_state = rt61pci_set_device_state,
-#ifdef CONFIG_RT61PCI_RFKILL
.rfkill_poll = rt61pci_rfkill_poll,
-#endif /* CONFIG_RT61PCI_RFKILL */
.link_stats = rt61pci_link_stats,
.reset_tuner = rt61pci_reset_tuner,
.link_tuner = rt61pci_link_tuner,