aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-06-04 10:42:03 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-06-04 10:42:03 +0000
commitfd0573989c6477ed54f4fa69e49ad52e0087f260 (patch)
treeae81da3f7b1929876e425bd6b33856a7cf7aff34 /package
parent7d6df5d239fa2f2be475a91e41013621a360a58c (diff)
downloadupstream-fd0573989c6477ed54f4fa69e49ad52e0087f260.tar.gz
upstream-fd0573989c6477ed54f4fa69e49ad52e0087f260.tar.bz2
upstream-fd0573989c6477ed54f4fa69e49ad52e0087f260.zip
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')
-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)