Search Linux Wireless

Re: [PATCH] mwifiex: add module parameter to disable 40MHZ support in 2.4G band

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

 



Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx> writes:

> On 03-08-17 11:26, Kalle Valo wrote:
>> Xinming Hu <huxinming820@xxxxxxxxx> writes:
>> 
>>> From: Xinming Hu <huxm@xxxxxxxxxxx>
>>>
>>> This patch provide a new module parameter disable_2g4_40m, with
>>> which driver will not report 40M capability for 2.4GHZ to cfg80211.
>>>
>>> Signed-off-by: Xinming Hu <huxm@xxxxxxxxxxx>
>>> Signed-off-by: Cathy Luo <cluo@xxxxxxxxxxx>
>>> Signed-off-by: Ganapathi Bhat <gbhat@xxxxxxxxxxx>
>>> ---
>>>  drivers/net/wireless/marvell/mwifiex/cfg80211.c | 22 ++++++++++++++--------
>>>  1 file changed, 14 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
>>> b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
>>> index 2be7817..820475a 100644
>>> --- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
>>> +++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
>>> @@ -25,6 +25,10 @@
>>>  static char *reg_alpha2;
>>>  module_param(reg_alpha2, charp, 0);
>>>  
>>> +static bool disable_2g4_40m;
>>> +module_param(disable_2g4_40m, bool, 0000);
>> 
>> This is bool, good.
>> 
>>> +MODULE_PARM_DESC(disable_2g4_40m, "2.4G 40M support disable:1, enable:0");
>> 
>> This is not really a readable description for someone not familiar with
>> Wi-Fi, maybe this instead:
>> 
>> "disable 40 Mhz channels on 2.4 GHz band (disable:1, enable:0)"
>> 
>>> @@ -2755,7 +2759,7 @@ static void mwifiex_setup_vht_caps(struct ieee80211_sta_vht_cap *vht_info,
>>>   */
>>>  static void
>>>  mwifiex_setup_ht_caps(struct ieee80211_sta_ht_cap *ht_info,
>>> -		      struct mwifiex_private *priv)
>>> +		      struct mwifiex_private *priv, int disable_40m)
>> 
>> But here you use int, that's a bit strange. Why not bool?
>
> Here is what is in net/wireless/core.c:
>
> static bool cfg80211_disable_40mhz_24ghz;
> module_param(cfg80211_disable_40mhz_24ghz, bool, 0644);
> MODULE_PARM_DESC(cfg80211_disable_40mhz_24ghz,
>                  "Disable 40MHz support in the 2.4GHz band");
>
> which seems exactly the same thing and ends up doing:
>
>                 /*
>                  * Since cfg80211_disable_40mhz_24ghz is global, we can
>                  * modify the sband's ht data even if the driver uses a
>                  * global structure for that.
>                  */
>                 if (cfg80211_disable_40mhz_24ghz &&
>                     band == NL80211_BAND_2GHZ &&
>                     sband->ht_cap.ht_supported) {
>                         sband->ht_cap.cap &=
> ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
>                         sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_40;
>                 }

Good catch! So the module parameter for the driver is not needed, right?

-- 
Kalle Valo



[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