ath5k: fix 2ghz-only radio handling on ar5312
[openwrt.git] / package / mac80211 / patches / 451-add-platform-eeprom-support-to-ath5k.patch
index 5186735..2ec2008 100644 (file)
@@ -9,26 +9,7 @@
  
  #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
This page took 0.024088 seconds and 4 git commands to generate.