]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/wireless/ath9k/hw.c
ath9k: enable RX interrupt mitigation
[karo-tx-linux.git] / drivers / net / wireless / ath9k / hw.c
index 62e44a0ef996211a61255f16cd799e10860a4f49..84263c862ea4dc9375f839a070ae392f2cd4ec03 100644 (file)
@@ -345,7 +345,7 @@ static void ath9k_hw_set_defaults(struct ath_hal *ah)
                ah->ah_config.spurchans[i][1] = AR_NO_SPUR;
        }
 
-       ah->ah_config.intr_mitigation = 0;
+       ah->ah_config.intr_mitigation = 1;
 }
 
 static void ath9k_hw_override_ini(struct ath_hal *ah,
@@ -1291,7 +1291,6 @@ static int ath9k_hw_init_macaddr(struct ath_hal *ah)
        int i;
        u16 eeval;
        struct ath_hal_5416 *ahp = AH5416(ah);
-       DECLARE_MAC_BUF(mac);
 
        sum = 0;
        for (i = 0; i < 3; i++) {
@@ -1302,8 +1301,8 @@ static int ath9k_hw_init_macaddr(struct ath_hal *ah)
        }
        if (sum == 0 || sum == 0xffff * 3) {
                DPRINTF(ah->ah_sc, ATH_DBG_EEPROM,
-                        "%s: mac address read failed: %s\n", __func__,
-                        print_mac(mac, ahp->ah_macaddr));
+                        "%s: mac address read failed: %pM\n", __func__,
+                        ahp->ah_macaddr);
                return -EADDRNOTAVAIL;
        }
 
@@ -5867,7 +5866,6 @@ bool ath9k_hw_reset(struct ath_hal *ah,
                    bool bChannelChange,
                    int *status)
 {
-#define FAIL(_code)     do { ecode = _code; goto bad; } while (0)
        u32 saveLedState;
        struct ath_hal_5416 *ahp = AH5416(ah);
        struct ath9k_channel *curchan = ah->ah_curchan;
@@ -5889,11 +5887,14 @@ bool ath9k_hw_reset(struct ath_hal *ah,
                DPRINTF(ah->ah_sc, ATH_DBG_CHANNEL,
                         "%s: invalid channel %u/0x%x; no mapping\n",
                         __func__, chan->channel, chan->channelFlags);
-               FAIL(-EINVAL);
+               ecode = -EINVAL;
+               goto bad;
        }
 
-       if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE))
-               return false;
+       if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) {
+               ecode = -EIO;
+               goto bad;
+       }
 
        if (curchan)
                ath9k_hw_getnf(ah, curchan);
@@ -5930,7 +5931,8 @@ bool ath9k_hw_reset(struct ath_hal *ah,
        if (!ath9k_hw_chip_reset(ah, chan)) {
                DPRINTF(ah->ah_sc, ATH_DBG_RESET, "%s: chip reset failed\n",
                         __func__);
-               FAIL(-EIO);
+               ecode = -EINVAL;
+               goto bad;
        }
 
        if (AR_SREV_9280(ah)) {
@@ -5947,8 +5949,10 @@ bool ath9k_hw_reset(struct ath_hal *ah,
        }
 
        ecode = ath9k_hw_process_ini(ah, chan, macmode);
-       if (ecode != 0)
+       if (ecode != 0) {
+               ecode = -EINVAL;
                goto bad;
+       }
 
        if (IS_CHAN_OFDM(chan) || IS_CHAN_HT(chan))
                ath9k_hw_set_delta_slope(ah, chan);
@@ -5961,7 +5965,8 @@ bool ath9k_hw_reset(struct ath_hal *ah,
        if (!ath9k_hw_eeprom_set_board_values(ah, chan)) {
                DPRINTF(ah->ah_sc, ATH_DBG_EEPROM,
                         "%s: error setting board options\n", __func__);
-               FAIL(-EIO);
+               ecode = -EIO;
+               goto bad;
        }
 
        ath9k_hw_decrease_chain_power(ah, chan);
@@ -5989,11 +5994,15 @@ bool ath9k_hw_reset(struct ath_hal *ah,
        REG_WRITE(ah, AR_RSSI_THR, INIT_RSSI_THR);
 
        if (AR_SREV_9280_10_OR_LATER(ah)) {
-               if (!(ath9k_hw_ar9280_set_channel(ah, chan)))
-                       FAIL(-EIO);
+               if (!(ath9k_hw_ar9280_set_channel(ah, chan))) {
+                       ecode = -EIO;
+                       goto bad;
+               }
        } else {
-               if (!(ath9k_hw_set_channel(ah, chan)))
-                       FAIL(-EIO);
+               if (!(ath9k_hw_set_channel(ah, chan))) {
+                       ecode = -EIO;
+                       goto bad;
+               }
        }
 
        for (i = 0; i < AR_NUM_DCU; i++)
@@ -6027,8 +6036,10 @@ bool ath9k_hw_reset(struct ath_hal *ah,
 
        ath9k_hw_init_bb(ah, chan);
 
-       if (!ath9k_hw_init_cal(ah, chan))
-               FAIL(-ENODEV);
+       if (!ath9k_hw_init_cal(ah, chan)){
+               ecode = -EIO;;
+               goto bad;
+       }
 
        rx_chainmask = ahp->ah_rxchainmask;
        if ((rx_chainmask == 0x5) || (rx_chainmask == 0x3)) {
@@ -6064,7 +6075,6 @@ bad:
        if (status)
                *status = ecode;
        return false;
-#undef FAIL
 }
 
 bool ath9k_hw_phy_disable(struct ath_hal *ah)