|
@@ -449,13 +449,8 @@ static void iwlcore_init_ht_hw_capab(const struct iwl_priv *priv,
|
|
|
if (priv->cfg->ht_greenfield_support)
|
|
|
ht_info->cap |= IEEE80211_HT_CAP_GRN_FLD;
|
|
|
ht_info->cap |= IEEE80211_HT_CAP_SGI_20;
|
|
|
- if (priv->cfg->support_sm_ps)
|
|
|
- ht_info->cap |= (IEEE80211_HT_CAP_SM_PS &
|
|
|
- (WLAN_HT_CAP_SM_PS_DYNAMIC << 2));
|
|
|
- else
|
|
|
- ht_info->cap |= (IEEE80211_HT_CAP_SM_PS &
|
|
|
- (WLAN_HT_CAP_SM_PS_DISABLED << 2));
|
|
|
-
|
|
|
+ ht_info->cap |= (IEEE80211_HT_CAP_SM_PS &
|
|
|
+ (priv->cfg->sm_ps_mode << 2));
|
|
|
max_bit_rate = MAX_BIT_RATE_20_MHZ;
|
|
|
if (priv->hw_params.ht40_channel & BIT(band)) {
|
|
|
ht_info->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40;
|
|
@@ -1010,25 +1005,23 @@ static int iwl_get_idle_rx_chain_count(struct iwl_priv *priv, int active_cnt)
|
|
|
int idle_cnt = active_cnt;
|
|
|
bool is_cam = !test_bit(STATUS_POWER_PMI, &priv->status);
|
|
|
|
|
|
- if (priv->cfg->support_sm_ps) {
|
|
|
- /* # Rx chains when idling and maybe trying to save power */
|
|
|
- switch (priv->current_ht_config.sm_ps) {
|
|
|
- case WLAN_HT_CAP_SM_PS_STATIC:
|
|
|
- case WLAN_HT_CAP_SM_PS_DYNAMIC:
|
|
|
- idle_cnt = (is_cam) ? IWL_NUM_IDLE_CHAINS_DUAL :
|
|
|
- IWL_NUM_IDLE_CHAINS_SINGLE;
|
|
|
- break;
|
|
|
- case WLAN_HT_CAP_SM_PS_DISABLED:
|
|
|
- idle_cnt = (is_cam) ? active_cnt :
|
|
|
- IWL_NUM_IDLE_CHAINS_SINGLE;
|
|
|
- break;
|
|
|
- case WLAN_HT_CAP_SM_PS_INVALID:
|
|
|
- default:
|
|
|
- IWL_ERR(priv, "invalid sm_ps mode %d\n",
|
|
|
- priv->current_ht_config.sm_ps);
|
|
|
- WARN_ON(1);
|
|
|
- break;
|
|
|
- }
|
|
|
+ /* # Rx chains when idling and maybe trying to save power */
|
|
|
+ switch (priv->cfg->sm_ps_mode) {
|
|
|
+ case WLAN_HT_CAP_SM_PS_STATIC:
|
|
|
+ idle_cnt = (is_cam) ? active_cnt : IWL_NUM_IDLE_CHAINS_SINGLE;
|
|
|
+ break;
|
|
|
+ case WLAN_HT_CAP_SM_PS_DYNAMIC:
|
|
|
+ idle_cnt = (is_cam) ? IWL_NUM_IDLE_CHAINS_DUAL :
|
|
|
+ IWL_NUM_IDLE_CHAINS_SINGLE;
|
|
|
+ break;
|
|
|
+ case WLAN_HT_CAP_SM_PS_DISABLED:
|
|
|
+ break;
|
|
|
+ case WLAN_HT_CAP_SM_PS_INVALID:
|
|
|
+ default:
|
|
|
+ IWL_ERR(priv, "invalid sm_ps mode %u\n",
|
|
|
+ priv->cfg->sm_ps_mode);
|
|
|
+ WARN_ON(1);
|
|
|
+ break;
|
|
|
}
|
|
|
return idle_cnt;
|
|
|
}
|