Loading drivers/net/wireless/cnss2/qmi.c +15 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,18 @@ static int cnss_wlfw_ind_register_send_sync(struct cnss_plat_data *plat_priv) return ret; } #ifdef CONFIG_CNSS2_DEBUG static inline u32 cnss_get_host_build_type(void) { return QMI_HOST_BUILD_TYPE_PRIMARY_V01; } #else static inline u32 cnss_get_host_build_type(void) { return QMI_HOST_BUILD_TYPE_SECONDARY_V01; } #endif static int cnss_wlfw_host_cap_send_sync(struct cnss_plat_data *plat_priv) { struct wlfw_host_cap_req_msg_v01 *req; Loading Loading @@ -213,6 +225,9 @@ static int cnss_wlfw_host_cap_send_sync(struct cnss_plat_data *plat_priv) req->ddr_range[0].start, req->ddr_range[0].size); } req->host_build_type_valid = 1; req->host_build_type = cnss_get_host_build_type(); ret = qmi_txn_init(&plat_priv->qmi_wlfw, &txn, wlfw_host_cap_resp_msg_v01_ei, resp); if (ret < 0) { Loading drivers/net/wireless/cnss2/wlan_firmware_service_v01.c +38 −0 Original line number Diff line number Diff line Loading @@ -2729,6 +2729,24 @@ struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[] = { ddr_range), .ei_array = wlfw_host_ddr_range_s_v01_ei, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_host_cap_req_msg_v01, host_build_type_valid), }, { .data_type = QMI_SIGNED_4_BYTE_ENUM, .elem_len = 1, .elem_size = sizeof(enum wlfw_host_build_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_host_cap_req_msg_v01, host_build_type), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, Loading Loading @@ -3546,6 +3564,26 @@ struct qmi_elem_info wlfw_qdss_trace_mode_req_msg_v01_ei[] = { wlfw_qdss_trace_mode_req_msg_v01, option), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x12, .offset = offsetof(struct wlfw_qdss_trace_mode_req_msg_v01, hw_trc_disable_override_valid), }, { .data_type = QMI_SIGNED_4_BYTE_ENUM, .elem_len = 1, .elem_size = sizeof(enum wlfw_qmi_param_value_v01), .array_type = NO_ARRAY, .tlv_type = 0x12, .offset = offsetof(struct wlfw_qdss_trace_mode_req_msg_v01, hw_trc_disable_override), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, Loading drivers/net/wireless/cnss2/wlan_firmware_service_v01.h +22 −2 Original line number Diff line number Diff line Loading @@ -181,6 +181,22 @@ enum wlfw_soc_wake_enum_v01 { WLFW_SOC_WAKE_ENUM_MAX_VAL_V01 = INT_MAX, }; enum wlfw_host_build_type_v01 { WLFW_HOST_BUILD_TYPE_MIN_VAL_V01 = INT_MIN, QMI_HOST_BUILD_TYPE_UNSPECIFIED_V01 = 0, QMI_HOST_BUILD_TYPE_PRIMARY_V01 = 1, QMI_HOST_BUILD_TYPE_SECONDARY_V01 = 2, WLFW_HOST_BUILD_TYPE_MAX_VAL_V01 = INT_MAX, }; enum wlfw_qmi_param_value_v01 { WLFW_QMI_PARAM_VALUE_MIN_VAL_V01 = INT_MIN, QMI_PARAM_INVALID_V01 = 0, QMI_PARAM_ENABLE_V01 = 1, QMI_PARAM_DISABLE_V01 = 2, WLFW_QMI_PARAM_VALUE_MAX_VAL_V01 = INT_MAX, }; #define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00) #define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01) #define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02) Loading Loading @@ -711,9 +727,11 @@ struct wlfw_host_cap_req_msg_v01 { u8 ddr_range_valid; struct wlfw_host_ddr_range_s_v01 ddr_range[QMI_WLFW_MAX_HOST_DDR_RANGE_SIZE_V01]; u8 host_build_type_valid; enum wlfw_host_build_type_v01 host_build_type; }; #define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 312 #define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 319 extern struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[]; struct wlfw_host_cap_resp_msg_v01 { Loading Loading @@ -922,9 +940,11 @@ struct wlfw_qdss_trace_mode_req_msg_v01 { enum wlfw_qdss_trace_mode_enum_v01 mode; u8 option_valid; u64 option; u8 hw_trc_disable_override_valid; enum wlfw_qmi_param_value_v01 hw_trc_disable_override; }; #define WLFW_QDSS_TRACE_MODE_REQ_MSG_V01_MAX_MSG_LEN 18 #define WLFW_QDSS_TRACE_MODE_REQ_MSG_V01_MAX_MSG_LEN 25 extern struct qmi_elem_info wlfw_qdss_trace_mode_req_msg_v01_ei[]; struct wlfw_qdss_trace_mode_resp_msg_v01 { Loading Loading
drivers/net/wireless/cnss2/qmi.c +15 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,18 @@ static int cnss_wlfw_ind_register_send_sync(struct cnss_plat_data *plat_priv) return ret; } #ifdef CONFIG_CNSS2_DEBUG static inline u32 cnss_get_host_build_type(void) { return QMI_HOST_BUILD_TYPE_PRIMARY_V01; } #else static inline u32 cnss_get_host_build_type(void) { return QMI_HOST_BUILD_TYPE_SECONDARY_V01; } #endif static int cnss_wlfw_host_cap_send_sync(struct cnss_plat_data *plat_priv) { struct wlfw_host_cap_req_msg_v01 *req; Loading Loading @@ -213,6 +225,9 @@ static int cnss_wlfw_host_cap_send_sync(struct cnss_plat_data *plat_priv) req->ddr_range[0].start, req->ddr_range[0].size); } req->host_build_type_valid = 1; req->host_build_type = cnss_get_host_build_type(); ret = qmi_txn_init(&plat_priv->qmi_wlfw, &txn, wlfw_host_cap_resp_msg_v01_ei, resp); if (ret < 0) { Loading
drivers/net/wireless/cnss2/wlan_firmware_service_v01.c +38 −0 Original line number Diff line number Diff line Loading @@ -2729,6 +2729,24 @@ struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[] = { ddr_range), .ei_array = wlfw_host_ddr_range_s_v01_ei, }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_host_cap_req_msg_v01, host_build_type_valid), }, { .data_type = QMI_SIGNED_4_BYTE_ENUM, .elem_len = 1, .elem_size = sizeof(enum wlfw_host_build_type_v01), .array_type = NO_ARRAY, .tlv_type = 0x20, .offset = offsetof(struct wlfw_host_cap_req_msg_v01, host_build_type), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, Loading Loading @@ -3546,6 +3564,26 @@ struct qmi_elem_info wlfw_qdss_trace_mode_req_msg_v01_ei[] = { wlfw_qdss_trace_mode_req_msg_v01, option), }, { .data_type = QMI_OPT_FLAG, .elem_len = 1, .elem_size = sizeof(u8), .array_type = NO_ARRAY, .tlv_type = 0x12, .offset = offsetof(struct wlfw_qdss_trace_mode_req_msg_v01, hw_trc_disable_override_valid), }, { .data_type = QMI_SIGNED_4_BYTE_ENUM, .elem_len = 1, .elem_size = sizeof(enum wlfw_qmi_param_value_v01), .array_type = NO_ARRAY, .tlv_type = 0x12, .offset = offsetof(struct wlfw_qdss_trace_mode_req_msg_v01, hw_trc_disable_override), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, Loading
drivers/net/wireless/cnss2/wlan_firmware_service_v01.h +22 −2 Original line number Diff line number Diff line Loading @@ -181,6 +181,22 @@ enum wlfw_soc_wake_enum_v01 { WLFW_SOC_WAKE_ENUM_MAX_VAL_V01 = INT_MAX, }; enum wlfw_host_build_type_v01 { WLFW_HOST_BUILD_TYPE_MIN_VAL_V01 = INT_MIN, QMI_HOST_BUILD_TYPE_UNSPECIFIED_V01 = 0, QMI_HOST_BUILD_TYPE_PRIMARY_V01 = 1, QMI_HOST_BUILD_TYPE_SECONDARY_V01 = 2, WLFW_HOST_BUILD_TYPE_MAX_VAL_V01 = INT_MAX, }; enum wlfw_qmi_param_value_v01 { WLFW_QMI_PARAM_VALUE_MIN_VAL_V01 = INT_MIN, QMI_PARAM_INVALID_V01 = 0, QMI_PARAM_ENABLE_V01 = 1, QMI_PARAM_DISABLE_V01 = 2, WLFW_QMI_PARAM_VALUE_MAX_VAL_V01 = INT_MAX, }; #define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00) #define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01) #define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02) Loading Loading @@ -711,9 +727,11 @@ struct wlfw_host_cap_req_msg_v01 { u8 ddr_range_valid; struct wlfw_host_ddr_range_s_v01 ddr_range[QMI_WLFW_MAX_HOST_DDR_RANGE_SIZE_V01]; u8 host_build_type_valid; enum wlfw_host_build_type_v01 host_build_type; }; #define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 312 #define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 319 extern struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[]; struct wlfw_host_cap_resp_msg_v01 { Loading Loading @@ -922,9 +940,11 @@ struct wlfw_qdss_trace_mode_req_msg_v01 { enum wlfw_qdss_trace_mode_enum_v01 mode; u8 option_valid; u64 option; u8 hw_trc_disable_override_valid; enum wlfw_qmi_param_value_v01 hw_trc_disable_override; }; #define WLFW_QDSS_TRACE_MODE_REQ_MSG_V01_MAX_MSG_LEN 18 #define WLFW_QDSS_TRACE_MODE_REQ_MSG_V01_MAX_MSG_LEN 25 extern struct qmi_elem_info wlfw_qdss_trace_mode_req_msg_v01_ei[]; struct wlfw_qdss_trace_mode_resp_msg_v01 { Loading