Search Linux Wireless

Re: [PATCH v2 2/2] brcmfmac: make firmware frameburst mode a module parameter

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

 




Arend van Spriel 於 11/2/2018 8:31 PM 寫道:
> On 11/2/2018 9:24 AM, Wright Feng wrote:
>> This patch is for adding a new module parameter "frameburst".
>> With setting "frameburst=1" in module parameters, firmware frameburst 
>> mode
>> will be enabled. The feature can enable per-packet framebursting in
>> firmware side and get higher TX throughput in High Throughput(HT) mode.
> 
> So why not always enable it in firmware as it seems to be the default in 
> recent firmware anyway.
> 
> Regards,
> Arend
We don't have all the chips(some are not belong to Cypress) to do
modification and verify them in our internal test, so the frameburst
feature will not benefit to all firmwares.
How about removing module parameter and setting frameburst to be default
in host driver side? It will be good to all Linux supported chips and
users.

-Wright
> 
>> Signed-off-by: Wright Feng <wright.feng@xxxxxxxxxxx>
>> ---
>>  .../net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c    | 7 +++++++
>>  drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c  | 5 +++++
>>  drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h  | 2 ++
>>  drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h    | 1 +
>>  4 files changed, 15 insertions(+)
>>
>> diff --git 
>> a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c 
>> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>> index 230a378c26fc..4a05d3f50cff 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
>> @@ -6638,6 +6638,13 @@ static s32 brcmf_config_dongle(struct 
>> brcmf_cfg80211_info *cfg)
>>
>>      brcmf_configure_arp_nd_offload(ifp, true);
>>
>> +    if (ifp->drvr->settings->frameburst) {
>> +        err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_FAKEFRAG, 1);
>> +            if (err)
>> +                brcmf_info("setting frameburst mode failed\n");
>> +        brcmf_dbg(INFO, "frameburst mode enabled\n");
>> +    }
>> +
>>      cfg->dongle_up = true;
>>  default_conf_out:
>>
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c 
>> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
>> index 94044a7a6021..0ad4c3196e5d 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
>> @@ -78,6 +78,10 @@ static int brcmf_iapp_enable;
>>  module_param_named(iapp, brcmf_iapp_enable, int, 0);
>>  MODULE_PARM_DESC(iapp, "Enable partial support for the obsoleted 
>> Inter-Access Point Protocol");
>>
>> +static int brcmf_frameburst;
>> +module_param_named(frameburst, brcmf_frameburst, int, 0);
>> +MODULE_PARM_DESC(frameburst, "Enable firmware frameburst feature");
>> +
>>  #ifdef DEBUG
>>  /* always succeed brcmf_bus_started() */
>>  static int brcmf_ignore_probe_fail;
>> @@ -419,6 +423,7 @@ struct brcmf_mp_device 
>> *brcmf_get_module_param(struct device *dev,
>>      settings->fcmode = brcmf_fcmode;
>>      settings->roamoff = !!brcmf_roamoff;
>>      settings->iapp = !!brcmf_iapp_enable;
>> +    settings->frameburst = !!brcmf_frameburst;
>>  #ifdef DEBUG
>>      settings->ignore_probe_fail = !!brcmf_ignore_probe_fail;
>>  #endif
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h 
>> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
>> index a34642cb4d2f..b91975258a68 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
>> @@ -47,6 +47,7 @@ extern struct brcmf_mp_global_t brcmf_mp_global;
>>   * @feature_disable: Feature_disable bitmask.
>>   * @fcmode: FWS flow control.
>>   * @roamoff: Firmware roaming off?
>> + * @frameburst: Firmware frame burst mode.
>>   * @ignore_probe_fail: Ignore probe failure.
>>   * @country_codes: If available, pointer to struct for translating 
>> country codes
>>   * @bus: Bus specific platform data. Only SDIO at the mmoment.
>> @@ -57,6 +58,7 @@ struct brcmf_mp_device {
>>      int        fcmode;
>>      bool        roamoff;
>>      bool        iapp;
>> +    bool        frameburst;
>>      bool        ignore_probe_fail;
>>      struct brcmfmac_pd_cc *country_codes;
>>      union {
>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h 
>> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
>> index 63b1287e2e6d..b6b183b18413 100644
>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
>> @@ -80,6 +80,7 @@
>>  #define BRCMF_C_SCB_DEAUTHENTICATE_FOR_REASON    201
>>  #define BRCMF_C_SET_ASSOC_PREFER        205
>>  #define BRCMF_C_GET_VALID_CHANNELS        217
>> +#define BRCMF_C_SET_FAKEFRAG            219
>>  #define BRCMF_C_GET_KEY_PRIMARY            235
>>  #define BRCMF_C_SET_KEY_PRIMARY            236
>>  #define BRCMF_C_SET_SCAN_PASSIVE_TIME        258
>>
> 




[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