diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-1000.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 2 |
3 files changed, 16 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c index 3c983e426f25..94521d4417a2 100644 --- a/drivers/net/wireless/iwlwifi/iwl-1000.c +++ b/drivers/net/wireless/iwlwifi/iwl-1000.c | |||
@@ -147,7 +147,11 @@ static int iwl1000_hw_set_hw_params(struct iwl_priv *priv) | |||
147 | priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; | 147 | priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; |
148 | 148 | ||
149 | priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant); | 149 | priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant); |
150 | priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant); | 150 | if (priv->cfg->rx_with_siso_diversity) |
151 | priv->hw_params.rx_chains_num = 1; | ||
152 | else | ||
153 | priv->hw_params.rx_chains_num = | ||
154 | num_of_ant(priv->cfg->valid_rx_ant); | ||
151 | priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant; | 155 | priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant; |
152 | priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant; | 156 | priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant; |
153 | 157 | ||
@@ -311,6 +315,7 @@ struct iwl_cfg iwl100_bgn_cfg = { | |||
311 | .base_params = &iwl1000_base_params, | 315 | .base_params = &iwl1000_base_params, |
312 | .ht_params = &iwl1000_ht_params, | 316 | .ht_params = &iwl1000_ht_params, |
313 | .led_mode = IWL_LED_RF_STATE, | 317 | .led_mode = IWL_LED_RF_STATE, |
318 | .rx_with_siso_diversity = true, | ||
314 | }; | 319 | }; |
315 | 320 | ||
316 | struct iwl_cfg iwl100_bg_cfg = { | 321 | struct iwl_cfg iwl100_bg_cfg = { |
@@ -324,6 +329,7 @@ struct iwl_cfg iwl100_bg_cfg = { | |||
324 | .mod_params = &iwlagn_mod_params, | 329 | .mod_params = &iwlagn_mod_params, |
325 | .base_params = &iwl1000_base_params, | 330 | .base_params = &iwl1000_base_params, |
326 | .led_mode = IWL_LED_RF_STATE, | 331 | .led_mode = IWL_LED_RF_STATE, |
332 | .rx_with_siso_diversity = true, | ||
327 | }; | 333 | }; |
328 | 334 | ||
329 | MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX)); | 335 | MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX)); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index 10a536969eb6..8a789241704f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -182,7 +182,11 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv) | |||
182 | priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; | 182 | priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; |
183 | 183 | ||
184 | priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant); | 184 | priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant); |
185 | priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant); | 185 | if (priv->cfg->rx_with_siso_diversity) |
186 | priv->hw_params.rx_chains_num = 1; | ||
187 | else | ||
188 | priv->hw_params.rx_chains_num = | ||
189 | num_of_ant(priv->cfg->valid_rx_ant); | ||
186 | priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant; | 190 | priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant; |
187 | priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant; | 191 | priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant; |
188 | 192 | ||
@@ -841,6 +845,7 @@ struct iwl_cfg iwl130_bgn_cfg = { | |||
841 | .adv_pm = true, | 845 | .adv_pm = true, |
842 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 846 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
843 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 847 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
848 | .rx_with_siso_diversity = true, | ||
844 | }; | 849 | }; |
845 | 850 | ||
846 | struct iwl_cfg iwl130_bg_cfg = { | 851 | struct iwl_cfg iwl130_bg_cfg = { |
@@ -859,6 +864,7 @@ struct iwl_cfg iwl130_bg_cfg = { | |||
859 | .adv_pm = true, | 864 | .adv_pm = true, |
860 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 865 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
861 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 866 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
867 | .rx_with_siso_diversity = true, | ||
862 | }; | 868 | }; |
863 | 869 | ||
864 | MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); | 870 | MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h index 568920ac982d..d0b86f5e28c2 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h | |||
@@ -364,6 +364,7 @@ struct iwl_ht_params { | |||
364 | * @scan_antennas: available antenna for scan operation | 364 | * @scan_antennas: available antenna for scan operation |
365 | * @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off) | 365 | * @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off) |
366 | * @adv_pm: advance power management | 366 | * @adv_pm: advance power management |
367 | * @rx_with_siso_diversity: 1x1 device with rx antenna diversity | ||
367 | * | 368 | * |
368 | * We enable the driver to be backward compatible wrt API version. The | 369 | * We enable the driver to be backward compatible wrt API version. The |
369 | * driver specifies which APIs it supports (with @ucode_api_max being the | 370 | * driver specifies which APIs it supports (with @ucode_api_max being the |
@@ -412,6 +413,7 @@ struct iwl_cfg { | |||
412 | u8 scan_tx_antennas[IEEE80211_NUM_BANDS]; | 413 | u8 scan_tx_antennas[IEEE80211_NUM_BANDS]; |
413 | enum iwl_led_mode led_mode; | 414 | enum iwl_led_mode led_mode; |
414 | const bool adv_pm; | 415 | const bool adv_pm; |
416 | const bool rx_with_siso_diversity; | ||
415 | }; | 417 | }; |
416 | 418 | ||
417 | /*************************** | 419 | /*************************** |