Search Linux Wireless

Re: [PATCH 11/17] iwlwifi: move iwl_enable_{rx,tx}_ampdu to iwl-modparams.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

if I am not mistaken this patch changes the behaviour, but the commit message
does not mention it. dvm/mac80211.c:iwl_enable_tx_ampdu() returned false by default,
while mvm/mac80211.c:iwl_enable_tx_ampdu() returned true by default.

After the change, however, the default return value is true, so this change
essentially undoes what 205e2210daa975d92ace485a65a31ccc4077fe1a
("iwlwifi: disable TX AMPDU by default for iwldvm") did.


Regards,
Barnabás Pőcze


2019. január 25., péntek 21:12 keltezéssel, Luca Coelho <luca@xxxxxxxxx> írta:

> From: Johannes Berg <johannes.berg@xxxxxxxxx>
> 
> These inlines just check the module parameters, so they don't
> need a configuration parameter and can move to a better place.
> 
> Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
> Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>
> ---
>  .../net/wireless/intel/iwlwifi/dvm/mac80211.c | 23 +++----------------
>  .../wireless/intel/iwlwifi/iwl-modparams.h    | 18 +++++++++++++++
>  .../net/wireless/intel/iwlwifi/mvm/mac80211.c | 22 ++----------------
>  3 files changed, 23 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c
> index 49b71dbf8490..54b759cec8b3 100644
> --- a/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c
> +++ b/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c
> @@ -1,6 +1,7 @@
>  /******************************************************************************
>   *
>   * Copyright(c) 2003 - 2014 Intel Corporation. All rights reserved.
> + * Copyright (C) 2018 Intel Corporation
>   *
>   * Portions of this file are derived from the ipw3945 project, as well
>   * as portions of the ieee80211 subsystem header files.
> @@ -710,24 +711,6 @@ static int iwlagn_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>  	return ret;
>  }
> 
> -static inline bool iwl_enable_rx_ampdu(const struct iwl_cfg *cfg)
> -{
> -	if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG)
> -		return false;
> -	return true;
> -}
> -
> -static inline bool iwl_enable_tx_ampdu(const struct iwl_cfg *cfg)
> -{
> -	if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG)
> -		return false;
> -	if (iwlwifi_mod_params.disable_11n & IWL_ENABLE_HT_TXAGG)
> -		return true;
> -
> -	/* disabled by default */
> -	return false;
> -}
> -
>  static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
>  				   struct ieee80211_vif *vif,
>  				   struct ieee80211_ampdu_params *params)
> @@ -752,7 +735,7 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
> 
>  	switch (action) {
>  	case IEEE80211_AMPDU_RX_START:
> -		if (!iwl_enable_rx_ampdu(priv->cfg))
> +		if (!iwl_enable_rx_ampdu())
>  			break;
>  		IWL_DEBUG_HT(priv, "start Rx\n");
>  		ret = iwl_sta_rx_agg_start(priv, sta, tid, *ssn);
> @@ -764,7 +747,7 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
>  	case IEEE80211_AMPDU_TX_START:
>  		if (!priv->trans->ops->txq_enable)
>  			break;
> -		if (!iwl_enable_tx_ampdu(priv->cfg))
> +		if (!iwl_enable_tx_ampdu())
>  			break;
>  		IWL_DEBUG_HT(priv, "start Tx\n");
>  		ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn);
> diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h
> index 73b1c46f1158..0cae2ef9b9df 100644
> --- a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h
> +++ b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h
> @@ -152,4 +152,22 @@ struct iwl_mod_params {
>  	bool enable_ini;
>  };
> 
> +static inline bool iwl_enable_rx_ampdu(void)
> +{
> +	if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG)
> +		return false;
> +	return true;
> +}
> +
> +static inline bool iwl_enable_tx_ampdu(void)
> +{
> +	if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG)
> +		return false;
> +	if (iwlwifi_mod_params.disable_11n & IWL_ENABLE_HT_TXAGG)
> +		return true;
> +
> +	/* enabled by default */
> +	return true;
> +}
> +
>  #endif /* #__iwl_modparams_h__ */
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
> index ebb3814dd922..78b35c9595a3 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
> @@ -943,24 +943,6 @@ static void iwl_mvm_mac_wake_tx_queue(struct ieee80211_hw *hw,
>  	schedule_work(&mvm->add_stream_wk);
>  }
> 
> -static inline bool iwl_enable_rx_ampdu(const struct iwl_cfg *cfg)
> -{
> -	if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG)
> -		return false;
> -	return true;
> -}
> -
> -static inline bool iwl_enable_tx_ampdu(const struct iwl_cfg *cfg)
> -{
> -	if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG)
> -		return false;
> -	if (iwlwifi_mod_params.disable_11n & IWL_ENABLE_HT_TXAGG)
> -		return true;
> -
> -	/* enabled by default */
> -	return true;
> -}
> -
>  #define CHECK_BA_TRIGGER(_mvm, _trig, _tid_bm, _tid, _fmt...)		\
>  	do {								\
>  		if (!(le16_to_cpu(_tid_bm) & BIT(_tid)))		\
> @@ -1073,7 +1055,7 @@ static int iwl_mvm_mac_ampdu_action(struct ieee80211_hw *hw,
>  			mvmvif = iwl_mvm_vif_from_mac80211(vif);
>  			cancel_delayed_work(&mvmvif->uapsd_nonagg_detected_wk);
>  		}
> -		if (!iwl_enable_rx_ampdu(mvm->cfg)) {
> +		if (!iwl_enable_rx_ampdu()) {
>  			ret = -EINVAL;
>  			break;
>  		}
> @@ -1085,7 +1067,7 @@ static int iwl_mvm_mac_ampdu_action(struct ieee80211_hw *hw,
>  					 timeout);
>  		break;
>  	case IEEE80211_AMPDU_TX_START:
> -		if (!iwl_enable_tx_ampdu(mvm->cfg)) {
> +		if (!iwl_enable_tx_ampdu()) {
>  			ret = -EINVAL;
>  			break;
>  		}
> --
> 2.20.1
> 





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux