diff mbox

[LEDE-DEV,2/2] apm821xx: fix atheros PCIe cards on the MR24

Message ID c159f6e2ffebd9c7030c66bdb56882d9cc1318de.1469275344.git.chunkeey@gmail.com
State Accepted
Headers show

Commit Message

Christian Lamparter July 23, 2016, 12:20 p.m. UTC
The consolidation of the MR24 and WNDR4700 subtargets
into the nand subtarget broke MR24's atheros wlan.
This was because the wndr4700's board code used a
pci_fixup routines to supply the ath9k module with
the calibration data.

This is not necessary on the MR24 as it has standard
mini-pcie ports. Hence the two AR9380 mini-pcie cards
do not need any calibration data overrides.

Cc: chrisrblake93@gmail.com
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
---
 .../files/arch/powerpc/platforms/44x/wndr4700.c     | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)
diff mbox

Patch

diff --git a/target/linux/apm821xx/files/arch/powerpc/platforms/44x/wndr4700.c b/target/linux/apm821xx/files/arch/powerpc/platforms/44x/wndr4700.c
index 975ac46..f50f43f 100644
--- a/target/linux/apm821xx/files/arch/powerpc/platforms/44x/wndr4700.c
+++ b/target/linux/apm821xx/files/arch/powerpc/platforms/44x/wndr4700.c
@@ -82,15 +82,18 @@  static struct ath9k_platform_data ar9580_wmac1_data = {
 	.eeprom_name = "pci_wmac0.eeprom",
 };
 
-static void load_eeprom_ar9380(struct pci_dev *dev)
+static int __init wndr4700_ath9k_eeprom_load(void)
 {
-	dev->dev.platform_data = &ar9380_wmac0_data;
-}
+	struct pci_dev *dev;
 
-static void load_eeprom_ar9580(struct pci_dev *dev)
-{
-	dev->dev.platform_data = &ar9580_wmac1_data;
-}
+	dev = pci_get_device(PCI_VENDOR_ID_ATHEROS, 0x0030, NULL);
+	if (dev)
+		dev->dev.platform_data = &ar9380_wmac0_data;
 
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATHEROS, 0x0030, load_eeprom_ar9380);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATHEROS, 0x0033, load_eeprom_ar9580);
+	dev = pci_get_device(PCI_VENDOR_ID_ATHEROS, 0x0033, NULL);
+	if (dev)
+		dev->dev.platform_data = &ar9580_wmac1_data;
+
+	return 0;
+}
+machine_device_initcall(wndr4700, wndr4700_ath9k_eeprom_load);