[source] apm821xx: fix atheros PCIe cards on the MR24

LEDE Commits lede-commits at lists.infradead.org
Mon Jul 25 01:38:56 PDT 2016


nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=3f506bdbb08c0062cbbeac3c9409e479293493d3

commit 3f506bdbb08c0062cbbeac3c9409e479293493d3
Author: Christian Lamparter <chunkeey at googlemail.com>
AuthorDate: Sat Jul 23 14:20:53 2016 +0200

    apm821xx: fix atheros PCIe cards on the MR24
    
    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 at gmail.com
    Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
---
 .../files/arch/powerpc/platforms/44x/wndr4700.c     | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

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);



More information about the lede-commits mailing list