diff options
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500usb.c | 21 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500usb.h | 8 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt73usb.c | 21 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt73usb.h | 13 |
4 files changed, 63 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 557fcf2b30e4..01e5584d8f77 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c | |||
@@ -280,6 +280,18 @@ static const struct rt2x00debug rt2500usb_rt2x00debug = { | |||
280 | }; | 280 | }; |
281 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ | 281 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ |
282 | 282 | ||
283 | #ifdef CONFIG_RT2X00_LIB_RFKILL | ||
284 | static int rt2500usb_rfkill_poll(struct rt2x00_dev *rt2x00dev) | ||
285 | { | ||
286 | u16 reg; | ||
287 | |||
288 | rt2500usb_register_read(rt2x00dev, MAC_CSR19, ®); | ||
289 | return rt2x00_get_field32(reg, MAC_CSR19_BIT7); | ||
290 | } | ||
291 | #else | ||
292 | #define rt2500usb_rfkill_poll NULL | ||
293 | #endif /* CONFIG_RT2X00_LIB_RFKILL */ | ||
294 | |||
283 | #ifdef CONFIG_RT2X00_LIB_LEDS | 295 | #ifdef CONFIG_RT2X00_LIB_LEDS |
284 | static void rt2500usb_brightness_set(struct led_classdev *led_cdev, | 296 | static void rt2500usb_brightness_set(struct led_classdev *led_cdev, |
285 | enum led_brightness brightness) | 297 | enum led_brightness brightness) |
@@ -1597,6 +1609,14 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev) | |||
1597 | #endif /* CONFIG_RT2X00_LIB_LEDS */ | 1609 | #endif /* CONFIG_RT2X00_LIB_LEDS */ |
1598 | 1610 | ||
1599 | /* | 1611 | /* |
1612 | * Detect if this device has an hardware controlled radio. | ||
1613 | */ | ||
1614 | #ifdef CONFIG_RT2X00_LIB_RFKILL | ||
1615 | if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO)) | ||
1616 | __set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||
1617 | #endif /* CONFIG_RT2X00_LIB_RFKILL */ | ||
1618 | |||
1619 | /* | ||
1600 | * Check if the BBP tuning should be disabled. | 1620 | * Check if the BBP tuning should be disabled. |
1601 | */ | 1621 | */ |
1602 | rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom); | 1622 | rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom); |
@@ -1902,6 +1922,7 @@ static const struct rt2x00lib_ops rt2500usb_rt2x00_ops = { | |||
1902 | .uninitialize = rt2x00usb_uninitialize, | 1922 | .uninitialize = rt2x00usb_uninitialize, |
1903 | .clear_entry = rt2x00usb_clear_entry, | 1923 | .clear_entry = rt2x00usb_clear_entry, |
1904 | .set_device_state = rt2500usb_set_device_state, | 1924 | .set_device_state = rt2500usb_set_device_state, |
1925 | .rfkill_poll = rt2500usb_rfkill_poll, | ||
1905 | .link_stats = rt2500usb_link_stats, | 1926 | .link_stats = rt2500usb_link_stats, |
1906 | .reset_tuner = rt2500usb_reset_tuner, | 1927 | .reset_tuner = rt2500usb_reset_tuner, |
1907 | .link_tuner = rt2500usb_link_tuner, | 1928 | .link_tuner = rt2500usb_link_tuner, |
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.h b/drivers/net/wireless/rt2x00/rt2500usb.h index 4347dfdabcd4..e1f714e82af0 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.h +++ b/drivers/net/wireless/rt2x00/rt2500usb.h | |||
@@ -189,6 +189,14 @@ | |||
189 | * MAC_CSR19: GPIO control register. | 189 | * MAC_CSR19: GPIO control register. |
190 | */ | 190 | */ |
191 | #define MAC_CSR19 0x0426 | 191 | #define MAC_CSR19 0x0426 |
192 | #define MAC_CSR19_BIT0 FIELD32(0x0001) | ||
193 | #define MAC_CSR19_BIT1 FIELD32(0x0002) | ||
194 | #define MAC_CSR19_BIT2 FIELD32(0x0004) | ||
195 | #define MAC_CSR19_BIT3 FIELD32(0x0008) | ||
196 | #define MAC_CSR19_BIT4 FIELD32(0x0010) | ||
197 | #define MAC_CSR19_BIT5 FIELD32(0x0020) | ||
198 | #define MAC_CSR19_BIT6 FIELD32(0x0040) | ||
199 | #define MAC_CSR19_BIT7 FIELD32(0x0080) | ||
192 | 200 | ||
193 | /* | 201 | /* |
194 | * MAC_CSR20: LED control register. | 202 | * MAC_CSR20: LED control register. |
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index e99bcacfc191..c2658108d9c3 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c | |||
@@ -186,6 +186,18 @@ static const struct rt2x00debug rt73usb_rt2x00debug = { | |||
186 | }; | 186 | }; |
187 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ | 187 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ |
188 | 188 | ||
189 | #ifdef CONFIG_RT2X00_LIB_RFKILL | ||
190 | static int rt73usb_rfkill_poll(struct rt2x00_dev *rt2x00dev) | ||
191 | { | ||
192 | u32 reg; | ||
193 | |||
194 | rt2x00usb_register_read(rt2x00dev, MAC_CSR13, ®); | ||
195 | return rt2x00_get_field32(reg, MAC_CSR13_BIT7); | ||
196 | } | ||
197 | #else | ||
198 | #define rt73usb_rfkill_poll NULL | ||
199 | #endif /* CONFIG_RT2X00_LIB_RFKILL */ | ||
200 | |||
189 | #ifdef CONFIG_RT2X00_LIB_LEDS | 201 | #ifdef CONFIG_RT2X00_LIB_LEDS |
190 | static void rt73usb_brightness_set(struct led_classdev *led_cdev, | 202 | static void rt73usb_brightness_set(struct led_classdev *led_cdev, |
191 | enum led_brightness brightness) | 203 | enum led_brightness brightness) |
@@ -1853,6 +1865,14 @@ static int rt73usb_init_eeprom(struct rt2x00_dev *rt2x00dev) | |||
1853 | __set_bit(CONFIG_FRAME_TYPE, &rt2x00dev->flags); | 1865 | __set_bit(CONFIG_FRAME_TYPE, &rt2x00dev->flags); |
1854 | 1866 | ||
1855 | /* | 1867 | /* |
1868 | * Detect if this device has an hardware controlled radio. | ||
1869 | */ | ||
1870 | #ifdef CONFIG_RT2X00_LIB_RFKILL | ||
1871 | if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO)) | ||
1872 | __set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | ||
1873 | #endif /* CONFIG_RT2X00_LIB_RFKILL */ | ||
1874 | |||
1875 | /* | ||
1856 | * Read frequency offset. | 1876 | * Read frequency offset. |
1857 | */ | 1877 | */ |
1858 | rt2x00_eeprom_read(rt2x00dev, EEPROM_FREQ, &eeprom); | 1878 | rt2x00_eeprom_read(rt2x00dev, EEPROM_FREQ, &eeprom); |
@@ -2257,6 +2277,7 @@ static const struct rt2x00lib_ops rt73usb_rt2x00_ops = { | |||
2257 | .uninitialize = rt2x00usb_uninitialize, | 2277 | .uninitialize = rt2x00usb_uninitialize, |
2258 | .clear_entry = rt2x00usb_clear_entry, | 2278 | .clear_entry = rt2x00usb_clear_entry, |
2259 | .set_device_state = rt73usb_set_device_state, | 2279 | .set_device_state = rt73usb_set_device_state, |
2280 | .rfkill_poll = rt73usb_rfkill_poll, | ||
2260 | .link_stats = rt73usb_link_stats, | 2281 | .link_stats = rt73usb_link_stats, |
2261 | .reset_tuner = rt73usb_reset_tuner, | 2282 | .reset_tuner = rt73usb_reset_tuner, |
2262 | .link_tuner = rt73usb_link_tuner, | 2283 | .link_tuner = rt73usb_link_tuner, |
diff --git a/drivers/net/wireless/rt2x00/rt73usb.h b/drivers/net/wireless/rt2x00/rt73usb.h index 46e1405eb0e2..204bbd5b7c59 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.h +++ b/drivers/net/wireless/rt2x00/rt73usb.h | |||
@@ -267,6 +267,19 @@ struct hw_pairwise_ta_entry { | |||
267 | * MAC_CSR13: GPIO. | 267 | * MAC_CSR13: GPIO. |
268 | */ | 268 | */ |
269 | #define MAC_CSR13 0x3034 | 269 | #define MAC_CSR13 0x3034 |
270 | #define MAC_CSR13_BIT0 FIELD32(0x00000001) | ||
271 | #define MAC_CSR13_BIT1 FIELD32(0x00000002) | ||
272 | #define MAC_CSR13_BIT2 FIELD32(0x00000004) | ||
273 | #define MAC_CSR13_BIT3 FIELD32(0x00000008) | ||
274 | #define MAC_CSR13_BIT4 FIELD32(0x00000010) | ||
275 | #define MAC_CSR13_BIT5 FIELD32(0x00000020) | ||
276 | #define MAC_CSR13_BIT6 FIELD32(0x00000040) | ||
277 | #define MAC_CSR13_BIT7 FIELD32(0x00000080) | ||
278 | #define MAC_CSR13_BIT8 FIELD32(0x00000100) | ||
279 | #define MAC_CSR13_BIT9 FIELD32(0x00000200) | ||
280 | #define MAC_CSR13_BIT10 FIELD32(0x00000400) | ||
281 | #define MAC_CSR13_BIT11 FIELD32(0x00000800) | ||
282 | #define MAC_CSR13_BIT12 FIELD32(0x00001000) | ||
270 | 283 | ||
271 | /* | 284 | /* |
272 | * MAC_CSR14: LED control register. | 285 | * MAC_CSR14: LED control register. |