brcm63xx: add linux 4.4 support
[openwrt.git] / target / linux / brcm63xx / patches-4.4 / 421-BCM63XX-add-led-pin-for-ath9k.patch
diff --git a/target/linux/brcm63xx/patches-4.4/421-BCM63XX-add-led-pin-for-ath9k.patch b/target/linux/brcm63xx/patches-4.4/421-BCM63XX-add-led-pin-for-ath9k.patch
new file mode 100644 (file)
index 0000000..07e5e21
--- /dev/null
@@ -0,0 +1,49 @@
+--- a/arch/mips/bcm63xx/boards/board_common.c
++++ b/arch/mips/bcm63xx/boards/board_common.c
+@@ -270,7 +270,7 @@ int __init board_register_devices(void)
+       /* register any fixups */
+       for (i = 0; i < board.has_caldata; i++)
+               pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
+-                      board.caldata[i].endian_check);
++                      board.caldata[i].endian_check, board.caldata[i].led_pin);
+       return 0;
+ }
+--- a/arch/mips/bcm63xx/pci-ath9k-fixup.c
++++ b/arch/mips/bcm63xx/pci-ath9k-fixup.c
+@@ -182,13 +182,14 @@ static void ath9k_pci_fixup(struct pci_d
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ath9k_pci_fixup);
+ void __init pci_enable_ath9k_fixup(unsigned slot, u32 offset,
+-      unsigned endian_check)
++      unsigned endian_check, int led_pin)
+ {
+       if (ath9k_num_fixups >= ARRAY_SIZE(ath9k_fixups))
+               return;
+       ath9k_fixups[ath9k_num_fixups].slot = slot;
+       ath9k_fixups[ath9k_num_fixups].pdata.endian_check = endian_check;
++      ath9k_fixups[ath9k_num_fixups].pdata.led_pin = led_pin;
+       if (!bcm63xx_read_eeprom(ath9k_fixups[ath9k_num_fixups].pdata.eeprom_data, offset))
+               return;
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -21,6 +21,7 @@ struct ath9k_caldata {
+       unsigned int    slot;
+       u32             caldata_offset;
+       unsigned int    endian_check:1;
++      int             led_pin;
+ };
+ /*
+--- a/arch/mips/include/asm/mach-bcm63xx/pci_ath9k_fixup.h
++++ b/arch/mips/include/asm/mach-bcm63xx/pci_ath9k_fixup.h
+@@ -3,6 +3,6 @@
+ void pci_enable_ath9k_fixup(unsigned slot, u32 offset,
+-      unsigned endian_check) __init;
++      unsigned endian_check, int led_pin) __init;
+ #endif /* _PCI_ATH9K_FIXUP */