ath9k_hw: Fix PAPRD retraining for AR9485
authorSujith Manoharan <c_manoha@qca.qualcomm.com>
Mon, 10 Dec 2012 01:52:36 +0000 (07:22 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 10 Dec 2012 20:49:49 +0000 (15:49 -0500)
Retraining of PAPRD based on agc2_pwr is required for
chips other than AR9485.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_paprd.c

index b28565e..fb3a87e 100644 (file)
@@ -965,9 +965,13 @@ EXPORT_SYMBOL(ar9003_paprd_init_table);
 bool ar9003_paprd_is_done(struct ath_hw *ah)
 {
        int paprd_done, agc2_pwr;
+
        paprd_done = REG_READ_FIELD(ah, AR_PHY_PAPRD_TRAINER_STAT1,
                                AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_TRAIN_DONE);
 
+       if (AR_SREV_9485(ah))
+               goto exit;
+
        if (paprd_done == 0x1) {
                agc2_pwr = REG_READ_FIELD(ah, AR_PHY_PAPRD_TRAINER_STAT1,
                                AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_AGC2_PWR);
@@ -983,7 +987,7 @@ bool ar9003_paprd_is_done(struct ath_hw *ah)
                if (agc2_pwr <= PAPRD_IDEAL_AGC2_PWR_RANGE)
                        paprd_done = 0;
        }
-
+exit:
        return !!paprd_done;
 }
 EXPORT_SYMBOL(ar9003_paprd_is_done);