Loading drivers/net/wireless/cnss_utils/wlan_firmware_service_v01.c +246 −0 Original line number Original line Diff line number Diff line Loading @@ -747,6 +747,24 @@ struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[] = { .offset = offsetof(struct wlfw_ind_register_req_msg_v01, .offset = offsetof(struct wlfw_ind_register_req_msg_v01, respond_get_info_enable), respond_get_info_enable), }, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_ind_register_req_msg_v01, m3_dump_upload_req_enable_valid), }, { .data_type = QMI_UNSIGNED_1_BYTE, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_ind_register_req_msg_v01, m3_dump_upload_req_enable), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -802,6 +820,42 @@ struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[] = { }; }; struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = { struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = { { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_addr_offset_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_addr_offset), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_length_valid), }, { .data_type = QMI_UNSIGNED_2_BYTE, .elem_len = 1, .elem_size = sizeof(u16), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_length), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -1318,6 +1372,24 @@ struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cap_resp_msg_v01, .offset = offsetof(struct wlfw_cap_resp_msg_v01, otp_version), otp_version), }, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct wlfw_cap_resp_msg_v01, eeprom_caldata_read_timeout_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct wlfw_cap_resp_msg_v01, eeprom_caldata_read_timeout), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -1515,6 +1587,24 @@ struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cal_report_req_msg_v01, .offset = offsetof(struct wlfw_cal_report_req_msg_v01, xo_cal_data), xo_cal_data), }, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_cal_report_req_msg_v01, cal_remove_supported_valid), }, { .data_type = QMI_UNSIGNED_1_BYTE, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_cal_report_req_msg_v01, cal_remove_supported), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -3892,3 +3982,159 @@ struct qmi_elem_info wlfw_device_info_resp_msg_v01_ei[] = { }, }, }; }; struct qmi_elem_info wlfw_m3_dump_upload_req_ind_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct wlfw_m3_dump_upload_req_ind_msg_v01, pdev_id), }, { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_m3_dump_upload_req_ind_msg_v01, addr), }, { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x03, .offset = offsetof(struct wlfw_m3_dump_upload_req_ind_msg_v01, size), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_m3_dump_upload_done_req_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct wlfw_m3_dump_upload_done_req_msg_v01, pdev_id), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_m3_dump_upload_done_req_msg_v01, status), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_m3_dump_upload_done_resp_msg_v01_ei[] = { { .data_type = QMI_STRUCT, .elem_len = 1, .elem_size = sizeof(struct qmi_response_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_m3_dump_upload_done_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_soc_wake_req_msg_v01_ei[] = { { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_soc_wake_req_msg_v01, wake_valid), }, { .data_type = QMI_SIGNED_4_BYTE_ENUM, .elem_len = 1, .elem_size = sizeof(enum wlfw_soc_wake_enum_v01), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_soc_wake_req_msg_v01, wake), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_soc_wake_resp_msg_v01_ei[] = { { .data_type = QMI_STRUCT, .elem_len = 1, .elem_size = sizeof(struct qmi_response_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_soc_wake_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_exit_power_save_req_msg_v01_ei[] = { { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_exit_power_save_resp_msg_v01_ei[] = { { .data_type = QMI_STRUCT, .elem_len = 1, .elem_size = sizeof(struct qmi_response_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_exit_power_save_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; drivers/net/wireless/cnss_utils/wlan_firmware_service_v01.h +81 −5 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ #define QMI_WLFW_GET_INFO_REQ_V01 0x004A #define QMI_WLFW_GET_INFO_REQ_V01 0x004A #define QMI_WLFW_INITIATE_CAL_UPDATE_IND_V01 0x002A #define QMI_WLFW_INITIATE_CAL_UPDATE_IND_V01 0x002A #define QMI_WLFW_CAL_DONE_IND_V01 0x003E #define QMI_WLFW_CAL_DONE_IND_V01 0x003E #define QMI_WLFW_M3_DUMP_UPLOAD_REQ_IND_V01 0x004D #define QMI_WLFW_WFC_CALL_STATUS_RESP_V01 0x0049 #define QMI_WLFW_WFC_CALL_STATUS_RESP_V01 0x0049 #define QMI_WLFW_HOST_CAP_REQ_V01 0x0034 #define QMI_WLFW_HOST_CAP_REQ_V01 0x0034 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_RESP_V01 0x003B #define QMI_WLFW_DYNAMIC_FEATURE_MASK_RESP_V01 0x003B Loading @@ -28,6 +29,7 @@ #define QMI_WLFW_RESPOND_GET_INFO_IND_V01 0x004B #define QMI_WLFW_RESPOND_GET_INFO_IND_V01 0x004B #define QMI_WLFW_M3_INFO_RESP_V01 0x003C #define QMI_WLFW_M3_INFO_RESP_V01 0x003C #define QMI_WLFW_CAL_UPDATE_RESP_V01 0x0029 #define QMI_WLFW_CAL_UPDATE_RESP_V01 0x0029 #define QMI_WLFW_M3_DUMP_UPLOAD_DONE_RESP_V01 0x004E #define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027 #define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027 #define QMI_WLFW_XO_CAL_IND_V01 0x003D #define QMI_WLFW_XO_CAL_IND_V01 0x003D #define QMI_WLFW_INI_RESP_V01 0x002F #define QMI_WLFW_INI_RESP_V01 0x002F Loading @@ -41,12 +43,14 @@ #define QMI_WLFW_HOST_CAP_RESP_V01 0x0034 #define QMI_WLFW_HOST_CAP_RESP_V01 0x0034 #define QMI_WLFW_MSA_READY_IND_V01 0x002B #define QMI_WLFW_MSA_READY_IND_V01 0x002B #define QMI_WLFW_ATHDIAG_WRITE_RESP_V01 0x0031 #define QMI_WLFW_ATHDIAG_WRITE_RESP_V01 0x0031 #define QMI_WLFW_EXIT_POWER_SAVE_REQ_V01 0x0050 #define QMI_WLFW_WLAN_MODE_REQ_V01 0x0022 #define QMI_WLFW_WLAN_MODE_REQ_V01 0x0022 #define QMI_WLFW_IND_REGISTER_REQ_V01 0x0020 #define QMI_WLFW_IND_REGISTER_REQ_V01 0x0020 #define QMI_WLFW_WLAN_CFG_RESP_V01 0x0023 #define QMI_WLFW_WLAN_CFG_RESP_V01 0x0023 #define QMI_WLFW_QDSS_TRACE_MODE_REQ_V01 0x0045 #define QMI_WLFW_QDSS_TRACE_MODE_REQ_V01 0x0045 #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035 #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035 #define QMI_WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_RESP_V01 0x0044 #define QMI_WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_RESP_V01 0x0044 #define QMI_WLFW_SOC_WAKE_RESP_V01 0x004F #define QMI_WLFW_REJUVENATE_IND_V01 0x0039 #define QMI_WLFW_REJUVENATE_IND_V01 0x0039 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_REQ_V01 0x003B #define QMI_WLFW_DYNAMIC_FEATURE_MASK_REQ_V01 0x003B #define QMI_WLFW_ATHDIAG_WRITE_REQ_V01 0x0031 #define QMI_WLFW_ATHDIAG_WRITE_REQ_V01 0x0031 Loading @@ -68,7 +72,9 @@ #define QMI_WLFW_MSA_INFO_RESP_V01 0x002D #define QMI_WLFW_MSA_INFO_RESP_V01 0x002D #define QMI_WLFW_MSA_READY_REQ_V01 0x002E #define QMI_WLFW_MSA_READY_REQ_V01 0x002E #define QMI_WLFW_QDSS_TRACE_DATA_RESP_V01 0x0042 #define QMI_WLFW_QDSS_TRACE_DATA_RESP_V01 0x0042 #define QMI_WLFW_M3_DUMP_UPLOAD_DONE_REQ_V01 0x004E #define QMI_WLFW_CAP_RESP_V01 0x0024 #define QMI_WLFW_CAP_RESP_V01 0x0024 #define QMI_WLFW_SOC_WAKE_REQ_V01 0x004F #define QMI_WLFW_REJUVENATE_ACK_REQ_V01 0x003A #define QMI_WLFW_REJUVENATE_ACK_REQ_V01 0x003A #define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030 #define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030 #define QMI_WLFW_SHUTDOWN_REQ_V01 0x0043 #define QMI_WLFW_SHUTDOWN_REQ_V01 0x0043 Loading @@ -76,6 +82,7 @@ #define QMI_WLFW_ANTENNA_SWITCH_RESP_V01 0x0047 #define QMI_WLFW_ANTENNA_SWITCH_RESP_V01 0x0047 #define QMI_WLFW_DEVICE_INFO_REQ_V01 0x004C #define QMI_WLFW_DEVICE_INFO_REQ_V01 0x004C #define QMI_WLFW_MAC_ADDR_REQ_V01 0x0033 #define QMI_WLFW_MAC_ADDR_REQ_V01 0x0033 #define QMI_WLFW_EXIT_POWER_SAVE_RESP_V01 0x0050 #define QMI_WLFW_RESPOND_MEM_RESP_V01 0x0036 #define QMI_WLFW_RESPOND_MEM_RESP_V01 0x0036 #define QMI_WLFW_VBATT_RESP_V01 0x0032 #define QMI_WLFW_VBATT_RESP_V01 0x0032 #define QMI_WLFW_MSA_INFO_REQ_V01 0x002D #define QMI_WLFW_MSA_INFO_REQ_V01 0x002D Loading Loading @@ -156,6 +163,13 @@ enum wlfw_qdss_trace_mode_enum_v01 { WLFW_QDSS_TRACE_MODE_ENUM_MAX_VAL_V01 = INT_MAX, WLFW_QDSS_TRACE_MODE_ENUM_MAX_VAL_V01 = INT_MAX, }; }; enum wlfw_soc_wake_enum_v01 { WLFW_SOC_WAKE_ENUM_MIN_VAL_V01 = INT_MIN, QMI_WLFW_WAKE_REQUEST_V01 = 0, QMI_WLFW_WAKE_RELEASE_V01 = 1, WLFW_SOC_WAKE_ENUM_MAX_VAL_V01 = INT_MAX, }; #define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00) #define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00) #define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01) #define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01) #define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02) #define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02) Loading Loading @@ -286,9 +300,11 @@ struct wlfw_ind_register_req_msg_v01 { u8 qdss_trace_free_enable; u8 qdss_trace_free_enable; u8 respond_get_info_enable_valid; u8 respond_get_info_enable_valid; u8 respond_get_info_enable; u8 respond_get_info_enable; u8 m3_dump_upload_req_enable_valid; u8 m3_dump_upload_req_enable; }; }; #define WLFW_IND_REGISTER_REQ_MSG_V01_MAX_MSG_LEN 70 #define WLFW_IND_REGISTER_REQ_MSG_V01_MAX_MSG_LEN 74 extern struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[]; extern struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[]; struct wlfw_ind_register_resp_msg_v01 { struct wlfw_ind_register_resp_msg_v01 { Loading @@ -308,10 +324,13 @@ struct wlfw_fw_ready_ind_msg_v01 { extern struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[]; extern struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[]; struct wlfw_msa_ready_ind_msg_v01 { struct wlfw_msa_ready_ind_msg_v01 { char placeholder; u8 hang_data_addr_offset_valid; u32 hang_data_addr_offset; u8 hang_data_length_valid; u16 hang_data_length; }; }; #define WLFW_MSA_READY_IND_MSG_V01_MAX_MSG_LEN 0 #define WLFW_MSA_READY_IND_MSG_V01_MAX_MSG_LEN 12 extern struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[]; extern struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[]; struct wlfw_pin_connect_result_ind_msg_v01 { struct wlfw_pin_connect_result_ind_msg_v01 { Loading Loading @@ -403,9 +422,11 @@ struct wlfw_cap_resp_msg_v01 { u32 time_freq_hz; u32 time_freq_hz; u8 otp_version_valid; u8 otp_version_valid; u32 otp_version; u32 otp_version; u8 eeprom_caldata_read_timeout_valid; u32 eeprom_caldata_read_timeout; }; }; #define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 228 #define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 235 extern struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[]; extern struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[]; struct wlfw_bdf_download_req_msg_v01 { struct wlfw_bdf_download_req_msg_v01 { Loading Loading @@ -440,9 +461,11 @@ struct wlfw_cal_report_req_msg_v01 { enum wlfw_cal_temp_id_enum_v01 meta_data[QMI_WLFW_MAX_NUM_CAL_V01]; enum wlfw_cal_temp_id_enum_v01 meta_data[QMI_WLFW_MAX_NUM_CAL_V01]; u8 xo_cal_data_valid; u8 xo_cal_data_valid; u8 xo_cal_data; u8 xo_cal_data; u8 cal_remove_supported_valid; u8 cal_remove_supported; }; }; #define WLFW_CAL_REPORT_REQ_MSG_V01_MAX_MSG_LEN 28 #define WLFW_CAL_REPORT_REQ_MSG_V01_MAX_MSG_LEN 32 extern struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[]; extern struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[]; struct wlfw_cal_report_resp_msg_v01 { struct wlfw_cal_report_resp_msg_v01 { Loading Loading @@ -1016,4 +1039,57 @@ struct wlfw_device_info_resp_msg_v01 { #define WLFW_DEVICE_INFO_RESP_MSG_V01_MAX_MSG_LEN 25 #define WLFW_DEVICE_INFO_RESP_MSG_V01_MAX_MSG_LEN 25 extern struct qmi_elem_info wlfw_device_info_resp_msg_v01_ei[]; extern struct qmi_elem_info wlfw_device_info_resp_msg_v01_ei[]; struct wlfw_m3_dump_upload_req_ind_msg_v01 { u32 pdev_id; u64 addr; u64 size; }; #define WLFW_M3_DUMP_UPLOAD_REQ_IND_MSG_V01_MAX_MSG_LEN 29 extern struct qmi_elem_info wlfw_m3_dump_upload_req_ind_msg_v01_ei[]; struct wlfw_m3_dump_upload_done_req_msg_v01 { u32 pdev_id; u32 status; }; #define WLFW_M3_DUMP_UPLOAD_DONE_REQ_MSG_V01_MAX_MSG_LEN 14 extern struct qmi_elem_info wlfw_m3_dump_upload_done_req_msg_v01_ei[]; struct wlfw_m3_dump_upload_done_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define WLFW_M3_DUMP_UPLOAD_DONE_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_m3_dump_upload_done_resp_msg_v01_ei[]; struct wlfw_soc_wake_req_msg_v01 { u8 wake_valid; enum wlfw_soc_wake_enum_v01 wake; }; #define WLFW_SOC_WAKE_REQ_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_soc_wake_req_msg_v01_ei[]; struct wlfw_soc_wake_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define WLFW_SOC_WAKE_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_soc_wake_resp_msg_v01_ei[]; struct wlfw_exit_power_save_req_msg_v01 { char placeholder; }; #define WLFW_EXIT_POWER_SAVE_REQ_MSG_V01_MAX_MSG_LEN 0 extern struct qmi_elem_info wlfw_exit_power_save_req_msg_v01_ei[]; struct wlfw_exit_power_save_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define WLFW_EXIT_POWER_SAVE_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_exit_power_save_resp_msg_v01_ei[]; #endif #endif Loading
drivers/net/wireless/cnss_utils/wlan_firmware_service_v01.c +246 −0 Original line number Original line Diff line number Diff line Loading @@ -747,6 +747,24 @@ struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[] = { .offset = offsetof(struct wlfw_ind_register_req_msg_v01, .offset = offsetof(struct wlfw_ind_register_req_msg_v01, respond_get_info_enable), respond_get_info_enable), }, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_ind_register_req_msg_v01, m3_dump_upload_req_enable_valid), }, { .data_type = QMI_UNSIGNED_1_BYTE, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_ind_register_req_msg_v01, m3_dump_upload_req_enable), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -802,6 +820,42 @@ struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[] = { }; }; struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = { struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = { { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_addr_offset_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_addr_offset), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_length_valid), }, { .data_type = QMI_UNSIGNED_2_BYTE, .elem_len = 1, .elem_size = sizeof(u16), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_msa_ready_ind_msg_v01, hang_data_length), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -1318,6 +1372,24 @@ struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cap_resp_msg_v01, .offset = offsetof(struct wlfw_cap_resp_msg_v01, otp_version), otp_version), }, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct wlfw_cap_resp_msg_v01, eeprom_caldata_read_timeout_valid), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x19, .offset = offsetof(struct wlfw_cap_resp_msg_v01, eeprom_caldata_read_timeout), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -1515,6 +1587,24 @@ struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[] = { .offset = offsetof(struct wlfw_cal_report_req_msg_v01, .offset = offsetof(struct wlfw_cal_report_req_msg_v01, xo_cal_data), xo_cal_data), }, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_cal_report_req_msg_v01, cal_remove_supported_valid), }, { .data_type = QMI_UNSIGNED_1_BYTE, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x11, .offset = offsetof(struct wlfw_cal_report_req_msg_v01, cal_remove_supported), }, { { .data_type = QMI_EOTI, .data_type = QMI_EOTI, .array_type = NO_ARRAY, .array_type = NO_ARRAY, Loading Loading @@ -3892,3 +3982,159 @@ struct qmi_elem_info wlfw_device_info_resp_msg_v01_ei[] = { }, }, }; }; struct qmi_elem_info wlfw_m3_dump_upload_req_ind_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct wlfw_m3_dump_upload_req_ind_msg_v01, pdev_id), }, { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_m3_dump_upload_req_ind_msg_v01, addr), }, { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x03, .offset = offsetof(struct wlfw_m3_dump_upload_req_ind_msg_v01, size), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_m3_dump_upload_done_req_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct wlfw_m3_dump_upload_done_req_msg_v01, pdev_id), }, { .data_type = QMI_UNSIGNED_4_BYTE, .elem_len = 1, .elem_size = sizeof(u32), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_m3_dump_upload_done_req_msg_v01, status), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_m3_dump_upload_done_resp_msg_v01_ei[] = { { .data_type = QMI_STRUCT, .elem_len = 1, .elem_size = sizeof(struct qmi_response_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_m3_dump_upload_done_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_soc_wake_req_msg_v01_ei[] = { { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_soc_wake_req_msg_v01, wake_valid), }, { .data_type = QMI_SIGNED_4_BYTE_ENUM, .elem_len = 1, .elem_size = sizeof(enum wlfw_soc_wake_enum_v01), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct wlfw_soc_wake_req_msg_v01, wake), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_soc_wake_resp_msg_v01_ei[] = { { .data_type = QMI_STRUCT, .elem_len = 1, .elem_size = sizeof(struct qmi_response_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_soc_wake_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_exit_power_save_req_msg_v01_ei[] = { { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info wlfw_exit_power_save_resp_msg_v01_ei[] = { { .data_type = QMI_STRUCT, .elem_len = 1, .elem_size = sizeof(struct qmi_response_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x02, .offset = offsetof(struct wlfw_exit_power_save_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, };
drivers/net/wireless/cnss_utils/wlan_firmware_service_v01.h +81 −5 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ #define QMI_WLFW_GET_INFO_REQ_V01 0x004A #define QMI_WLFW_GET_INFO_REQ_V01 0x004A #define QMI_WLFW_INITIATE_CAL_UPDATE_IND_V01 0x002A #define QMI_WLFW_INITIATE_CAL_UPDATE_IND_V01 0x002A #define QMI_WLFW_CAL_DONE_IND_V01 0x003E #define QMI_WLFW_CAL_DONE_IND_V01 0x003E #define QMI_WLFW_M3_DUMP_UPLOAD_REQ_IND_V01 0x004D #define QMI_WLFW_WFC_CALL_STATUS_RESP_V01 0x0049 #define QMI_WLFW_WFC_CALL_STATUS_RESP_V01 0x0049 #define QMI_WLFW_HOST_CAP_REQ_V01 0x0034 #define QMI_WLFW_HOST_CAP_REQ_V01 0x0034 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_RESP_V01 0x003B #define QMI_WLFW_DYNAMIC_FEATURE_MASK_RESP_V01 0x003B Loading @@ -28,6 +29,7 @@ #define QMI_WLFW_RESPOND_GET_INFO_IND_V01 0x004B #define QMI_WLFW_RESPOND_GET_INFO_IND_V01 0x004B #define QMI_WLFW_M3_INFO_RESP_V01 0x003C #define QMI_WLFW_M3_INFO_RESP_V01 0x003C #define QMI_WLFW_CAL_UPDATE_RESP_V01 0x0029 #define QMI_WLFW_CAL_UPDATE_RESP_V01 0x0029 #define QMI_WLFW_M3_DUMP_UPLOAD_DONE_RESP_V01 0x004E #define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027 #define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027 #define QMI_WLFW_XO_CAL_IND_V01 0x003D #define QMI_WLFW_XO_CAL_IND_V01 0x003D #define QMI_WLFW_INI_RESP_V01 0x002F #define QMI_WLFW_INI_RESP_V01 0x002F Loading @@ -41,12 +43,14 @@ #define QMI_WLFW_HOST_CAP_RESP_V01 0x0034 #define QMI_WLFW_HOST_CAP_RESP_V01 0x0034 #define QMI_WLFW_MSA_READY_IND_V01 0x002B #define QMI_WLFW_MSA_READY_IND_V01 0x002B #define QMI_WLFW_ATHDIAG_WRITE_RESP_V01 0x0031 #define QMI_WLFW_ATHDIAG_WRITE_RESP_V01 0x0031 #define QMI_WLFW_EXIT_POWER_SAVE_REQ_V01 0x0050 #define QMI_WLFW_WLAN_MODE_REQ_V01 0x0022 #define QMI_WLFW_WLAN_MODE_REQ_V01 0x0022 #define QMI_WLFW_IND_REGISTER_REQ_V01 0x0020 #define QMI_WLFW_IND_REGISTER_REQ_V01 0x0020 #define QMI_WLFW_WLAN_CFG_RESP_V01 0x0023 #define QMI_WLFW_WLAN_CFG_RESP_V01 0x0023 #define QMI_WLFW_QDSS_TRACE_MODE_REQ_V01 0x0045 #define QMI_WLFW_QDSS_TRACE_MODE_REQ_V01 0x0045 #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035 #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035 #define QMI_WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_RESP_V01 0x0044 #define QMI_WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_RESP_V01 0x0044 #define QMI_WLFW_SOC_WAKE_RESP_V01 0x004F #define QMI_WLFW_REJUVENATE_IND_V01 0x0039 #define QMI_WLFW_REJUVENATE_IND_V01 0x0039 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_REQ_V01 0x003B #define QMI_WLFW_DYNAMIC_FEATURE_MASK_REQ_V01 0x003B #define QMI_WLFW_ATHDIAG_WRITE_REQ_V01 0x0031 #define QMI_WLFW_ATHDIAG_WRITE_REQ_V01 0x0031 Loading @@ -68,7 +72,9 @@ #define QMI_WLFW_MSA_INFO_RESP_V01 0x002D #define QMI_WLFW_MSA_INFO_RESP_V01 0x002D #define QMI_WLFW_MSA_READY_REQ_V01 0x002E #define QMI_WLFW_MSA_READY_REQ_V01 0x002E #define QMI_WLFW_QDSS_TRACE_DATA_RESP_V01 0x0042 #define QMI_WLFW_QDSS_TRACE_DATA_RESP_V01 0x0042 #define QMI_WLFW_M3_DUMP_UPLOAD_DONE_REQ_V01 0x004E #define QMI_WLFW_CAP_RESP_V01 0x0024 #define QMI_WLFW_CAP_RESP_V01 0x0024 #define QMI_WLFW_SOC_WAKE_REQ_V01 0x004F #define QMI_WLFW_REJUVENATE_ACK_REQ_V01 0x003A #define QMI_WLFW_REJUVENATE_ACK_REQ_V01 0x003A #define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030 #define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030 #define QMI_WLFW_SHUTDOWN_REQ_V01 0x0043 #define QMI_WLFW_SHUTDOWN_REQ_V01 0x0043 Loading @@ -76,6 +82,7 @@ #define QMI_WLFW_ANTENNA_SWITCH_RESP_V01 0x0047 #define QMI_WLFW_ANTENNA_SWITCH_RESP_V01 0x0047 #define QMI_WLFW_DEVICE_INFO_REQ_V01 0x004C #define QMI_WLFW_DEVICE_INFO_REQ_V01 0x004C #define QMI_WLFW_MAC_ADDR_REQ_V01 0x0033 #define QMI_WLFW_MAC_ADDR_REQ_V01 0x0033 #define QMI_WLFW_EXIT_POWER_SAVE_RESP_V01 0x0050 #define QMI_WLFW_RESPOND_MEM_RESP_V01 0x0036 #define QMI_WLFW_RESPOND_MEM_RESP_V01 0x0036 #define QMI_WLFW_VBATT_RESP_V01 0x0032 #define QMI_WLFW_VBATT_RESP_V01 0x0032 #define QMI_WLFW_MSA_INFO_REQ_V01 0x002D #define QMI_WLFW_MSA_INFO_REQ_V01 0x002D Loading Loading @@ -156,6 +163,13 @@ enum wlfw_qdss_trace_mode_enum_v01 { WLFW_QDSS_TRACE_MODE_ENUM_MAX_VAL_V01 = INT_MAX, WLFW_QDSS_TRACE_MODE_ENUM_MAX_VAL_V01 = INT_MAX, }; }; enum wlfw_soc_wake_enum_v01 { WLFW_SOC_WAKE_ENUM_MIN_VAL_V01 = INT_MIN, QMI_WLFW_WAKE_REQUEST_V01 = 0, QMI_WLFW_WAKE_RELEASE_V01 = 1, WLFW_SOC_WAKE_ENUM_MAX_VAL_V01 = INT_MAX, }; #define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00) #define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00) #define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01) #define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01) #define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02) #define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02) Loading Loading @@ -286,9 +300,11 @@ struct wlfw_ind_register_req_msg_v01 { u8 qdss_trace_free_enable; u8 qdss_trace_free_enable; u8 respond_get_info_enable_valid; u8 respond_get_info_enable_valid; u8 respond_get_info_enable; u8 respond_get_info_enable; u8 m3_dump_upload_req_enable_valid; u8 m3_dump_upload_req_enable; }; }; #define WLFW_IND_REGISTER_REQ_MSG_V01_MAX_MSG_LEN 70 #define WLFW_IND_REGISTER_REQ_MSG_V01_MAX_MSG_LEN 74 extern struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[]; extern struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[]; struct wlfw_ind_register_resp_msg_v01 { struct wlfw_ind_register_resp_msg_v01 { Loading @@ -308,10 +324,13 @@ struct wlfw_fw_ready_ind_msg_v01 { extern struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[]; extern struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[]; struct wlfw_msa_ready_ind_msg_v01 { struct wlfw_msa_ready_ind_msg_v01 { char placeholder; u8 hang_data_addr_offset_valid; u32 hang_data_addr_offset; u8 hang_data_length_valid; u16 hang_data_length; }; }; #define WLFW_MSA_READY_IND_MSG_V01_MAX_MSG_LEN 0 #define WLFW_MSA_READY_IND_MSG_V01_MAX_MSG_LEN 12 extern struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[]; extern struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[]; struct wlfw_pin_connect_result_ind_msg_v01 { struct wlfw_pin_connect_result_ind_msg_v01 { Loading Loading @@ -403,9 +422,11 @@ struct wlfw_cap_resp_msg_v01 { u32 time_freq_hz; u32 time_freq_hz; u8 otp_version_valid; u8 otp_version_valid; u32 otp_version; u32 otp_version; u8 eeprom_caldata_read_timeout_valid; u32 eeprom_caldata_read_timeout; }; }; #define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 228 #define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 235 extern struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[]; extern struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[]; struct wlfw_bdf_download_req_msg_v01 { struct wlfw_bdf_download_req_msg_v01 { Loading Loading @@ -440,9 +461,11 @@ struct wlfw_cal_report_req_msg_v01 { enum wlfw_cal_temp_id_enum_v01 meta_data[QMI_WLFW_MAX_NUM_CAL_V01]; enum wlfw_cal_temp_id_enum_v01 meta_data[QMI_WLFW_MAX_NUM_CAL_V01]; u8 xo_cal_data_valid; u8 xo_cal_data_valid; u8 xo_cal_data; u8 xo_cal_data; u8 cal_remove_supported_valid; u8 cal_remove_supported; }; }; #define WLFW_CAL_REPORT_REQ_MSG_V01_MAX_MSG_LEN 28 #define WLFW_CAL_REPORT_REQ_MSG_V01_MAX_MSG_LEN 32 extern struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[]; extern struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[]; struct wlfw_cal_report_resp_msg_v01 { struct wlfw_cal_report_resp_msg_v01 { Loading Loading @@ -1016,4 +1039,57 @@ struct wlfw_device_info_resp_msg_v01 { #define WLFW_DEVICE_INFO_RESP_MSG_V01_MAX_MSG_LEN 25 #define WLFW_DEVICE_INFO_RESP_MSG_V01_MAX_MSG_LEN 25 extern struct qmi_elem_info wlfw_device_info_resp_msg_v01_ei[]; extern struct qmi_elem_info wlfw_device_info_resp_msg_v01_ei[]; struct wlfw_m3_dump_upload_req_ind_msg_v01 { u32 pdev_id; u64 addr; u64 size; }; #define WLFW_M3_DUMP_UPLOAD_REQ_IND_MSG_V01_MAX_MSG_LEN 29 extern struct qmi_elem_info wlfw_m3_dump_upload_req_ind_msg_v01_ei[]; struct wlfw_m3_dump_upload_done_req_msg_v01 { u32 pdev_id; u32 status; }; #define WLFW_M3_DUMP_UPLOAD_DONE_REQ_MSG_V01_MAX_MSG_LEN 14 extern struct qmi_elem_info wlfw_m3_dump_upload_done_req_msg_v01_ei[]; struct wlfw_m3_dump_upload_done_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define WLFW_M3_DUMP_UPLOAD_DONE_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_m3_dump_upload_done_resp_msg_v01_ei[]; struct wlfw_soc_wake_req_msg_v01 { u8 wake_valid; enum wlfw_soc_wake_enum_v01 wake; }; #define WLFW_SOC_WAKE_REQ_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_soc_wake_req_msg_v01_ei[]; struct wlfw_soc_wake_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define WLFW_SOC_WAKE_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_soc_wake_resp_msg_v01_ei[]; struct wlfw_exit_power_save_req_msg_v01 { char placeholder; }; #define WLFW_EXIT_POWER_SAVE_REQ_MSG_V01_MAX_MSG_LEN 0 extern struct qmi_elem_info wlfw_exit_power_save_req_msg_v01_ei[]; struct wlfw_exit_power_save_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define WLFW_EXIT_POWER_SAVE_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info wlfw_exit_power_save_resp_msg_v01_ei[]; #endif #endif