apm821xx: fix atheros PCIe cards on the MR24
[lede-git/.git] / target / linux / apm821xx / files / arch / powerpc / platforms / 44x / wndr4700.c
index 975ac461fe76d7385b3ac2605e8c7161dc104e92..f50f43f3df939cdc3e792a152155e01a2bd36c9e 100644 (file)
@@ -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);