diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-09-19 23:51:04 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-09-20 01:52:38 -0400 |
commit | 1cce058b29e7eb8a71a72d8bb87eb7b4e0401c22 (patch) | |
tree | 493477b7a19606c66de2f003bca83672f2164cad /drivers/net/wireless | |
parent | c26afe9e8591f306d79aab8071f1d34e4f60b700 (diff) | |
parent | 9d037a777695993ec7437e5f451647dea7919d4c (diff) |
Merge remote-tracking branch 'origin/master' into next
(Merge in order to get the PCIe mps/mrss code fixes)
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9002_calib.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_phy.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlegacy/iwl-3945-rs.c | 13 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-ucode.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/core.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | 11 |
8 files changed, 34 insertions, 13 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c index 2d4c0910295b..2d394af82171 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c | |||
@@ -41,7 +41,8 @@ static bool ar9002_hw_is_cal_supported(struct ath_hw *ah, | |||
41 | case ADC_DC_CAL: | 41 | case ADC_DC_CAL: |
42 | /* Run ADC Gain Cal for non-CCK & non 2GHz-HT20 only */ | 42 | /* Run ADC Gain Cal for non-CCK & non 2GHz-HT20 only */ |
43 | if (!IS_CHAN_B(chan) && | 43 | if (!IS_CHAN_B(chan) && |
44 | !(IS_CHAN_2GHZ(chan) && IS_CHAN_HT20(chan))) | 44 | !((IS_CHAN_2GHZ(chan) || IS_CHAN_A_FAST_CLOCK(ah, chan)) && |
45 | IS_CHAN_HT20(chan))) | ||
45 | supported = true; | 46 | supported = true; |
46 | break; | 47 | break; |
47 | } | 48 | } |
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c index 1baca8e4715d..fcafec0605f4 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c | |||
@@ -671,7 +671,7 @@ static int ar9003_hw_process_ini(struct ath_hw *ah, | |||
671 | REG_WRITE_ARRAY(&ah->iniModesAdditional, | 671 | REG_WRITE_ARRAY(&ah->iniModesAdditional, |
672 | modesIndex, regWrites); | 672 | modesIndex, regWrites); |
673 | 673 | ||
674 | if (AR_SREV_9300(ah)) | 674 | if (AR_SREV_9330(ah)) |
675 | REG_WRITE_ARRAY(&ah->iniModesAdditional, 1, regWrites); | 675 | REG_WRITE_ARRAY(&ah->iniModesAdditional, 1, regWrites); |
676 | 676 | ||
677 | if (AR_SREV_9340(ah) && !ah->is_clk_25mhz) | 677 | if (AR_SREV_9340(ah) && !ah->is_clk_25mhz) |
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 6530694a59ae..722967b86cf1 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -2303,6 +2303,12 @@ static void ath9k_flush(struct ieee80211_hw *hw, bool drop) | |||
2303 | mutex_lock(&sc->mutex); | 2303 | mutex_lock(&sc->mutex); |
2304 | cancel_delayed_work_sync(&sc->tx_complete_work); | 2304 | cancel_delayed_work_sync(&sc->tx_complete_work); |
2305 | 2305 | ||
2306 | if (ah->ah_flags & AH_UNPLUGGED) { | ||
2307 | ath_dbg(common, ATH_DBG_ANY, "Device has been unplugged!\n"); | ||
2308 | mutex_unlock(&sc->mutex); | ||
2309 | return; | ||
2310 | } | ||
2311 | |||
2306 | if (sc->sc_flags & SC_OP_INVALID) { | 2312 | if (sc->sc_flags & SC_OP_INVALID) { |
2307 | ath_dbg(common, ATH_DBG_ANY, "Device not present\n"); | 2313 | ath_dbg(common, ATH_DBG_ANY, "Device not present\n"); |
2308 | mutex_unlock(&sc->mutex); | 2314 | mutex_unlock(&sc->mutex); |
diff --git a/drivers/net/wireless/iwlegacy/iwl-3945-rs.c b/drivers/net/wireless/iwlegacy/iwl-3945-rs.c index 977bd2477c6a..164bcae821f8 100644 --- a/drivers/net/wireless/iwlegacy/iwl-3945-rs.c +++ b/drivers/net/wireless/iwlegacy/iwl-3945-rs.c | |||
@@ -822,12 +822,15 @@ static void iwl3945_rs_get_rate(void *priv_r, struct ieee80211_sta *sta, | |||
822 | 822 | ||
823 | out: | 823 | out: |
824 | 824 | ||
825 | rs_sta->last_txrate_idx = index; | 825 | if (sband->band == IEEE80211_BAND_5GHZ) { |
826 | if (sband->band == IEEE80211_BAND_5GHZ) | 826 | if (WARN_ON_ONCE(index < IWL_FIRST_OFDM_RATE)) |
827 | info->control.rates[0].idx = rs_sta->last_txrate_idx - | 827 | index = IWL_FIRST_OFDM_RATE; |
828 | IWL_FIRST_OFDM_RATE; | 828 | rs_sta->last_txrate_idx = index; |
829 | else | 829 | info->control.rates[0].idx = index - IWL_FIRST_OFDM_RATE; |
830 | } else { | ||
831 | rs_sta->last_txrate_idx = index; | ||
830 | info->control.rates[0].idx = rs_sta->last_txrate_idx; | 832 | info->control.rates[0].idx = rs_sta->last_txrate_idx; |
833 | } | ||
831 | 834 | ||
832 | IWL_DEBUG_RATE(priv, "leave: %d\n", index); | 835 | IWL_DEBUG_RATE(priv, "leave: %d\n", index); |
833 | } | 836 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c b/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c index a895a099d086..56211006a182 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c | |||
@@ -167,7 +167,7 @@ static int iwlagn_set_temperature_offset_calib(struct iwl_priv *priv) | |||
167 | 167 | ||
168 | memset(&cmd, 0, sizeof(cmd)); | 168 | memset(&cmd, 0, sizeof(cmd)); |
169 | iwl_set_calib_hdr(&cmd.hdr, IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD); | 169 | iwl_set_calib_hdr(&cmd.hdr, IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD); |
170 | memcpy(&cmd.radio_sensor_offset, offset_calib, sizeof(offset_calib)); | 170 | memcpy(&cmd.radio_sensor_offset, offset_calib, sizeof(*offset_calib)); |
171 | if (!(cmd.radio_sensor_offset)) | 171 | if (!(cmd.radio_sensor_offset)) |
172 | cmd.radio_sensor_offset = DEFAULT_RADIO_SENSOR_OFFSET; | 172 | cmd.radio_sensor_offset = DEFAULT_RADIO_SENSOR_OFFSET; |
173 | 173 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c index a6b2b1db0b1d..222d410c586e 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c | |||
@@ -771,6 +771,8 @@ void iwl_tx_cmd_complete(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb) | |||
771 | cmd = txq->cmd[cmd_index]; | 771 | cmd = txq->cmd[cmd_index]; |
772 | meta = &txq->meta[cmd_index]; | 772 | meta = &txq->meta[cmd_index]; |
773 | 773 | ||
774 | txq->time_stamp = jiffies; | ||
775 | |||
774 | iwlagn_unmap_tfd(priv, meta, &txq->tfds[index], DMA_BIDIRECTIONAL); | 776 | iwlagn_unmap_tfd(priv, meta, &txq->tfds[index], DMA_BIDIRECTIONAL); |
775 | 777 | ||
776 | /* Input error checking is done when commands are added to queue. */ | 778 | /* Input error checking is done when commands are added to queue. */ |
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c index 1bdc1aa305c0..04c4e9eb6ee6 100644 --- a/drivers/net/wireless/rtlwifi/core.c +++ b/drivers/net/wireless/rtlwifi/core.c | |||
@@ -610,6 +610,11 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw, | |||
610 | 610 | ||
611 | mac->link_state = MAC80211_NOLINK; | 611 | mac->link_state = MAC80211_NOLINK; |
612 | memset(mac->bssid, 0, 6); | 612 | memset(mac->bssid, 0, 6); |
613 | |||
614 | /* reset sec info */ | ||
615 | rtl_cam_reset_sec_info(hw); | ||
616 | |||
617 | rtl_cam_reset_all_entry(hw); | ||
613 | mac->vendor = PEER_UNKNOWN; | 618 | mac->vendor = PEER_UNKNOWN; |
614 | 619 | ||
615 | RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG, | 620 | 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, | |||
1063 | *or clear all entry here. | 1068 | *or clear all entry here. |
1064 | */ | 1069 | */ |
1065 | rtl_cam_delete_one_entry(hw, mac_addr, key_idx); | 1070 | rtl_cam_delete_one_entry(hw, mac_addr, key_idx); |
1071 | |||
1072 | rtl_cam_reset_sec_info(hw); | ||
1073 | |||
1066 | break; | 1074 | break; |
1067 | default: | 1075 | default: |
1068 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, | 1076 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c index 906e7aa55bc3..3e52a5496224 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | |||
@@ -549,15 +549,16 @@ void rtl92cu_tx_fill_desc(struct ieee80211_hw *hw, | |||
549 | (tcb_desc->rts_use_shortpreamble ? 1 : 0) | 549 | (tcb_desc->rts_use_shortpreamble ? 1 : 0) |
550 | : (tcb_desc->rts_use_shortgi ? 1 : 0))); | 550 | : (tcb_desc->rts_use_shortgi ? 1 : 0))); |
551 | if (mac->bw_40) { | 551 | if (mac->bw_40) { |
552 | if (tcb_desc->packet_bw) { | 552 | if (rate_flag & IEEE80211_TX_RC_DUP_DATA) { |
553 | SET_TX_DESC_DATA_BW(txdesc, 1); | 553 | SET_TX_DESC_DATA_BW(txdesc, 1); |
554 | SET_TX_DESC_DATA_SC(txdesc, 3); | 554 | SET_TX_DESC_DATA_SC(txdesc, 3); |
555 | } else if(rate_flag & IEEE80211_TX_RC_40_MHZ_WIDTH){ | ||
556 | SET_TX_DESC_DATA_BW(txdesc, 1); | ||
557 | SET_TX_DESC_DATA_SC(txdesc, mac->cur_40_prime_sc); | ||
555 | } else { | 558 | } else { |
556 | SET_TX_DESC_DATA_BW(txdesc, 0); | 559 | SET_TX_DESC_DATA_BW(txdesc, 0); |
557 | if (rate_flag & IEEE80211_TX_RC_DUP_DATA) | 560 | SET_TX_DESC_DATA_SC(txdesc, 0); |
558 | SET_TX_DESC_DATA_SC(txdesc, | 561 | } |
559 | mac->cur_40_prime_sc); | ||
560 | } | ||
561 | } else { | 562 | } else { |
562 | SET_TX_DESC_DATA_BW(txdesc, 0); | 563 | SET_TX_DESC_DATA_BW(txdesc, 0); |
563 | SET_TX_DESC_DATA_SC(txdesc, 0); | 564 | SET_TX_DESC_DATA_SC(txdesc, 0); |