wpa_supplicant: fix regressions introduced by the ibss-rsn changes
[openwrt.git] / package / mac80211 / patches / 451-add-platform-eeprom-support-to-ath5k.patch
index a03b599449b2c43cd0bfca42a3f17b0e6da900ea..6e03d70a74db7d525623eb4bc5e8d9d185c53d2e 100644 (file)
@@ -1,56 +1,56 @@
---- a/drivers/net/wireless/ath/ath5k/eeprom.c
-+++ b/drivers/net/wireless/ath/ath5k/eeprom.c
-@@ -22,6 +22,8 @@
- \*************************************/
- #include <linux/slab.h>
+--- a/drivers/net/wireless/ath/ath5k/pci.c
++++ b/drivers/net/wireless/ath/ath5k/pci.c
+@@ -19,6 +19,7 @@
+ #include <linux/pci-aspm.h>
+ #include <linux/etherdevice.h>
+ #include <linux/module.h>
 +#include <linux/ath5k_platform.h>
-+#include <linux/pci.h>
+ #include "../ath.h"
  #include "ath5k.h"
- #include "reg.h"
-@@ -34,6 +36,18 @@
- static int ath5k_hw_eeprom_read(struct ath5k_hw *ah, u32 offset, u16 *data)
- {
+ #include "debug.h"
+@@ -69,7 +70,7 @@ static void ath5k_pci_read_cachesize(str
+ }
+ /*
+- * Read from eeprom
++ * Read from eeprom or platform_data
+  */
+ static bool
+ ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data)
+@@ -77,6 +78,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->pdev)
++              pdata = ah->pdev->dev.platform_data;
 +
-+      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;
++      if (pdata && pdata->eeprom_data && pdata->eeprom_data[61] == AR5K_EEPROM_MAGIC_VALUE) {
++              if (offset >= ATH5K_PLAT_EEP_MAX_WORDS) 
++                      return false;
++              
 +              *data = pdata->eeprom_data[offset];
-+              return 0;
++              return true;
 +      }
++
        /*
         * Initialize EEPROM access
-@@ -1788,7 +1802,7 @@ ath5k_eeprom_init(struct ath5k_hw *ah)
- }
- /*
-- * Read the MAC address from eeprom
-+ * Read the MAC address from eeprom or platform_data
-  */
- int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
- {
-@@ -1796,6 +1810,16 @@ int ath5k_eeprom_read_mac(struct ath5k_h
-       u32 total, offset;
+        */
+@@ -120,6 +134,16 @@ static int ath5k_pci_eeprom_read_mac(str
        u16 data;
-       int octet, ret;
+       int octet;
 +      struct ath5k_platform_data *pdata = NULL;
 +
-+      if (ah->ah_sc->pdev)
-+              pdata = ah->ah_sc->pdev->dev.platform_data;
++      if (ah->pdev)
++              pdata = ah->pdev->dev.platform_data;
 +
-+      if (pdata && pdata->macaddr)
-+      {
++      if (pdata && pdata->macaddr) {
 +              memcpy(mac, pdata->macaddr, ETH_ALEN);
 +              return 0;
 +      }
++
+       AR5K_EEPROM_READ(0x20, data);
  
-       ret = ath5k_hw_eeprom_read(ah, 0x20, &data);
-       if (ret)
+       for (offset = 0x1f, octet = 0, total = 0; offset >= 0x1d; offset--) {