Merge branch 'master' of git://git.infradead.org/users/linville/wireless into for-davem
This commit is contained in:
commit
8ea9ac0a47
|
@ -41,7 +41,8 @@ static bool ar9002_hw_is_cal_supported(struct ath_hw *ah,
|
||||||
case ADC_DC_CAL:
|
case ADC_DC_CAL:
|
||||||
/* Run ADC Gain Cal for non-CCK & non 2GHz-HT20 only */
|
/* Run ADC Gain Cal for non-CCK & non 2GHz-HT20 only */
|
||||||
if (!IS_CHAN_B(chan) &&
|
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;
|
supported = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -671,7 +671,7 @@ static int ar9003_hw_process_ini(struct ath_hw *ah,
|
||||||
REG_WRITE_ARRAY(&ah->iniModesAdditional,
|
REG_WRITE_ARRAY(&ah->iniModesAdditional,
|
||||||
modesIndex, regWrites);
|
modesIndex, regWrites);
|
||||||
|
|
||||||
if (AR_SREV_9300(ah))
|
if (AR_SREV_9330(ah))
|
||||||
REG_WRITE_ARRAY(&ah->iniModesAdditional, 1, regWrites);
|
REG_WRITE_ARRAY(&ah->iniModesAdditional, 1, regWrites);
|
||||||
|
|
||||||
if (AR_SREV_9340(ah) && !ah->is_clk_25mhz)
|
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);
|
mutex_lock(&sc->mutex);
|
||||||
cancel_delayed_work_sync(&sc->tx_complete_work);
|
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) {
|
if (sc->sc_flags & SC_OP_INVALID) {
|
||||||
ath_dbg(common, ATH_DBG_ANY, "Device not present\n");
|
ath_dbg(common, ATH_DBG_ANY, "Device not present\n");
|
||||||
mutex_unlock(&sc->mutex);
|
mutex_unlock(&sc->mutex);
|
||||||
|
|
|
@ -822,12 +822,15 @@ static void iwl3945_rs_get_rate(void *priv_r, struct ieee80211_sta *sta,
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
||||||
|
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;
|
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
|
|
||||||
info->control.rates[0].idx = rs_sta->last_txrate_idx;
|
info->control.rates[0].idx = rs_sta->last_txrate_idx;
|
||||||
|
}
|
||||||
|
|
||||||
IWL_DEBUG_RATE(priv, "leave: %d\n", index);
|
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));
|
memset(&cmd, 0, sizeof(cmd));
|
||||||
iwl_set_calib_hdr(&cmd.hdr, IWL_PHY_CALIBRATE_TEMP_OFFSET_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))
|
if (!(cmd.radio_sensor_offset))
|
||||||
cmd.radio_sensor_offset = DEFAULT_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];
|
cmd = txq->cmd[cmd_index];
|
||||||
meta = &txq->meta[cmd_index];
|
meta = &txq->meta[cmd_index];
|
||||||
|
|
||||||
|
txq->time_stamp = jiffies;
|
||||||
|
|
||||||
iwlagn_unmap_tfd(priv, meta, &txq->tfds[index], DMA_BIDIRECTIONAL);
|
iwlagn_unmap_tfd(priv, meta, &txq->tfds[index], DMA_BIDIRECTIONAL);
|
||||||
|
|
||||||
/* Input error checking is done when commands are added to queue. */
|
/* 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;
|
mac->link_state = MAC80211_NOLINK;
|
||||||
memset(mac->bssid, 0, 6);
|
memset(mac->bssid, 0, 6);
|
||||||
|
|
||||||
|
/* reset sec info */
|
||||||
|
rtl_cam_reset_sec_info(hw);
|
||||||
|
|
||||||
|
rtl_cam_reset_all_entry(hw);
|
||||||
mac->vendor = PEER_UNKNOWN;
|
mac->vendor = PEER_UNKNOWN;
|
||||||
|
|
||||||
RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
|
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.
|
*or clear all entry here.
|
||||||
*/
|
*/
|
||||||
rtl_cam_delete_one_entry(hw, mac_addr, key_idx);
|
rtl_cam_delete_one_entry(hw, mac_addr, key_idx);
|
||||||
|
|
||||||
|
rtl_cam_reset_sec_info(hw);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
|
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
|
||||||
|
|
|
@ -549,14 +549,15 @@ void rtl92cu_tx_fill_desc(struct ieee80211_hw *hw,
|
||||||
(tcb_desc->rts_use_shortpreamble ? 1 : 0)
|
(tcb_desc->rts_use_shortpreamble ? 1 : 0)
|
||||||
: (tcb_desc->rts_use_shortgi ? 1 : 0)));
|
: (tcb_desc->rts_use_shortgi ? 1 : 0)));
|
||||||
if (mac->bw_40) {
|
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_BW(txdesc, 1);
|
||||||
SET_TX_DESC_DATA_SC(txdesc, 3);
|
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 {
|
} else {
|
||||||
SET_TX_DESC_DATA_BW(txdesc, 0);
|
SET_TX_DESC_DATA_BW(txdesc, 0);
|
||||||
if (rate_flag & IEEE80211_TX_RC_DUP_DATA)
|
SET_TX_DESC_DATA_SC(txdesc, 0);
|
||||||
SET_TX_DESC_DATA_SC(txdesc,
|
|
||||||
mac->cur_40_prime_sc);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SET_TX_DESC_DATA_BW(txdesc, 0);
|
SET_TX_DESC_DATA_BW(txdesc, 0);
|
||||||
|
|
|
@ -665,7 +665,7 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
|
||||||
BUG_ON(!sdata->bss);
|
BUG_ON(!sdata->bss);
|
||||||
|
|
||||||
atomic_dec(&sdata->bss->num_sta_ps);
|
atomic_dec(&sdata->bss->num_sta_ps);
|
||||||
__sta_info_clear_tim_bit(sdata->bss, sta);
|
sta_info_clear_tim_bit(sta);
|
||||||
}
|
}
|
||||||
|
|
||||||
local->num_sta--;
|
local->num_sta--;
|
||||||
|
|
Loading…
Reference in a new issue