]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ath9k_hw: fall back to OTP ROM when platform data has no valid eeprom data
authorFelix Fietkau <nbd@openwrt.org>
Sun, 15 Jul 2012 17:53:29 +0000 (19:53 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 17 Jul 2012 19:11:33 +0000 (15:11 -0400)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c

index 25de6f9a9778a964828cd7ebcc6ae4ff970f75cf..3cddd78e88ac4268bde513c66319b085b3499ea5 100644 (file)
@@ -3260,10 +3260,20 @@ static int ar9300_eeprom_restore_internal(struct ath_hw *ah,
        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)