Search Linux Wireless

Re: [PATCH v2] mwifiex: add tdls uapsd support module parameter

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

 



Hi,

Please drop this patch, as there is a replace version already.


> -----Original Message-----
> From: Xinming Hu [mailto:huxinming820@xxxxxxxxx]
> Sent: 2017年7月20日 19:06
> To: Linux Wireless
> Cc: Kalle Valo; Brian Norris; Dmitry Torokhov; rajatja@xxxxxxxxxx; Zhiyuan
> Yang; Tim Song; Cathy Luo; Xinming Hu
> Subject: [PATCH v2] mwifiex: add tdls uapsd support module parameter
> 
> From: Xinming Hu <huxm@xxxxxxxxxxx>
> 
> An issue about tdls uapsd was fixed in latest firmware, this patch add module
> parameter to control tdls uapsd support, which is default disabled, could be a
> workaround to the old firmware. At the same time, it is optional to enable this
> feature in specific case.
> 
> Signed-off-by: Xinming Hu <huxm@xxxxxxxxxxx>
> Signed-off-by: Cathy Luo <cluo@xxxxxxxxxxx>
> ---
> v2: add more comments for disable tdls_uapsd. (Brian)
> ---
>  drivers/net/wireless/marvell/mwifiex/init.c    | 5 +++++
>  drivers/net/wireless/marvell/mwifiex/main.h    | 1 +
>  drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 8 +++++---
>  3 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/init.c
> b/drivers/net/wireless/marvell/mwifiex/init.c
> index 3ecb59f..2cc8e54 100644
> --- a/drivers/net/wireless/marvell/mwifiex/init.c
> +++ b/drivers/net/wireless/marvell/mwifiex/init.c
> @@ -25,6 +25,10 @@
>  #include "wmm.h"
>  #include "11n.h"
> 
> +static bool tdls_uapsd;
> +module_param(tdls_uapsd, bool, 0000);
> +MODULE_PARM_DESC(tdls_uapsd, "tdls uapsd support enable:1, disable:0");
> +
>  /*
>   * This function adds a BSS priority table to the table list.
>   *
> @@ -154,6 +158,7 @@ int mwifiex_init_priv(struct mwifiex_private *priv)
>  	priv->del_list_idx = 0;
>  	priv->hs2_enabled = false;
>  	priv->check_tdls_tx = false;
> +	priv->tdls_uapsd_support = tdls_uapsd;
>  	memcpy(priv->tos_to_tid_inv, tos_to_tid_inv, MAX_NUM_TID);
> 
>  	mwifiex_init_11h_params(priv);
> diff --git a/drivers/net/wireless/marvell/mwifiex/main.h
> b/drivers/net/wireless/marvell/mwifiex/main.h
> index f8cf307..ef5eac72 100644
> --- a/drivers/net/wireless/marvell/mwifiex/main.h
> +++ b/drivers/net/wireless/marvell/mwifiex/main.h
> @@ -660,6 +660,7 @@ struct mwifiex_private {
>  	u8 check_tdls_tx;
>  	struct timer_list auto_tdls_timer;
>  	bool auto_tdls_timer_active;
> +	u8 tdls_uapsd_support;
>  	struct idr ack_status_frames;
>  	/* spin lock for ack status */
>  	spinlock_t ack_status_lock;
> diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> index 534d94a..d5da565 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
> @@ -1789,9 +1789,11 @@ static int mwifiex_cmd_chan_region_cfg(struct
> mwifiex_private *priv,
>  		put_unaligned_le16(params->capability, pos);
>  		config_len += sizeof(params->capability);
> 
> -		qos_info = params->uapsd_queues | (params->max_sp << 5);
> -		wmm_qos_info = (struct mwifiex_ie_types_qos_info *)(pos +
> -								    config_len);
> +		if (priv->tdls_uapsd_support)
> +			qos_info = params->uapsd_queues | (params->max_sp << 5);
> +		else
> +			qos_info = 0;
> +		wmm_qos_info = (void *)(pos + config_len);
>  		wmm_qos_info->header.type = cpu_to_le16(WLAN_EID_QOS_CAPA);
>  		wmm_qos_info->header.len = cpu_to_le16(sizeof(qos_info));
>  		wmm_qos_info->qos_info = qos_info;
> --
> 1.9.1





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

  Powered by Linux