Ticket #7090: led.patch

File led.patch, 4.0 KB (added by anonymous, 7 years ago)

DIR-825 Wi-Fi LEDs fix

  • target/linux/ar71xx/files/include/linux/ath9k_platform.h

     
    1818        u8 *macaddr; 
    1919 
    2020        unsigned long quirk_wndr3700:1; 
     21        unsigned long quirk_dir825:1; 
    2122}; 
    2223 
    2324#endif /* _LINUX_ATH9K_PLATFORM_H */ 
  • target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c

     
    178178 
    179179        platform_device_register(&dir825b1_rtl8366s_device); 
    180180 
     181        ap94_pci_enable_quirk_dir825(); 
    181182        ap94_pci_init((u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_0), 
    182183                      (u8 *) KSEG1ADDR(DIR825B1_MAC_LOCATION_0), 
    183184                      (u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_1), 
  • target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap94-pci.c

     
    131131        ap94_wmac1_data.quirk_wndr3700 = 1; 
    132132} 
    133133 
     134void __init ap94_pci_enable_quirk_dir825(void) 
     135{ 
     136        ap94_wmac0_data.quirk_dir825 = 1; 
     137        ap94_wmac1_data.quirk_dir825 = 1; 
     138} 
     139 
    134140void __init ap94_pci_init(u8 *cal_data0, u8 *mac_addr0, 
    135141                          u8 *cal_data1, u8 *mac_addr1) 
    136142{ 
  • target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap94-pci.h

     
    1717 
    1818void ap94_pci_enable_quirk_wndr3700(void) __init; 
    1919 
     20void ap94_pci_enable_quirk_dir825(void) __init; 
     21 
    2022#else 
    2123static inline void ap94_pci_init(u8 *cal_data0, u8 *mac_addr0, 
    2224                                 u8 *cal_data1, u8 *mac_addr1) {} 
    2325 
    2426static inline void ap94_pci_enable_quirk_wndr3700(void) {} 
     27static inline void ap94_pci_enable_quirk_dir825(void) {} 
    2528#endif 
    2629 
    2730#endif /* _AR71XX_DEV_AP94_PCI_H */ 
  • package/mac80211/patches/411-ath9k-dir825-led-pin-fix.patch

     
     1--- a/drivers/net/wireless/ath/ath9k/gpio.c 
     2+++ b/drivers/net/wireless/ath/ath9k/gpio.c 
     3@@ -149,6 +149,8 @@ 
     4  
     5        if (sc->quirk_wndr3700) 
     6                sc->sc_ah->led_pin = ATH_LED_PIN_WNDR3700; 
     7+       else if (sc->quirk_dir825) 
     8+               sc->sc_ah->led_pin = ATH_LED_PIN_DIR825; 
     9        else if (AR_SREV_9287(sc->sc_ah)) 
     10                sc->sc_ah->led_pin = ATH_LED_PIN_9287; 
     11        else 
     12  
     13--- a/drivers/net/wireless/ath/ath9k/ath9k.h 
     14+++ b/drivers/net/wireless/ath/ath9k/ath9k.h 
     15@@ -461,6 +461,7 @@ 
     16 #define ATH_LED_PIN_DEF                1 
     17 #define ATH_LED_PIN_9287               8 
     18 #define ATH_LED_PIN_WNDR3700           5 
     19+#define ATH_LED_PIN_DIR825             5 
     20 #define ATH_LED_ON_DURATION_IDLE       350     /* in msecs */ 
     21 #define ATH_LED_OFF_DURATION_IDLE      250     /* in msecs */ 
     22  
     23@@ -591,6 +592,7 @@ 
     24        int beacon_interval; 
     25  
     26        bool quirk_wndr3700; 
     27+       bool quirk_dir825; 
     28  
     29 #ifdef CONFIG_ATH9K_DEBUGFS 
     30        struct ath9k_debug debug; 
     31  
     32--- a/drivers/net/wireless/ath/ath9k/init.c 
     33+++ b/drivers/net/wireless/ath/ath9k/init.c 
     34@@ -554,8 +554,10 @@ 
     35        pdata = (struct ath9k_platform_data *) sc->dev->platform_data; 
     36        if (!pdata) 
     37                ah->ah_flags |= AH_USE_EEPROM; 
     38-       else 
     39+       else { 
     40                sc->quirk_wndr3700 = pdata->quirk_wndr3700; 
     41+               sc->quirk_dir825 = pdata->quirk_dir825; 
     42+       } 
     43  
     44        common = ath9k_hw_common(ah); 
     45        common->ops = &ath9k_common_ops; 
     46  
     47--- a/include/linux/ath9k_platform.h 
     48+++ b/include/linux/ath9k_platform.h 
     49@@ -26,6 +26,7 @@ 
     50        u8 *macaddr; 
     51  
     52        bool quirk_wndr3700; 
     53+       bool quirk_dir825; 
     54 }; 
     55 
     56 #endif /* _LINUX_ATH9K_PLATFORM_H */