wil6210: add oob_mode for AP certification
Add a new value to the oob_mode module parameter for supporting AP certification. All enabled values of oob_mode (>0) are intended only for debugging and diagnostics. Signed-off-by: Lior David <qca_liord@qca.qualcomm.com> Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
3b56c15fa3
commit
b8c31b5d6c
|
@ -30,8 +30,8 @@ bool debug_fw; /* = false; */
|
||||||
module_param(debug_fw, bool, 0444);
|
module_param(debug_fw, bool, 0444);
|
||||||
MODULE_PARM_DESC(debug_fw, " do not perform card reset. For FW debug");
|
MODULE_PARM_DESC(debug_fw, " do not perform card reset. For FW debug");
|
||||||
|
|
||||||
static bool oob_mode;
|
static u8 oob_mode;
|
||||||
module_param(oob_mode, bool, 0444);
|
module_param(oob_mode, byte, 0444);
|
||||||
MODULE_PARM_DESC(oob_mode,
|
MODULE_PARM_DESC(oob_mode,
|
||||||
" enable out of the box (OOB) mode in FW, for diagnostics and certification");
|
" enable out of the box (OOB) mode in FW, for diagnostics and certification");
|
||||||
|
|
||||||
|
@ -642,13 +642,25 @@ static inline void wil_release_cpu(struct wil6210_priv *wil)
|
||||||
wil_w(wil, RGF_USER_USER_CPU_0, 1);
|
wil_w(wil, RGF_USER_USER_CPU_0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wil_set_oob_mode(struct wil6210_priv *wil, bool enable)
|
static void wil_set_oob_mode(struct wil6210_priv *wil, u8 mode)
|
||||||
{
|
{
|
||||||
wil_info(wil, "enable=%d\n", enable);
|
wil_info(wil, "oob_mode to %d\n", mode);
|
||||||
if (enable)
|
switch (mode) {
|
||||||
|
case 0:
|
||||||
|
wil_c(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE |
|
||||||
|
BIT_USER_OOB_R2_MODE);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
wil_c(wil, RGF_USER_USAGE_6, BIT_USER_OOB_R2_MODE);
|
||||||
wil_s(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE);
|
wil_s(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE);
|
||||||
else
|
break;
|
||||||
|
case 2:
|
||||||
wil_c(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE);
|
wil_c(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE);
|
||||||
|
wil_s(wil, RGF_USER_USAGE_6, BIT_USER_OOB_R2_MODE);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
wil_err(wil, "invalid oob_mode: %d\n", mode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int wil_target_reset(struct wil6210_priv *wil)
|
static int wil_target_reset(struct wil6210_priv *wil)
|
||||||
|
|
|
@ -140,6 +140,7 @@ struct RGF_ICR {
|
||||||
#define RGF_USER_USAGE_1 (0x880004)
|
#define RGF_USER_USAGE_1 (0x880004)
|
||||||
#define RGF_USER_USAGE_6 (0x880018)
|
#define RGF_USER_USAGE_6 (0x880018)
|
||||||
#define BIT_USER_OOB_MODE BIT(31)
|
#define BIT_USER_OOB_MODE BIT(31)
|
||||||
|
#define BIT_USER_OOB_R2_MODE BIT(30)
|
||||||
#define RGF_USER_HW_MACHINE_STATE (0x8801dc)
|
#define RGF_USER_HW_MACHINE_STATE (0x8801dc)
|
||||||
#define HW_MACHINE_BOOT_DONE (0x3fffffd)
|
#define HW_MACHINE_BOOT_DONE (0x3fffffd)
|
||||||
#define RGF_USER_USER_CPU_0 (0x8801e0)
|
#define RGF_USER_USER_CPU_0 (0x8801e0)
|
||||||
|
|
Loading…
Reference in New Issue