Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b72eb30d authored by Yuanyuan Liu's avatar Yuanyuan Liu Committed by Kyle Yan
Browse files

icnss: Add support of enable HW debug from module parameter



Add support of enable HW debug feature from ICNSS module parameter.
The setting will be passed to WLAN FW through QMI during subsequent
WLAN enable.

Change-Id: I02036d79fca38ff9ac71c70de8aa144b9cfb2f59
CRs-Fixed: 980027
Signed-off-by: default avatarYuanyuan Liu <yuanliu@codeaurora.org>
parent f47beac1
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -97,6 +97,16 @@
	} while (0)
#endif

enum icnss_debug_quirks {
	HW_ALWAY_ON,
	HW_DEBUG_ENABLE,
};

#define ICNSS_QUIRKS_DEFAULT 0

unsigned long quirks = ICNSS_QUIRKS_DEFAULT;
module_param(quirks, ulong, 0600);

void *icnss_ipc_log_context;

enum icnss_driver_event_type {
@@ -783,6 +793,8 @@ static int wlfw_wlan_mode_send_sync_msg(enum wlfw_driver_mode_enum_v01 mode)
	memset(&resp, 0, sizeof(resp));

	req.mode = mode;
	req.hw_debug_valid = 1;
	req.hw_debug = !!test_bit(HW_DEBUG_ENABLE, &quirks);

	req_desc.max_msg_len = WLFW_WLAN_MODE_REQ_MSG_V01_MAX_MSG_LEN;
	req_desc.msg_id = QMI_WLFW_WLAN_MODE_REQ_V01;
+18 −0
Original line number Diff line number Diff line
@@ -461,6 +461,24 @@ struct elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {
		.offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
					   mode),
	},
	{
		.data_type      = QMI_OPT_FLAG,
		.elem_len       = 1,
		.elem_size      = sizeof(uint8_t),
		.is_array       = NO_ARRAY,
		.tlv_type       = 0x10,
		.offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
					   hw_debug_valid),
	},
	{
		.data_type      = QMI_UNSIGNED_1_BYTE,
		.elem_len       = 1,
		.elem_size      = sizeof(uint8_t),
		.is_array       = NO_ARRAY,
		.tlv_type       = 0x10,
		.offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
					   hw_debug),
	},
	{
		.data_type      = QMI_EOTI,
		.is_array       = NO_ARRAY,
+3 −1
Original line number Diff line number Diff line
@@ -180,8 +180,10 @@ extern struct elem_info wlfw_pin_connect_result_ind_msg_v01_ei[];

struct wlfw_wlan_mode_req_msg_v01 {
	enum wlfw_driver_mode_enum_v01 mode;
	uint8_t hw_debug_valid;
	uint8_t hw_debug;
};
#define WLFW_WLAN_MODE_REQ_MSG_V01_MAX_MSG_LEN 7
#define WLFW_WLAN_MODE_REQ_MSG_V01_MAX_MSG_LEN 11
extern struct elem_info wlfw_wlan_mode_req_msg_v01_ei[];

struct wlfw_wlan_mode_resp_msg_v01 {