Commit b49c2b25 authored by Ayala Barazani's avatar Ayala Barazani Committed by Luca Coelho

iwlwifi: Configure FW debug preset via module param.

The module param "enable_ini" is currently used to be enable/disable ini.
Add the option to configure the FW debug preset via this module param,
by change it type from boolean to an integer.
Signed-off-by: default avatarAyala Barazani <ayala.barazani@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20220304131517.4929e4b14956.I1bdffa4c37d4ee349aa0001978b716b96e38b090@changeidSigned-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent b0aa02b3
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* /*
* Copyright (C) 2018-2021 Intel Corporation * Copyright (C) 2018-2022 Intel Corporation
*/ */
#ifndef __iwl_dbg_tlv_h__ #ifndef __iwl_dbg_tlv_h__
#define __iwl_dbg_tlv_h__ #define __iwl_dbg_tlv_h__
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#include <fw/file.h> #include <fw/file.h>
#include <fw/api/dbg-tlv.h> #include <fw/api/dbg-tlv.h>
#define IWL_DBG_TLV_MAX_PRESET 15
/** /**
* struct iwl_dbg_tlv_node - debug TLV node * struct iwl_dbg_tlv_node - debug TLV node
* @list: list of &struct iwl_dbg_tlv_node * @list: list of &struct iwl_dbg_tlv_node
......
...@@ -1796,6 +1796,7 @@ void iwl_drv_stop(struct iwl_drv *drv) ...@@ -1796,6 +1796,7 @@ void iwl_drv_stop(struct iwl_drv *drv)
kfree(drv); kfree(drv);
} }
#define ENABLE_INI (IWL_DBG_TLV_MAX_PRESET + 1)
/* shared module parameters */ /* shared module parameters */
struct iwl_mod_params iwlwifi_mod_params = { struct iwl_mod_params iwlwifi_mod_params = {
...@@ -1803,7 +1804,7 @@ struct iwl_mod_params iwlwifi_mod_params = { ...@@ -1803,7 +1804,7 @@ struct iwl_mod_params iwlwifi_mod_params = {
.bt_coex_active = true, .bt_coex_active = true,
.power_level = IWL_POWER_INDEX_1, .power_level = IWL_POWER_INDEX_1,
.uapsd_disable = IWL_DISABLE_UAPSD_BSS | IWL_DISABLE_UAPSD_P2P_CLIENT, .uapsd_disable = IWL_DISABLE_UAPSD_BSS | IWL_DISABLE_UAPSD_P2P_CLIENT,
.enable_ini = true, .enable_ini = ENABLE_INI,
/* the rest are 0 by default */ /* the rest are 0 by default */
}; };
IWL_EXPORT_SYMBOL(iwlwifi_mod_params); IWL_EXPORT_SYMBOL(iwlwifi_mod_params);
...@@ -1915,10 +1916,42 @@ MODULE_PARM_DESC(nvm_file, "NVM file name"); ...@@ -1915,10 +1916,42 @@ MODULE_PARM_DESC(nvm_file, "NVM file name");
module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644); module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, uint, 0644);
MODULE_PARM_DESC(uapsd_disable, MODULE_PARM_DESC(uapsd_disable,
"disable U-APSD functionality bitmap 1: BSS 2: P2P Client (default: 3)"); "disable U-APSD functionality bitmap 1: BSS 2: P2P Client (default: 3)");
module_param_named(enable_ini, iwlwifi_mod_params.enable_ini,
bool, S_IRUGO | S_IWUSR); static int enable_ini_set(const char *arg, const struct kernel_param *kp)
{
int ret = 0;
bool res;
__u32 new_enable_ini;
/* in case the argument type is a number */
ret = kstrtou32(arg, 0, &new_enable_ini);
if (!ret) {
if (new_enable_ini > ENABLE_INI) {
pr_err("enable_ini cannot be %d, in range 0-16\n", new_enable_ini);
return -EINVAL;
}
goto out;
}
/* in case the argument type is boolean */
ret = kstrtobool(arg, &res);
if (ret)
return ret;
new_enable_ini = (res ? ENABLE_INI : 0);
out:
iwlwifi_mod_params.enable_ini = new_enable_ini;
return 0;
}
static const struct kernel_param_ops enable_ini_ops = {
.set = enable_ini_set
};
module_param_cb(enable_ini, &enable_ini_ops, &iwlwifi_mod_params.enable_ini, 0644);
MODULE_PARM_DESC(enable_ini, MODULE_PARM_DESC(enable_ini,
"Enable debug INI TLV FW debug infrastructure (default: true"); "0:disable, 1-15:FW_DBG_PRESET Values, 16:enabled without preset value defined,"
"Debug INI TLV FW debug infrastructure (default: 16)");
/* /*
* set bt_coex_active to true, uCode will do kill/defer * set bt_coex_active to true, uCode will do kill/defer
......
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* /*
* Copyright (C) 2005-2014, 2018-2020 Intel Corporation * Copyright (C) 2005-2014, 2018-2022 Intel Corporation
*/ */
#ifndef __iwl_modparams_h__ #ifndef __iwl_modparams_h__
#define __iwl_modparams_h__ #define __iwl_modparams_h__
...@@ -83,7 +83,8 @@ struct iwl_mod_params { ...@@ -83,7 +83,8 @@ struct iwl_mod_params {
*/ */
bool disable_11ax; bool disable_11ax;
bool remove_when_gone; bool remove_when_gone;
bool enable_ini; u32 enable_ini;
bool disable_11be;
}; };
static inline bool iwl_enable_rx_ampdu(void) static inline bool iwl_enable_rx_ampdu(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment