2017-08-03 09:07:06

by Xinming Hu

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

From: Xinming Hu <[email protected]>

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 <[email protected]>
Signed-off-by: Cathy Luo <[email protected]>
Signed-off-by: Ganapathi Bhat <[email protected]>
---
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);
+MODULE_PARM_DESC(disable_2g4_40m, "2.4G 40M support disable:1, enable:0");
+
static const struct ieee80211_iface_limit mwifiex_ap_sta_limits[] = {
{
.max = 3, .types = BIT(NL80211_IFTYPE_STATION) |
@@ -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)
{
int rx_mcs_supp;
struct ieee80211_mcs_info mcs_set;
@@ -2769,7 +2773,7 @@ static void mwifiex_setup_vht_caps(struct ieee80211_sta_vht_cap *vht_info,
memset(&ht_info->mcs, 0, sizeof(ht_info->mcs));

/* Fill HT capability information */
- if (ISSUPP_CHANWIDTH40(adapter->hw_dot_11n_dev_cap))
+ if (ISSUPP_CHANWIDTH40(adapter->hw_dot_11n_dev_cap) && !disable_40m)
ht_info->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40;
else
ht_info->cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
@@ -2779,7 +2783,7 @@ static void mwifiex_setup_vht_caps(struct ieee80211_sta_vht_cap *vht_info,
else
ht_info->cap &= ~IEEE80211_HT_CAP_SGI_20;

- if (ISSUPP_SHORTGI40(adapter->hw_dot_11n_dev_cap))
+ if (ISSUPP_SHORTGI40(adapter->hw_dot_11n_dev_cap) && !disable_40m)
ht_info->cap |= IEEE80211_HT_CAP_SGI_40;
else
ht_info->cap &= ~IEEE80211_HT_CAP_SGI_40;
@@ -2799,7 +2803,8 @@ static void mwifiex_setup_vht_caps(struct ieee80211_sta_vht_cap *vht_info,
else
ht_info->cap &= ~IEEE80211_HT_CAP_GRN_FLD;

- if (ISENABLED_40MHZ_INTOLERANT(adapter->hw_dot_11n_dev_cap))
+ if (ISENABLED_40MHZ_INTOLERANT(adapter->hw_dot_11n_dev_cap) &&
+ !disable_40m)
ht_info->cap |= IEEE80211_HT_CAP_40MHZ_INTOLERANT;
else
ht_info->cap &= ~IEEE80211_HT_CAP_40MHZ_INTOLERANT;
@@ -2819,7 +2824,7 @@ static void mwifiex_setup_vht_caps(struct ieee80211_sta_vht_cap *vht_info,
memset(&mcs[rx_mcs_supp], 0,
sizeof(struct ieee80211_mcs_info) - rx_mcs_supp);
if (priv->bss_mode == NL80211_IFTYPE_STATION ||
- ISSUPP_CHANWIDTH40(adapter->hw_dot_11n_dev_cap))
+ (ISSUPP_CHANWIDTH40(adapter->hw_dot_11n_dev_cap) && !disable_40m))
/* Set MCS32 for infra mode or ad-hoc mode with 40MHz support */
SETHT_MCS32(mcs_set.rx_mask);

@@ -2974,14 +2979,15 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
if (ret)
goto err_sta_init;

- mwifiex_setup_ht_caps(&wiphy->bands[NL80211_BAND_2GHZ]->ht_cap, priv);
- if (adapter->is_hw_11ac_capable)
+ mwifiex_setup_ht_caps(&wiphy->bands[NL80211_BAND_2GHZ]->ht_cap, priv,
+ disable_2g4_40m);
+ if (adapter->is_hw_11ac_capable && !disable_2g4_40m)
mwifiex_setup_vht_caps(
&wiphy->bands[NL80211_BAND_2GHZ]->vht_cap, priv);

if (adapter->config_bands & BAND_A)
mwifiex_setup_ht_caps(
- &wiphy->bands[NL80211_BAND_5GHZ]->ht_cap, priv);
+ &wiphy->bands[NL80211_BAND_5GHZ]->ht_cap, priv, 0);

if ((adapter->config_bands & BAND_A) && adapter->is_hw_11ac_capable)
mwifiex_setup_vht_caps(
--
1.9.1


2017-08-03 09:49:48

by Arend Van Spriel

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

On 03-08-17 11:26, Kalle Valo wrote:
> Xinming Hu <[email protected]> writes:
>
>> From: Xinming Hu <[email protected]>
>>
>> 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 <[email protected]>
>> Signed-off-by: Cathy Luo <[email protected]>
>> Signed-off-by: Ganapathi Bhat <[email protected]>
>> ---
>> 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;
}

Regards,
Arend

2017-08-03 09:59:50

by Kalle Valo

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

Arend van Spriel <[email protected]> writes:

> On 03-08-17 11:26, Kalle Valo wrote:
>> Xinming Hu <[email protected]> writes:
>>
>>> From: Xinming Hu <[email protected]>
>>>
>>> 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 <[email protected]>
>>> Signed-off-by: Cathy Luo <[email protected]>
>>> Signed-off-by: Ganapathi Bhat <[email protected]>
>>> ---
>>> 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

2017-08-03 10:26:28

by Xinming Hu

[permalink] [raw]
Subject: RE: [PATCH] mwifiex: add module parameter to disable 40MHZ support in 2.4G band

SGkgQXJlbmQvS2FsbGUsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog
S2FsbGUgVmFsbyBbbWFpbHRvOmt2YWxvQGNvZGVhdXJvcmEub3JnXQ0KPiBTZW50OiAyMDE3xOo4
1MIzyNUgMTg6MDANCj4gVG86IEFyZW5kIHZhbiBTcHJpZWwNCj4gQ2M6IFhpbm1pbmcgSHU7IExp
bnV4IFdpcmVsZXNzOyBCcmlhbiBOb3JyaXM7IERtaXRyeSBUb3Jva2hvdjsNCj4gcmFqYXRqYUBn
b29nbGUuY29tOyBaaGl5dWFuIFlhbmc7IFRpbSBTb25nOyBDYXRoeSBMdW87IEdhbmFwYXRoaSBC
aGF0Ow0KPiBYaW5taW5nIEh1DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIG13aWZpZXg6IGFkZCBt
b2R1bGUgcGFyYW1ldGVyIHRvIGRpc2FibGUgNDBNSFoNCj4gc3VwcG9ydCBpbiAyLjRHIGJhbmQN
Cj4gDQo+IEFyZW5kIHZhbiBTcHJpZWwgPGFyZW5kLnZhbnNwcmllbEBicm9hZGNvbS5jb20+IHdy
aXRlczoNCj4gDQo+ID4gT24gMDMtMDgtMTcgMTE6MjYsIEthbGxlIFZhbG8gd3JvdGU6DQo+ID4+
IFhpbm1pbmcgSHUgPGh1eGlubWluZzgyMEBnbWFpbC5jb20+IHdyaXRlczoNCj4gPj4NCj4gPj4+
IEZyb206IFhpbm1pbmcgSHUgPGh1eG1AbWFydmVsbC5jb20+DQo+ID4+Pg0KPiA+Pj4gVGhpcyBw
YXRjaCBwcm92aWRlIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgZGlzYWJsZV8yZzRfNDBtLCB3aXRo
DQo+ID4+PiB3aGljaCBkcml2ZXIgd2lsbCBub3QgcmVwb3J0IDQwTSBjYXBhYmlsaXR5IGZvciAy
LjRHSFogdG8gY2ZnODAyMTEuDQo+ID4+Pg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogWGlubWluZyBI
dSA8aHV4bUBtYXJ2ZWxsLmNvbT4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IENhdGh5IEx1byA8Y2x1
b0BtYXJ2ZWxsLmNvbT4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IEdhbmFwYXRoaSBCaGF0IDxnYmhh
dEBtYXJ2ZWxsLmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21h
cnZlbGwvbXdpZmlleC9jZmc4MDIxMS5jIHwgMjINCj4gPj4+ICsrKysrKysrKysrKysrLS0tLS0t
LS0NCj4gPj4+ICAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMo
LSkNCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVs
bC9td2lmaWV4L2NmZzgwMjExLmMNCj4gPj4+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVs
bC9td2lmaWV4L2NmZzgwMjExLmMNCj4gPj4+IGluZGV4IDJiZTc4MTcuLjgyMDQ3NWEgMTAwNjQ0
DQo+ID4+PiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvY2ZnODAy
MTEuYw0KPiA+Pj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2Nm
ZzgwMjExLmMNCj4gPj4+IEBAIC0yNSw2ICsyNSwxMCBAQA0KPiA+Pj4gIHN0YXRpYyBjaGFyICpy
ZWdfYWxwaGEyOw0KPiA+Pj4gIG1vZHVsZV9wYXJhbShyZWdfYWxwaGEyLCBjaGFycCwgMCk7DQo+
ID4+Pg0KPiA+Pj4gK3N0YXRpYyBib29sIGRpc2FibGVfMmc0XzQwbTsNCj4gPj4+ICttb2R1bGVf
cGFyYW0oZGlzYWJsZV8yZzRfNDBtLCBib29sLCAwMDAwKTsNCj4gPj4NCj4gPj4gVGhpcyBpcyBi
b29sLCBnb29kLg0KPiA+Pg0KPiA+Pj4gK01PRFVMRV9QQVJNX0RFU0MoZGlzYWJsZV8yZzRfNDBt
LCAiMi40RyA0ME0gc3VwcG9ydCBkaXNhYmxlOjEsDQo+ID4+PiArZW5hYmxlOjAiKTsNCj4gPj4N
Cj4gPj4gVGhpcyBpcyBub3QgcmVhbGx5IGEgcmVhZGFibGUgZGVzY3JpcHRpb24gZm9yIHNvbWVv
bmUgbm90IGZhbWlsaWFyDQo+ID4+IHdpdGggV2ktRmksIG1heWJlIHRoaXMgaW5zdGVhZDoNCj4g
Pj4NCj4gPj4gImRpc2FibGUgNDAgTWh6IGNoYW5uZWxzIG9uIDIuNCBHSHogYmFuZCAoZGlzYWJs
ZToxLCBlbmFibGU6MCkiDQo+ID4+DQo+ID4+PiBAQCAtMjc1NSw3ICsyNzU5LDcgQEAgc3RhdGlj
IHZvaWQgbXdpZmlleF9zZXR1cF92aHRfY2FwcyhzdHJ1Y3QNCj4gaWVlZTgwMjExX3N0YV92aHRf
Y2FwICp2aHRfaW5mbywNCj4gPj4+ICAgKi8NCj4gPj4+ICBzdGF0aWMgdm9pZA0KPiA+Pj4gIG13
aWZpZXhfc2V0dXBfaHRfY2FwcyhzdHJ1Y3QgaWVlZTgwMjExX3N0YV9odF9jYXAgKmh0X2luZm8s
DQo+ID4+PiAtCQkgICAgICBzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2KQ0KPiA+Pj4gKwkJ
ICAgICAgc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwgaW50IGRpc2FibGVfNDBtKQ0KPiA+
Pg0KPiA+PiBCdXQgaGVyZSB5b3UgdXNlIGludCwgdGhhdCdzIGEgYml0IHN0cmFuZ2UuIFdoeSBu
b3QgYm9vbD8NCj4gPg0KPiA+IEhlcmUgaXMgd2hhdCBpcyBpbiBuZXQvd2lyZWxlc3MvY29yZS5j
Og0KPiA+DQo+ID4gc3RhdGljIGJvb2wgY2ZnODAyMTFfZGlzYWJsZV80MG1oel8yNGdoejsNCj4g
PiBtb2R1bGVfcGFyYW0oY2ZnODAyMTFfZGlzYWJsZV80MG1oel8yNGdoeiwgYm9vbCwgMDY0NCk7
DQo+ID4gTU9EVUxFX1BBUk1fREVTQyhjZmc4MDIxMV9kaXNhYmxlXzQwbWh6XzI0Z2h6LA0KPiA+
ICAgICAgICAgICAgICAgICAgIkRpc2FibGUgNDBNSHogc3VwcG9ydCBpbiB0aGUgMi40R0h6IGJh
bmQiKTsNCj4gPg0KPiA+IHdoaWNoIHNlZW1zIGV4YWN0bHkgdGhlIHNhbWUgdGhpbmcgYW5kIGVu
ZHMgdXAgZG9pbmc6DQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgLyoNCj4gPiAgICAgICAgICAg
ICAgICAgICogU2luY2UgY2ZnODAyMTFfZGlzYWJsZV80MG1oel8yNGdoeiBpcyBnbG9iYWwsIHdl
DQo+IGNhbg0KPiA+ICAgICAgICAgICAgICAgICAgKiBtb2RpZnkgdGhlIHNiYW5kJ3MgaHQgZGF0
YSBldmVuIGlmIHRoZSBkcml2ZXIgdXNlcyBhDQo+ID4gICAgICAgICAgICAgICAgICAqIGdsb2Jh
bCBzdHJ1Y3R1cmUgZm9yIHRoYXQuDQo+ID4gICAgICAgICAgICAgICAgICAqLw0KPiA+ICAgICAg
ICAgICAgICAgICBpZiAoY2ZnODAyMTFfZGlzYWJsZV80MG1oel8yNGdoeiAmJg0KPiA+ICAgICAg
ICAgICAgICAgICAgICAgYmFuZCA9PSBOTDgwMjExX0JBTkRfMkdIWiAmJg0KPiA+ICAgICAgICAg
ICAgICAgICAgICAgc2JhbmQtPmh0X2NhcC5odF9zdXBwb3J0ZWQpIHsNCj4gPiAgICAgICAgICAg
ICAgICAgICAgICAgICBzYmFuZC0+aHRfY2FwLmNhcCAmPQ0KPiA+IH5JRUVFODAyMTFfSFRfQ0FQ
X1NVUF9XSURUSF8yMF80MDsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBzYmFuZC0+aHRf
Y2FwLmNhcCAmPQ0KPiB+SUVFRTgwMjExX0hUX0NBUF9TR0lfNDA7DQo+ID4gICAgICAgICAgICAg
ICAgIH0NCj4gDQo+IEdvb2QgY2F0Y2ghIFNvIHRoZSBtb2R1bGUgcGFyYW1ldGVyIGZvciB0aGUg
ZHJpdmVyIGlzIG5vdCBuZWVkZWQsIHJpZ2h0Pw0KDQpHcmVhdCwgdGhhdCBpcyB3aGF0IHdlIHdh
bnQhIFRoYW5rcyBmb3IgdGhlIHBvaW50Lg0KDQo+IA0KPiAtLQ0KPiBLYWxsZSBWYWxvDQo=

2017-08-03 09:26:45

by Kalle Valo

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

Xinming Hu <[email protected]> writes:

> From: Xinming Hu <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Cathy Luo <[email protected]>
> Signed-off-by: Ganapathi Bhat <[email protected]>
> ---
> 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?

--
Kalle Valo