ath9k_hw: move AR9280 PCI EEPROM fix to eeprom_def.c
Felix Fietkau [Thu, 15 Apr 2010 21:39:17 +0000 (17:39 -0400)]
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

drivers/net/wireless/ath/ath9k/eeprom_def.c
drivers/net/wireless/ath/ath9k/hw.c

index 3d1b86b..cf59799 100644 (file)
@@ -223,6 +223,12 @@ static int ath9k_hw_def_check_eeprom(struct ath_hw *ah)
                return -EINVAL;
        }
 
+       /* Enable fixup for AR_AN_TOP2 if necessary */
+       if (AR_SREV_9280_10_OR_LATER(ah) &&
+           (eep->baseEepHeader.version & 0xff) > 0x0a &&
+           eep->baseEepHeader.pwdclkind == 0)
+               ah->need_an_top2_fixup = 1;
+
        return 0;
 }
 
index 2a04251..888a768 100644 (file)
@@ -525,21 +525,6 @@ static int ath9k_hw_post_init(struct ath_hw *ah)
        return 0;
 }
 
-static void ath9k_hw_init_eeprom_fix(struct ath_hw *ah)
-{
-       struct base_eep_header *pBase = &(ah->eeprom.def.baseEepHeader);
-       struct ath_common *common = ath9k_hw_common(ah);
-
-       ah->need_an_top2_fixup = (ah->hw_version.devid == AR9280_DEVID_PCI) &&
-                                !AR_SREV_9285(ah) && !AR_SREV_9271(ah) &&
-                                ((pBase->version & 0xff) > 0x0a) &&
-                                (pBase->pwdclkind == 0);
-
-       if (ah->need_an_top2_fixup)
-               ath_print(common, ATH_DBG_EEPROM,
-                         "needs fixup for AR_AN_TOP2 register\n");
-}
-
 static void ath9k_hw_attach_ops(struct ath_hw *ah)
 {
        if (AR_SREV_9300_20_OR_LATER(ah))
@@ -629,8 +614,6 @@ static int __ath9k_hw_init(struct ath_hw *ah)
        if (r)
                return r;
 
-       ath9k_hw_init_eeprom_fix(ah);
-
        r = ath9k_hw_init_macaddr(ah);
        if (r) {
                ath_print(common, ATH_DBG_FATAL,