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 0000000000000000000000000000000000000000..8bcf44e4ac53124ec006f1416caa7b6509a72c61
--- /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)