+ AR5K_EEPROM_READ(0x20, data);
+
+--- a/drivers/net/wireless/ath/ath5k/pci.c
++++ b/drivers/net/wireless/ath/ath5k/pci.c
+@@ -17,6 +17,7 @@
+ #include <linux/nl80211.h>
+ #include <linux/pci.h>
+ #include <linux/pci-aspm.h>
++#include <linux/ath5k_platform.h>
+ #include "../ath.h"
+ #include "ath5k.h"
+ #include "debug.h"
+@@ -74,6 +75,19 @@ ath5k_pci_eeprom_read(struct ath_common
+ {
+ struct ath5k_hw *ah = (struct ath5k_hw *) common->ah;
+ u32 status, timeout;
++ struct ath5k_platform_data *pdata = NULL;
++
++ if (ah->ah_sc->pdev)
++ pdata = ah->ah_sc->pdev->dev.platform_data;
++
++ if (pdata && pdata->eeprom_data && pdata->eeprom_data[0] == AR5K_EEPROM_MAGIC_VALUE)
++ {
++ if (offset >= ATH5K_PLAT_EEP_MAX_WORDS)
++ return -EIO;
++
++ *data = pdata->eeprom_data[offset];
++ return 0;
++ }
+
+ /*
+ * Initialize EEPROM access