ath9k: refactor ar9003_hw_spur_mitigate_ofdm
authorWenli Looi <wlooi@ucalgary.ca>
Sun, 20 Mar 2022 23:30:09 +0000 (17:30 -0600)
committerKalle Valo <quic_kvalo@quicinc.com>
Fri, 25 Mar 2022 10:33:28 +0000 (12:33 +0200)
Similar to ar9003_hw_spur_mitigate_mrc_cck, simplify the code by using
ar9003_get_spur_chan_ptr. This may also be required for QCN550x support,
to provide an abstraction over the underlying EEPROM format.

Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220320233010.123106-6-wlooi@ucalgary.ca
drivers/net/wireless/ath/ath9k/ar9003_phy.c

index daf30f9..dc0e5ea 100644 (file)
@@ -523,21 +523,10 @@ static void ar9003_hw_spur_mitigate_ofdm(struct ath_hw *ah,
        int synth_freq;
        int range = 10;
        int freq_offset = 0;
-       int mode;
-       u8* spurChansPtr;
+       u8 *spur_fbin_ptr = ar9003_get_spur_chan_ptr(ah, IS_CHAN_2GHZ(chan));
        unsigned int i;
-       struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
-
-       if (IS_CHAN_5GHZ(chan)) {
-               spurChansPtr = &(eep->modalHeader5G.spurChans[0]);
-               mode = 0;
-       }
-       else {
-               spurChansPtr = &(eep->modalHeader2G.spurChans[0]);
-               mode = 1;
-       }
 
-       if (spurChansPtr[0] == 0)
+       if (spur_fbin_ptr[0] == 0)
                return; /* No spur in the mode */
 
        if (IS_CHAN_HT40(chan)) {
@@ -554,16 +543,18 @@ static void ar9003_hw_spur_mitigate_ofdm(struct ath_hw *ah,
 
        ar9003_hw_spur_ofdm_clear(ah);
 
-       for (i = 0; i < AR_EEPROM_MODAL_SPURS && spurChansPtr[i]; i++) {
-               freq_offset = ath9k_hw_fbin2freq(spurChansPtr[i], mode);
+       for (i = 0; i < AR_EEPROM_MODAL_SPURS && spur_fbin_ptr[i]; i++) {
+               freq_offset = ath9k_hw_fbin2freq(spur_fbin_ptr[i],
+                                                IS_CHAN_2GHZ(chan));
                freq_offset -= synth_freq;
                if (abs(freq_offset) < range) {
                        ar9003_hw_spur_ofdm_work(ah, chan, freq_offset,
                                                 range, synth_freq);
 
                        if (AR_SREV_9565(ah) && (i < 4)) {
-                               freq_offset = ath9k_hw_fbin2freq(spurChansPtr[i + 1],
-                                                                mode);
+                               freq_offset =
+                                       ath9k_hw_fbin2freq(spur_fbin_ptr[i + 1],
+                                                          IS_CHAN_2GHZ(chan));
                                freq_offset -= synth_freq;
                                if (abs(freq_offset) < range)
                                        ar9003_hw_spur_ofdm_9565(ah, freq_offset);