summaryrefslogtreecommitdiff
path: root/package/mac80211/patches
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-04 10:42:03 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-04 10:42:03 +0000
commit5bfb119980ceb2dd15b7492af9aaddf52a3e3e82 (patch)
treeae81da3f7b1929876e425bd6b33856a7cf7aff34 /package/mac80211/patches
parent43bdeca5797634445be668454097a00c9c67f066 (diff)
ath9k: fall back to OTP ROM if the platform data does not contain valid eeprom data
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32044 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches')
-rw-r--r--package/mac80211/patches/560-ath9k_ar9003_otp_fallback.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/package/mac80211/patches/560-ath9k_ar9003_otp_fallback.patch b/package/mac80211/patches/560-ath9k_ar9003_otp_fallback.patch
new file mode 100644
index 0000000000..8bcf44e4ac
--- /dev/null
+++ b/package/mac80211/patches/560-ath9k_ar9003_otp_fallback.patch
@@ -0,0 +1,25 @@
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+@@ -3260,10 +3260,20 @@ static int ar9300_eeprom_restore_interna
+ int it;
+ u16 checksum, mchecksum;
+ struct ath_common *common = ath9k_hw_common(ah);
++ struct ar9300_eeprom *eep;
+ eeprom_read_op read;
+
+- if (ath9k_hw_use_flash(ah))
+- return ar9300_eeprom_restore_flash(ah, mptr, mdata_size);
++ if (ath9k_hw_use_flash(ah)) {
++ u8 txrx;
++
++ ar9300_eeprom_restore_flash(ah, mptr, mdata_size);
++
++ /* check if eeprom contains valid data */
++ eep = (struct ar9300_eeprom *) mptr;
++ txrx = eep->baseEepHeader.txrxMask;
++ if (txrx != 0 && txrx != 0xff)
++ return 0;
++ }
+
+ word = kzalloc(2048, GFP_KERNEL);
+ if (!word)