qcacmn: Add support for checksum from FW for pktlog
If the FW sends a pktlog checksum in the FW ready event, store that in pl_dev and use it as buf_hdr.version in the pktlog buffer header. Also, use a new magic value to identify the checksum in the buf_hdr.version field. If the FW does not send the checksum, then the existing magic number and standard version number would be maintained. Change-Id: Ib08c093a9b54495a2c5b7e0e163207f2b1eb4ce2 CRs-Fixed: 2508828
This commit is contained in:

committad av
nshrivas

förälder
a33e6a8ea7
incheckning
3e31e2babd
@@ -215,6 +215,7 @@ struct tgt_info {
|
||||
* @sw_version_check: Checks the SW version
|
||||
* @smart_log_enable: Enable Smart Logs feature
|
||||
* @cfr_support_enable: CFR support enable
|
||||
* @set_pktlog_checksum: Set the pktlog checksum from FW ready event to pl_dev
|
||||
*/
|
||||
struct target_ops {
|
||||
QDF_STATUS (*ext_resource_config_enable)
|
||||
@@ -275,6 +276,8 @@ struct target_ops {
|
||||
void (*cfr_support_enable)
|
||||
(struct wlan_objmgr_psoc *psoc,
|
||||
struct target_psoc_info *tgt_info, uint8_t *event);
|
||||
void (*set_pktlog_checksum)
|
||||
(struct wlan_objmgr_pdev *pdev, uint32_t checksum);
|
||||
};
|
||||
|
||||
|
||||
@@ -1770,6 +1773,24 @@ static inline void target_if_cfr_support_enable(struct wlan_objmgr_psoc *psoc,
|
||||
tgt_hdl->tif_ops->cfr_support_enable(psoc, tgt_hdl, evt_buf);
|
||||
}
|
||||
|
||||
/**
|
||||
* target_if_set_pktlog_checksum - Set pktlog checksum
|
||||
* @pdev: pdev object
|
||||
* @tgt_hdl: target_psoc_info pointer
|
||||
* @checksum: checksum received from FW
|
||||
*
|
||||
* API to set pktlog checksum
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static inline void target_if_set_pktlog_checksum(struct wlan_objmgr_pdev *pdev,
|
||||
struct target_psoc_info *tgt_hdl, uint32_t checksum)
|
||||
{
|
||||
if ((tgt_hdl->tif_ops) &&
|
||||
(tgt_hdl->tif_ops->set_pktlog_checksum))
|
||||
tgt_hdl->tif_ops->set_pktlog_checksum(pdev, checksum);
|
||||
}
|
||||
|
||||
/**
|
||||
* target_if_atf_cfg_enable - Enable ATF config
|
||||
* @psoc: psoc object
|
||||
|
@@ -446,6 +446,22 @@ static int init_deinit_ready_event_handler(ol_scn_t scn_handle,
|
||||
}
|
||||
|
||||
num_radios = target_psoc_get_num_radios(tgt_hdl);
|
||||
|
||||
if (ready_ev.pktlog_defs_checksum) {
|
||||
for (i = 0; i < num_radios; i++) {
|
||||
pdev = wlan_objmgr_get_pdev_by_id(psoc, i,
|
||||
WLAN_INIT_DEINIT_ID);
|
||||
if (!pdev) {
|
||||
target_if_err(" PDEV %d is NULL", i);
|
||||
return -EINVAL;
|
||||
}
|
||||
target_if_set_pktlog_checksum(pdev, tgt_hdl,
|
||||
ready_ev.
|
||||
pktlog_defs_checksum);
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_INIT_DEINIT_ID);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For non-legacy HW, MAC addr list is extracted.
|
||||
*/
|
||||
|
@@ -7108,6 +7108,10 @@ struct coex_config_params {
|
||||
* radar detection, concurrently with using another radio
|
||||
* chain for non-160 MHz regular operation.
|
||||
* @max_ast_index: Max number of AST entries that FW could allocate.
|
||||
* @pktlog_defs_checksum: checksum computed from the definitions of the enums
|
||||
* and structs used within pktlog traces. This is sent
|
||||
* from the FW as part of FW ready event and needs
|
||||
* to be embedded in the pktlog buffer header as version.
|
||||
*/
|
||||
struct wmi_host_ready_ev_param {
|
||||
uint32_t status;
|
||||
@@ -7117,6 +7121,7 @@ struct wmi_host_ready_ev_param {
|
||||
uint32_t num_extra_peer;
|
||||
bool agile_capability;
|
||||
uint32_t max_ast_index;
|
||||
uint32_t pktlog_defs_checksum;
|
||||
};
|
||||
|
||||
enum bcn_offload_control_param {
|
||||
|
@@ -8443,6 +8443,7 @@ static QDF_STATUS extract_ready_event_params_tlv(wmi_unified_t wmi_handle,
|
||||
* as per aDFS FR
|
||||
*/
|
||||
ev_param->max_ast_index = ev->max_ast_index;
|
||||
ev_param->pktlog_defs_checksum = ev->pktlog_defs_checksum;
|
||||
ev_param->agile_capability = 1;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
Referens i nytt ärende
Block a user