[backfire] merge r26740
[openwrt-10.03/.git] / package / mac80211 / patches / 451-add-platform-eeprom-support-to-ath5k.patch
index 717acd23422b485ff88fc6e3f7282f921fb7da85..2ec20081b74ab9bd8aba51603241f5aec924c341 100644 (file)
@@ -1,6 +1,6 @@
---- a/drivers/net/wireless/ath/ath5k/eeprom.c  2010-06-23 03:08:32.000000000 +0200
-+++ b/drivers/net/wireless/ath/ath5k/eeprom.c  2010-06-23 05:59:30.000000000 +0200
-@@ -22,6 +23,8 @@
+--- a/drivers/net/wireless/ath/ath5k/eeprom.c
++++ b/drivers/net/wireless/ath/ath5k/eeprom.c
+@@ -22,6 +22,8 @@
  \*************************************/
  
  #include <linux/slab.h>
@@ -9,26 +9,7 @@
  
  #include "ath5k.h"
  #include "reg.h"
-@@ -34,6 +37,18 @@
- 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
-@@ -1788,7 +1802,7 @@
+@@ -1722,7 +1724,7 @@ ath5k_eeprom_read_spur_chans(struct ath5
  }
  
  /*
   */
  int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
  {
-@@ -1796,6 +1810,16 @@
+@@ -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