Loading drivers/net/wireless/ath/ath9k/ar5008_phy.c +1 −24 Original line number Diff line number Diff line Loading @@ -489,8 +489,6 @@ static int ar5008_hw_rf_alloc_ext_banks(struct ath_hw *ah) ATH_ALLOC_BANK(ah->analogBank6Data, ah->iniBank6.ia_rows); ATH_ALLOC_BANK(ah->analogBank6TPCData, ah->iniBank6TPC.ia_rows); ATH_ALLOC_BANK(ah->analogBank7Data, ah->iniBank7.ia_rows); ATH_ALLOC_BANK(ah->addac5416_21, ah->iniAddac.ia_rows * ah->iniAddac.ia_columns); ATH_ALLOC_BANK(ah->bank6Temp, ah->iniBank6.ia_rows); return 0; Loading Loading @@ -519,7 +517,6 @@ static void ar5008_hw_rf_free_ext_banks(struct ath_hw *ah) ATH_FREE_BANK(ah->analogBank6Data); ATH_FREE_BANK(ah->analogBank6TPCData); ATH_FREE_BANK(ah->analogBank7Data); ATH_FREE_BANK(ah->addac5416_21); ATH_FREE_BANK(ah->bank6Temp); #undef ATH_FREE_BANK Loading Loading @@ -805,27 +802,7 @@ static int ar5008_hw_process_ini(struct ath_hw *ah, if (ah->eep_ops->set_addac) ah->eep_ops->set_addac(ah, chan); if (AR_SREV_5416_22_OR_LATER(ah)) { REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites); } else { struct ar5416IniArray temp; u32 addacSize = sizeof(u32) * ah->iniAddac.ia_rows * ah->iniAddac.ia_columns; /* For AR5416 2.0/2.1 */ memcpy(ah->addac5416_21, ah->iniAddac.ia_array, addacSize); /* override CLKDRV value at [row, column] = [31, 1] */ (ah->addac5416_21)[31 * ah->iniAddac.ia_columns + 1] = 0; temp.ia_array = ah->addac5416_21; temp.ia_columns = ah->iniAddac.ia_columns; temp.ia_rows = ah->iniAddac.ia_rows; REG_WRITE_ARRAY(&temp, 1, regWrites); } REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_INTERNAL_ADDAC); ENABLE_REGWRITE_BUFFER(ah); Loading drivers/net/wireless/ath/ath9k/ar9002_hw.c +19 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,25 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah) INIT_INI_ARRAY(&ah->iniBank6TPC, ar5416Bank6TPC_9100, ARRAY_SIZE(ar5416Bank6TPC_9100), 3); } /* iniAddac needs to be modified for these chips */ if (AR_SREV_9160(ah) || !AR_SREV_5416_22_OR_LATER(ah)) { struct ar5416IniArray *addac = &ah->iniAddac; u32 size = sizeof(u32) * addac->ia_rows * addac->ia_columns; u32 *data; data = kmalloc(size, GFP_KERNEL); if (!data) return; memcpy(data, addac->ia_array, size); addac->ia_array = data; if (!AR_SREV_5416_22_OR_LATER(ah)) { /* override CLKDRV value */ INI_RA(addac, 31,1) = 0; } } } /* Support for Japan ch.14 (2484) spread */ Loading drivers/net/wireless/ath/ath9k/hw.h +0 −1 Original line number Diff line number Diff line Loading @@ -781,7 +781,6 @@ struct ath_hw { u32 *analogBank6Data; u32 *analogBank6TPCData; u32 *analogBank7Data; u32 *addac5416_21; u32 *bank6Temp; u8 txpower_limit; Loading drivers/net/wireless/ath/carl9170/tx.c +6 −3 Original line number Diff line number Diff line Loading @@ -1236,6 +1236,7 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) { struct ieee80211_sta *sta; struct carl9170_sta_info *sta_info; struct ieee80211_tx_info *tx_info; rcu_read_lock(); sta = __carl9170_get_tx_sta(ar, skb); Loading @@ -1243,16 +1244,18 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) goto out_rcu; sta_info = (void *) sta->drv_priv; if (unlikely(sta_info->sleeping)) { struct ieee80211_tx_info *tx_info; tx_info = IEEE80211_SKB_CB(skb); if (unlikely(sta_info->sleeping) && !(tx_info->flags & (IEEE80211_TX_CTL_POLL_RESPONSE | IEEE80211_TX_CTL_CLEAR_PS_FILT))) { rcu_read_unlock(); tx_info = IEEE80211_SKB_CB(skb); if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) atomic_dec(&ar->tx_ampdu_upload); tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; carl9170_release_dev_space(ar, skb); carl9170_tx_status(ar, skb, false); return true; } Loading drivers/net/wireless/brcm80211/brcmsmac/ampdu.c +3 −3 Original line number Diff line number Diff line Loading @@ -1070,9 +1070,9 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, IEEE80211_TX_STAT_AMPDU_NO_BACK; skb_pull(p, D11_PHY_HDR_LEN); skb_pull(p, D11_TXH_LEN); wiphy_err(wiphy, "%s: BA Timeout, seq %d, in_" "transit %d\n", "AMPDU status", seq, ini->tx_in_transit); BCMMSG(wiphy, "BA Timeout, seq %d, in_transit %d\n", seq, ini->tx_in_transit); ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw, p); } Loading Loading
drivers/net/wireless/ath/ath9k/ar5008_phy.c +1 −24 Original line number Diff line number Diff line Loading @@ -489,8 +489,6 @@ static int ar5008_hw_rf_alloc_ext_banks(struct ath_hw *ah) ATH_ALLOC_BANK(ah->analogBank6Data, ah->iniBank6.ia_rows); ATH_ALLOC_BANK(ah->analogBank6TPCData, ah->iniBank6TPC.ia_rows); ATH_ALLOC_BANK(ah->analogBank7Data, ah->iniBank7.ia_rows); ATH_ALLOC_BANK(ah->addac5416_21, ah->iniAddac.ia_rows * ah->iniAddac.ia_columns); ATH_ALLOC_BANK(ah->bank6Temp, ah->iniBank6.ia_rows); return 0; Loading Loading @@ -519,7 +517,6 @@ static void ar5008_hw_rf_free_ext_banks(struct ath_hw *ah) ATH_FREE_BANK(ah->analogBank6Data); ATH_FREE_BANK(ah->analogBank6TPCData); ATH_FREE_BANK(ah->analogBank7Data); ATH_FREE_BANK(ah->addac5416_21); ATH_FREE_BANK(ah->bank6Temp); #undef ATH_FREE_BANK Loading Loading @@ -805,27 +802,7 @@ static int ar5008_hw_process_ini(struct ath_hw *ah, if (ah->eep_ops->set_addac) ah->eep_ops->set_addac(ah, chan); if (AR_SREV_5416_22_OR_LATER(ah)) { REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites); } else { struct ar5416IniArray temp; u32 addacSize = sizeof(u32) * ah->iniAddac.ia_rows * ah->iniAddac.ia_columns; /* For AR5416 2.0/2.1 */ memcpy(ah->addac5416_21, ah->iniAddac.ia_array, addacSize); /* override CLKDRV value at [row, column] = [31, 1] */ (ah->addac5416_21)[31 * ah->iniAddac.ia_columns + 1] = 0; temp.ia_array = ah->addac5416_21; temp.ia_columns = ah->iniAddac.ia_columns; temp.ia_rows = ah->iniAddac.ia_rows; REG_WRITE_ARRAY(&temp, 1, regWrites); } REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_INTERNAL_ADDAC); ENABLE_REGWRITE_BUFFER(ah); Loading
drivers/net/wireless/ath/ath9k/ar9002_hw.c +19 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,25 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah) INIT_INI_ARRAY(&ah->iniBank6TPC, ar5416Bank6TPC_9100, ARRAY_SIZE(ar5416Bank6TPC_9100), 3); } /* iniAddac needs to be modified for these chips */ if (AR_SREV_9160(ah) || !AR_SREV_5416_22_OR_LATER(ah)) { struct ar5416IniArray *addac = &ah->iniAddac; u32 size = sizeof(u32) * addac->ia_rows * addac->ia_columns; u32 *data; data = kmalloc(size, GFP_KERNEL); if (!data) return; memcpy(data, addac->ia_array, size); addac->ia_array = data; if (!AR_SREV_5416_22_OR_LATER(ah)) { /* override CLKDRV value */ INI_RA(addac, 31,1) = 0; } } } /* Support for Japan ch.14 (2484) spread */ Loading
drivers/net/wireless/ath/ath9k/hw.h +0 −1 Original line number Diff line number Diff line Loading @@ -781,7 +781,6 @@ struct ath_hw { u32 *analogBank6Data; u32 *analogBank6TPCData; u32 *analogBank7Data; u32 *addac5416_21; u32 *bank6Temp; u8 txpower_limit; Loading
drivers/net/wireless/ath/carl9170/tx.c +6 −3 Original line number Diff line number Diff line Loading @@ -1236,6 +1236,7 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) { struct ieee80211_sta *sta; struct carl9170_sta_info *sta_info; struct ieee80211_tx_info *tx_info; rcu_read_lock(); sta = __carl9170_get_tx_sta(ar, skb); Loading @@ -1243,16 +1244,18 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) goto out_rcu; sta_info = (void *) sta->drv_priv; if (unlikely(sta_info->sleeping)) { struct ieee80211_tx_info *tx_info; tx_info = IEEE80211_SKB_CB(skb); if (unlikely(sta_info->sleeping) && !(tx_info->flags & (IEEE80211_TX_CTL_POLL_RESPONSE | IEEE80211_TX_CTL_CLEAR_PS_FILT))) { rcu_read_unlock(); tx_info = IEEE80211_SKB_CB(skb); if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) atomic_dec(&ar->tx_ampdu_upload); tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; carl9170_release_dev_space(ar, skb); carl9170_tx_status(ar, skb, false); return true; } Loading
drivers/net/wireless/brcm80211/brcmsmac/ampdu.c +3 −3 Original line number Diff line number Diff line Loading @@ -1070,9 +1070,9 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, IEEE80211_TX_STAT_AMPDU_NO_BACK; skb_pull(p, D11_PHY_HDR_LEN); skb_pull(p, D11_TXH_LEN); wiphy_err(wiphy, "%s: BA Timeout, seq %d, in_" "transit %d\n", "AMPDU status", seq, ini->tx_in_transit); BCMMSG(wiphy, "BA Timeout, seq %d, in_transit %d\n", seq, ini->tx_in_transit); ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw, p); } Loading