diff options
Diffstat (limited to 'package/mac80211/patches/620-rt2x00_soc_led_support.patch')
-rw-r--r-- | package/mac80211/patches/620-rt2x00_soc_led_support.patch | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/package/mac80211/patches/620-rt2x00_soc_led_support.patch b/package/mac80211/patches/620-rt2x00_soc_led_support.patch deleted file mode 100644 index ca08ae65a7..0000000000 --- a/package/mac80211/patches/620-rt2x00_soc_led_support.patch +++ /dev/null @@ -1,75 +0,0 @@ ---- a/drivers/net/wireless/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/rt2x00/rt2800lib.c -@@ -938,6 +938,7 @@ EXPORT_SYMBOL_GPL(rt2800_rfkill_poll); - static void rt2800_brightness_set(struct led_classdev *led_cdev, - enum led_brightness brightness) - { -+ u32 reg; - struct rt2x00_led *led = - container_of(led_cdev, struct rt2x00_led, led_dev); - unsigned int enabled = brightness != LED_OFF; -@@ -950,24 +951,46 @@ static void rt2800_brightness_set(struct - rt2x00_get_field16(led->rt2x00dev->led_mcu_reg, - EEPROM_FREQ_LED_MODE); - -- if (led->type == LED_TYPE_RADIO) { -- rt2800_mcu_request(led->rt2x00dev, MCU_LED, 0xff, ledmode, -- enabled ? 0x20 : 0); -- } else if (led->type == LED_TYPE_ASSOC) { -- rt2800_mcu_request(led->rt2x00dev, MCU_LED, 0xff, ledmode, -- enabled ? (bg_mode ? 0x60 : 0xa0) : 0x20); -- } else if (led->type == LED_TYPE_QUALITY) { -- /* -- * The brightness is divided into 6 levels (0 - 5), -- * The specs tell us the following levels: -- * 0, 1 ,3, 7, 15, 31 -- * to determine the level in a simple way we can simply -- * work with bitshifting: -- * (1 << level) - 1 -- */ -- rt2800_mcu_request(led->rt2x00dev, MCU_LED_STRENGTH, 0xff, -- (1 << brightness / (LED_FULL / 6)) - 1, -- polarity); -+ /* Check for SoC (SOC devices don't support MCU requests) */ -+ if (rt2x00_is_soc(led->rt2x00dev)) { -+ rt2800_register_read(led->rt2x00dev, LED_CFG, ®); -+ -+ /* Set LED Polarity */ -+ rt2x00_set_field32(®, LED_CFG_LED_POLAR, polarity); -+ -+ /* Set LED Mode */ -+ if (led->type == LED_TYPE_RADIO) { -+ rt2x00_set_field32(®, LED_CFG_G_LED_MODE, -+ enabled ? 3 : 0); -+ } else if (led->type == LED_TYPE_ASSOC) { -+ rt2x00_set_field32(®, LED_CFG_Y_LED_MODE, -+ enabled ? 3 : 0); -+ } else if (led->type == LED_TYPE_QUALITY) { -+ rt2x00_set_field32(®, LED_CFG_R_LED_MODE, -+ enabled ? 3 : 0); -+ } -+ rt2800_register_write(led->rt2x00dev, LED_CFG, reg); -+ } -+ else { -+ if (led->type == LED_TYPE_RADIO) { -+ rt2800_mcu_request(led->rt2x00dev, MCU_LED, 0xff, ledmode, -+ enabled ? 0x20 : 0); -+ } else if (led->type == LED_TYPE_ASSOC) { -+ rt2800_mcu_request(led->rt2x00dev, MCU_LED, 0xff, ledmode, -+ enabled ? (bg_mode ? 0x60 : 0xa0) : 0x20); -+ } else if (led->type == LED_TYPE_QUALITY) { -+ /* -+ * The brightness is divided into 6 levels (0 - 5), -+ * The specs tell us the following levels: -+ * 0, 1 ,3, 7, 15, 31 -+ * to determine the level in a simple way we can simply -+ * work with bitshifting: -+ * (1 << level) - 1 -+ */ -+ rt2800_mcu_request(led->rt2x00dev, MCU_LED_STRENGTH, 0xff, -+ (1 << brightness / (LED_FULL / 6)) - 1, -+ polarity); -+ } - } - } - |