icnss: Update WLFW header file to the latest and add fw_build_id
Update WLFW header file to the latest and add fw_build_id in capability response message so that host could know which FW build it is. CRs-Fixed: 1082787 Change-Id: I8c8bcf9da42668f3964b4dffcbc1b15465ea8018 Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
This commit is contained in:
parent
b67bb93f56
commit
ab5985e13e
3 changed files with 92 additions and 3 deletions
|
@ -439,6 +439,7 @@ static struct icnss_priv {
|
||||||
struct wlfw_rf_board_info_s_v01 board_info;
|
struct wlfw_rf_board_info_s_v01 board_info;
|
||||||
struct wlfw_soc_info_s_v01 soc_info;
|
struct wlfw_soc_info_s_v01 soc_info;
|
||||||
struct wlfw_fw_version_info_s_v01 fw_version_info;
|
struct wlfw_fw_version_info_s_v01 fw_version_info;
|
||||||
|
char fw_build_id[QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1];
|
||||||
u32 pwr_pin_result;
|
u32 pwr_pin_result;
|
||||||
u32 phy_io_pin_result;
|
u32 phy_io_pin_result;
|
||||||
u32 rf_pin_result;
|
u32 rf_pin_result;
|
||||||
|
@ -1971,12 +1972,16 @@ static int wlfw_cap_send_sync_msg(void)
|
||||||
penv->soc_info = resp.soc_info;
|
penv->soc_info = resp.soc_info;
|
||||||
if (resp.fw_version_info_valid)
|
if (resp.fw_version_info_valid)
|
||||||
penv->fw_version_info = resp.fw_version_info;
|
penv->fw_version_info = resp.fw_version_info;
|
||||||
|
if (resp.fw_build_id_valid)
|
||||||
|
strlcpy(penv->fw_build_id, resp.fw_build_id,
|
||||||
|
QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1);
|
||||||
|
|
||||||
icnss_pr_dbg("Capability, chip_id: 0x%x, chip_family: 0x%x, board_id: 0x%x, soc_id: 0x%x, fw_version: 0x%x, fw_build_timestamp: %s",
|
icnss_pr_dbg("Capability, chip_id: 0x%x, chip_family: 0x%x, board_id: 0x%x, soc_id: 0x%x, fw_version: 0x%x, fw_build_timestamp: %s, fw_build_id: %s",
|
||||||
penv->chip_info.chip_id, penv->chip_info.chip_family,
|
penv->chip_info.chip_id, penv->chip_info.chip_family,
|
||||||
penv->board_info.board_id, penv->soc_info.soc_id,
|
penv->board_info.board_id, penv->soc_info.soc_id,
|
||||||
penv->fw_version_info.fw_version,
|
penv->fw_version_info.fw_version,
|
||||||
penv->fw_version_info.fw_build_timestamp);
|
penv->fw_version_info.fw_build_timestamp,
|
||||||
|
penv->fw_build_id);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -3929,6 +3934,8 @@ static int icnss_stats_show_capability(struct seq_file *s,
|
||||||
priv->fw_version_info.fw_version);
|
priv->fw_version_info.fw_version);
|
||||||
seq_printf(s, "Firmware Build Timestamp: %s\n",
|
seq_printf(s, "Firmware Build Timestamp: %s\n",
|
||||||
priv->fw_version_info.fw_build_timestamp);
|
priv->fw_version_info.fw_build_timestamp);
|
||||||
|
seq_printf(s, "Firmware Build ID: %s\n",
|
||||||
|
priv->fw_build_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -765,6 +765,24 @@ struct elem_info wlfw_cap_resp_msg_v01_ei[] = {
|
||||||
fw_version_info),
|
fw_version_info),
|
||||||
.ei_array = wlfw_fw_version_info_s_v01_ei,
|
.ei_array = wlfw_fw_version_info_s_v01_ei,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.data_type = QMI_OPT_FLAG,
|
||||||
|
.elem_len = 1,
|
||||||
|
.elem_size = sizeof(uint8_t),
|
||||||
|
.is_array = NO_ARRAY,
|
||||||
|
.tlv_type = 0x14,
|
||||||
|
.offset = offsetof(struct wlfw_cap_resp_msg_v01,
|
||||||
|
fw_build_id_valid),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.data_type = QMI_STRING,
|
||||||
|
.elem_len = QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1,
|
||||||
|
.elem_size = sizeof(char),
|
||||||
|
.is_array = NO_ARRAY,
|
||||||
|
.tlv_type = 0x14,
|
||||||
|
.offset = offsetof(struct wlfw_cap_resp_msg_v01,
|
||||||
|
fw_build_id),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.data_type = QMI_EOTI,
|
.data_type = QMI_EOTI,
|
||||||
.is_array = NO_ARRAY,
|
.is_array = NO_ARRAY,
|
||||||
|
@ -1588,3 +1606,47 @@ struct elem_info wlfw_vbatt_resp_msg_v01_ei[] = {
|
||||||
.is_array = QMI_COMMON_TLV_TYPE,
|
.is_array = QMI_COMMON_TLV_TYPE,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct elem_info wlfw_mac_addr_req_msg_v01_ei[] = {
|
||||||
|
{
|
||||||
|
.data_type = QMI_OPT_FLAG,
|
||||||
|
.elem_len = 1,
|
||||||
|
.elem_size = sizeof(uint8_t),
|
||||||
|
.is_array = NO_ARRAY,
|
||||||
|
.tlv_type = 0x10,
|
||||||
|
.offset = offsetof(struct wlfw_mac_addr_req_msg_v01,
|
||||||
|
mac_addr_valid),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.data_type = QMI_UNSIGNED_1_BYTE,
|
||||||
|
.elem_len = QMI_WLFW_MAC_ADDR_SIZE_V01,
|
||||||
|
.elem_size = sizeof(uint8_t),
|
||||||
|
.is_array = STATIC_ARRAY,
|
||||||
|
.tlv_type = 0x10,
|
||||||
|
.offset = offsetof(struct wlfw_mac_addr_req_msg_v01,
|
||||||
|
mac_addr),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.data_type = QMI_EOTI,
|
||||||
|
.is_array = NO_ARRAY,
|
||||||
|
.is_array = QMI_COMMON_TLV_TYPE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
struct elem_info wlfw_mac_addr_resp_msg_v01_ei[] = {
|
||||||
|
{
|
||||||
|
.data_type = QMI_STRUCT,
|
||||||
|
.elem_len = 1,
|
||||||
|
.elem_size = sizeof(struct qmi_response_type_v01),
|
||||||
|
.is_array = NO_ARRAY,
|
||||||
|
.tlv_type = 0x02,
|
||||||
|
.offset = offsetof(struct wlfw_mac_addr_resp_msg_v01,
|
||||||
|
resp),
|
||||||
|
.ei_array = get_qmi_response_type_v01_ei(),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.data_type = QMI_EOTI,
|
||||||
|
.is_array = NO_ARRAY,
|
||||||
|
.is_array = QMI_COMMON_TLV_TYPE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027
|
#define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027
|
||||||
#define QMI_WLFW_INI_RESP_V01 0x002F
|
#define QMI_WLFW_INI_RESP_V01 0x002F
|
||||||
#define QMI_WLFW_CAL_REPORT_RESP_V01 0x0026
|
#define QMI_WLFW_CAL_REPORT_RESP_V01 0x0026
|
||||||
|
#define QMI_WLFW_MAC_ADDR_RESP_V01 0x0033
|
||||||
#define QMI_WLFW_INITIATE_CAL_DOWNLOAD_IND_V01 0x0028
|
#define QMI_WLFW_INITIATE_CAL_DOWNLOAD_IND_V01 0x0028
|
||||||
#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
|
||||||
|
@ -43,6 +44,7 @@
|
||||||
#define QMI_WLFW_CAP_RESP_V01 0x0024
|
#define QMI_WLFW_CAP_RESP_V01 0x0024
|
||||||
#define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030
|
#define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030
|
||||||
#define QMI_WLFW_VBATT_REQ_V01 0x0032
|
#define QMI_WLFW_VBATT_REQ_V01 0x0032
|
||||||
|
#define QMI_WLFW_MAC_ADDR_REQ_V01 0x0033
|
||||||
#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
|
||||||
#define QMI_WLFW_CAL_DOWNLOAD_REQ_V01 0x0027
|
#define QMI_WLFW_CAL_DOWNLOAD_REQ_V01 0x0027
|
||||||
|
@ -57,6 +59,8 @@
|
||||||
#define QMI_WLFW_MAX_TIMESTAMP_LEN_V01 32
|
#define QMI_WLFW_MAX_TIMESTAMP_LEN_V01 32
|
||||||
#define QMI_WLFW_MAX_STR_LEN_V01 16
|
#define QMI_WLFW_MAX_STR_LEN_V01 16
|
||||||
#define QMI_WLFW_MAX_NUM_SHADOW_REG_V01 24
|
#define QMI_WLFW_MAX_NUM_SHADOW_REG_V01 24
|
||||||
|
#define QMI_WLFW_MAC_ADDR_SIZE_V01 6
|
||||||
|
#define QMI_WLFW_MAX_BUILD_ID_LEN_V01 128
|
||||||
#define QMI_WLFW_MAX_NUM_SVC_V01 24
|
#define QMI_WLFW_MAX_NUM_SVC_V01 24
|
||||||
|
|
||||||
enum wlfw_driver_mode_enum_v01 {
|
enum wlfw_driver_mode_enum_v01 {
|
||||||
|
@ -99,6 +103,7 @@ enum wlfw_pipedir_enum_v01 {
|
||||||
|
|
||||||
#define QMI_WLFW_ALREADY_REGISTERED_V01 ((uint64_t)0x01ULL)
|
#define QMI_WLFW_ALREADY_REGISTERED_V01 ((uint64_t)0x01ULL)
|
||||||
#define QMI_WLFW_FW_READY_V01 ((uint64_t)0x02ULL)
|
#define QMI_WLFW_FW_READY_V01 ((uint64_t)0x02ULL)
|
||||||
|
#define QMI_WLFW_MSA_READY_V01 ((uint64_t)0x04ULL)
|
||||||
|
|
||||||
struct wlfw_ce_tgt_pipe_cfg_s_v01 {
|
struct wlfw_ce_tgt_pipe_cfg_s_v01 {
|
||||||
uint32_t pipe_num;
|
uint32_t pipe_num;
|
||||||
|
@ -243,8 +248,10 @@ struct wlfw_cap_resp_msg_v01 {
|
||||||
struct wlfw_soc_info_s_v01 soc_info;
|
struct wlfw_soc_info_s_v01 soc_info;
|
||||||
uint8_t fw_version_info_valid;
|
uint8_t fw_version_info_valid;
|
||||||
struct wlfw_fw_version_info_s_v01 fw_version_info;
|
struct wlfw_fw_version_info_s_v01 fw_version_info;
|
||||||
|
uint8_t fw_build_id_valid;
|
||||||
|
char fw_build_id[QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1];
|
||||||
};
|
};
|
||||||
#define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 72
|
#define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 203
|
||||||
extern struct elem_info wlfw_cap_resp_msg_v01_ei[];
|
extern struct elem_info wlfw_cap_resp_msg_v01_ei[];
|
||||||
|
|
||||||
struct wlfw_bdf_download_req_msg_v01 {
|
struct wlfw_bdf_download_req_msg_v01 {
|
||||||
|
@ -428,4 +435,17 @@ struct wlfw_vbatt_resp_msg_v01 {
|
||||||
#define WLFW_VBATT_RESP_MSG_V01_MAX_MSG_LEN 7
|
#define WLFW_VBATT_RESP_MSG_V01_MAX_MSG_LEN 7
|
||||||
extern struct elem_info wlfw_vbatt_resp_msg_v01_ei[];
|
extern struct elem_info wlfw_vbatt_resp_msg_v01_ei[];
|
||||||
|
|
||||||
|
struct wlfw_mac_addr_req_msg_v01 {
|
||||||
|
uint8_t mac_addr_valid;
|
||||||
|
uint8_t mac_addr[QMI_WLFW_MAC_ADDR_SIZE_V01];
|
||||||
|
};
|
||||||
|
#define WLFW_MAC_ADDR_REQ_MSG_V01_MAX_MSG_LEN 9
|
||||||
|
extern struct elem_info wlfw_mac_addr_req_msg_v01_ei[];
|
||||||
|
|
||||||
|
struct wlfw_mac_addr_resp_msg_v01 {
|
||||||
|
struct qmi_response_type_v01 resp;
|
||||||
|
};
|
||||||
|
#define WLFW_MAC_ADDR_RESP_MSG_V01_MAX_MSG_LEN 7
|
||||||
|
extern struct elem_info wlfw_mac_addr_resp_msg_v01_ei[];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue