Merge branch 'master' of git://git.infradead.org/users/linville/wireless into for-davem
This commit is contained in:
Коммит
8ea9ac0a47
|
@ -41,7 +41,8 @@ static bool ar9002_hw_is_cal_supported(struct ath_hw *ah,
|
|||
case ADC_DC_CAL:
|
||||
/* Run ADC Gain Cal for non-CCK & non 2GHz-HT20 only */
|
||||
if (!IS_CHAN_B(chan) &&
|
||||
!(IS_CHAN_2GHZ(chan) && IS_CHAN_HT20(chan)))
|
||||
!((IS_CHAN_2GHZ(chan) || IS_CHAN_A_FAST_CLOCK(ah, chan)) &&
|
||||
IS_CHAN_HT20(chan)))
|
||||
supported = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -671,7 +671,7 @@ static int ar9003_hw_process_ini(struct ath_hw *ah,
|
|||
REG_WRITE_ARRAY(&ah->iniModesAdditional,
|
||||
modesIndex, regWrites);
|
||||
|
||||
if (AR_SREV_9300(ah))
|
||||
if (AR_SREV_9330(ah))
|
||||
REG_WRITE_ARRAY(&ah->iniModesAdditional, 1, regWrites);
|
||||
|
||||
if (AR_SREV_9340(ah) && !ah->is_clk_25mhz)
|
||||
|
|
|
@ -2303,6 +2303,12 @@ static void ath9k_flush(struct ieee80211_hw *hw, bool drop)
|
|||
mutex_lock(&sc->mutex);
|
||||
cancel_delayed_work_sync(&sc->tx_complete_work);
|
||||
|
||||
if (ah->ah_flags & AH_UNPLUGGED) {
|
||||
ath_dbg(common, ATH_DBG_ANY, "Device has been unplugged!\n");
|
||||
mutex_unlock(&sc->mutex);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sc->sc_flags & SC_OP_INVALID) {
|
||||
ath_dbg(common, ATH_DBG_ANY, "Device not present\n");
|
||||
mutex_unlock(&sc->mutex);
|
||||
|
|
|
@ -822,12 +822,15 @@ static void iwl3945_rs_get_rate(void *priv_r, struct ieee80211_sta *sta,
|
|||
|
||||
out:
|
||||
|
||||
rs_sta->last_txrate_idx = index;
|
||||
if (sband->band == IEEE80211_BAND_5GHZ)
|
||||
info->control.rates[0].idx = rs_sta->last_txrate_idx -
|
||||
IWL_FIRST_OFDM_RATE;
|
||||
else
|
||||
if (sband->band == IEEE80211_BAND_5GHZ) {
|
||||
if (WARN_ON_ONCE(index < IWL_FIRST_OFDM_RATE))
|
||||
index = IWL_FIRST_OFDM_RATE;
|
||||
rs_sta->last_txrate_idx = index;
|
||||
info->control.rates[0].idx = index - IWL_FIRST_OFDM_RATE;
|
||||
} else {
|
||||
rs_sta->last_txrate_idx = index;
|
||||
info->control.rates[0].idx = rs_sta->last_txrate_idx;
|
||||
}
|
||||
|
||||
IWL_DEBUG_RATE(priv, "leave: %d\n", index);
|
||||
}
|
||||
|
|
|
@ -167,7 +167,7 @@ static int iwlagn_set_temperature_offset_calib(struct iwl_priv *priv)
|
|||
|
||||
memset(&cmd, 0, sizeof(cmd));
|
||||
iwl_set_calib_hdr(&cmd.hdr, IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD);
|
||||
memcpy(&cmd.radio_sensor_offset, offset_calib, sizeof(offset_calib));
|
||||
memcpy(&cmd.radio_sensor_offset, offset_calib, sizeof(*offset_calib));
|
||||
if (!(cmd.radio_sensor_offset))
|
||||
cmd.radio_sensor_offset = DEFAULT_RADIO_SENSOR_OFFSET;
|
||||
|
||||
|
|
|
@ -771,6 +771,8 @@ void iwl_tx_cmd_complete(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb)
|
|||
cmd = txq->cmd[cmd_index];
|
||||
meta = &txq->meta[cmd_index];
|
||||
|
||||
txq->time_stamp = jiffies;
|
||||
|
||||
iwlagn_unmap_tfd(priv, meta, &txq->tfds[index], DMA_BIDIRECTIONAL);
|
||||
|
||||
/* Input error checking is done when commands are added to queue. */
|
||||
|
|
|
@ -610,6 +610,11 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
|
|||
|
||||
mac->link_state = MAC80211_NOLINK;
|
||||
memset(mac->bssid, 0, 6);
|
||||
|
||||
/* reset sec info */
|
||||
rtl_cam_reset_sec_info(hw);
|
||||
|
||||
rtl_cam_reset_all_entry(hw);
|
||||
mac->vendor = PEER_UNKNOWN;
|
||||
|
||||
RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
|
||||
|
@ -1063,6 +1068,9 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
|
|||
*or clear all entry here.
|
||||
*/
|
||||
rtl_cam_delete_one_entry(hw, mac_addr, key_idx);
|
||||
|
||||
rtl_cam_reset_sec_info(hw);
|
||||
|
||||
break;
|
||||
default:
|
||||
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
|
||||
|
|
|
@ -549,15 +549,16 @@ void rtl92cu_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
(tcb_desc->rts_use_shortpreamble ? 1 : 0)
|
||||
: (tcb_desc->rts_use_shortgi ? 1 : 0)));
|
||||
if (mac->bw_40) {
|
||||
if (tcb_desc->packet_bw) {
|
||||
if (rate_flag & IEEE80211_TX_RC_DUP_DATA) {
|
||||
SET_TX_DESC_DATA_BW(txdesc, 1);
|
||||
SET_TX_DESC_DATA_SC(txdesc, 3);
|
||||
} else if(rate_flag & IEEE80211_TX_RC_40_MHZ_WIDTH){
|
||||
SET_TX_DESC_DATA_BW(txdesc, 1);
|
||||
SET_TX_DESC_DATA_SC(txdesc, mac->cur_40_prime_sc);
|
||||
} else {
|
||||
SET_TX_DESC_DATA_BW(txdesc, 0);
|
||||
if (rate_flag & IEEE80211_TX_RC_DUP_DATA)
|
||||
SET_TX_DESC_DATA_SC(txdesc,
|
||||
mac->cur_40_prime_sc);
|
||||
}
|
||||
SET_TX_DESC_DATA_SC(txdesc, 0);
|
||||
}
|
||||
} else {
|
||||
SET_TX_DESC_DATA_BW(txdesc, 0);
|
||||
SET_TX_DESC_DATA_SC(txdesc, 0);
|
||||
|
|
|
@ -665,7 +665,7 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
|
|||
BUG_ON(!sdata->bss);
|
||||
|
||||
atomic_dec(&sdata->bss->num_sta_ps);
|
||||
__sta_info_clear_tim_bit(sdata->bss, sta);
|
||||
sta_info_clear_tim_bit(sta);
|
||||
}
|
||||
|
||||
local->num_sta--;
|
||||
|
|
Загрузка…
Ссылка в новой задаче