#include "ath5k.h"
#include "reg.h"
-@@ -71,6 +73,18 @@ static u16 ath5k_eeprom_bin2freq(struct
- static int ath5k_hw_eeprom_read(struct ath5k_hw *ah, u32 offset, u16 *data)
- {
- 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)
-+ {
-+ ATH5K_INFO(ah->ah_sc, "using eeprom-content from platform_data\n");
-+ if (offset >= ATH5K_PLAT_EEP_MAX_WORDS) return -EIO;
-+ *data = pdata->eeprom_data[offset];
-+ return 0;
-+ }
-
- /*
- * Initialize EEPROM access
-@@ -1760,7 +1774,7 @@ ath5k_eeprom_read_spur_chans(struct ath5
+@@ -1722,7 +1724,7 @@ ath5k_eeprom_read_spur_chans(struct ath5
}
/*
*/
int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
{
-@@ -1768,6 +1782,16 @@ int ath5k_eeprom_read_mac(struct ath5k_h
+@@ -1730,6 +1732,16 @@ int ath5k_eeprom_read_mac(struct ath5k_h
u32 total, offset;
u16 data;
- int octet, ret;
+ int octet;
+ struct ath5k_platform_data *pdata = NULL;
+
+ if (ah->ah_sc->pdev)
+ return 0;
+ }
- ret = ath5k_hw_eeprom_read(ah, 0x20, &data);
- if (ret)
+ 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