From b755998cd7d06275d2f98be337ed66de72f349c4 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 4 Jun 2012 10:42:03 +0000
Subject: [PATCH] ath9k: fall back to OTP ROM if the platform data does not
 contain valid eeprom data

SVN-Revision: 32044
---
 .../560-ath9k_ar9003_otp_fallback.patch       | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 package/mac80211/patches/560-ath9k_ar9003_otp_fallback.patch

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 00000000000..8bcf44e4ac5
--- /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)
-- 
GitLab