|
@@ -602,6 +602,7 @@ void target_if_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf)
|
|
QDF_STATUS retval = 0;
|
|
QDF_STATUS retval = 0;
|
|
struct wlan_lmac_if_cfr_rx_ops *cfr_rx_ops = NULL;
|
|
struct wlan_lmac_if_cfr_rx_ops *cfr_rx_ops = NULL;
|
|
struct cfr_metadata_version_3 *meta = NULL;
|
|
struct cfr_metadata_version_3 *meta = NULL;
|
|
|
|
+ uint8_t srng_id = 0;
|
|
|
|
|
|
if (qdf_unlikely(!pdev)) {
|
|
if (qdf_unlikely(!pdev)) {
|
|
cfr_err("pdev is null\n");
|
|
cfr_err("pdev is null\n");
|
|
@@ -640,9 +641,9 @@ void target_if_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf)
|
|
buf_addr = (cfr_info->rtt_che_buffer_pointer_low32 |
|
|
buf_addr = (cfr_info->rtt_che_buffer_pointer_low32 |
|
|
((uint64_t)buf_addr_extn << 32));
|
|
((uint64_t)buf_addr_extn << 32));
|
|
|
|
|
|
-
|
|
|
|
|
|
+ srng_id = pcfr->rcc_param.srng_id;
|
|
if (target_if_dbr_cookie_lookup(pdev, DBR_MODULE_CFR, buf_addr,
|
|
if (target_if_dbr_cookie_lookup(pdev, DBR_MODULE_CFR, buf_addr,
|
|
- &cookie, 0)) {
|
|
|
|
|
|
+ &cookie, srng_id)) {
|
|
cfr_debug("Cookie lookup failure for addr: 0x%pK",
|
|
cfr_debug("Cookie lookup failure for addr: 0x%pK",
|
|
(void *)((uintptr_t)buf_addr));
|
|
(void *)((uintptr_t)buf_addr));
|
|
goto relref;
|
|
goto relref;
|
|
@@ -741,7 +742,7 @@ void target_if_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf)
|
|
dump_metadata(header, cookie);
|
|
dump_metadata(header, cookie);
|
|
release_lut_entry_enh(pdev, lut);
|
|
release_lut_entry_enh(pdev, lut);
|
|
target_if_dbr_buf_release(pdev, DBR_MODULE_CFR, buf_addr,
|
|
target_if_dbr_buf_release(pdev, DBR_MODULE_CFR, buf_addr,
|
|
- cookie, 0);
|
|
|
|
|
|
+ cookie, srng_id);
|
|
cfr_debug("Data sent to upper layers, release look up table");
|
|
cfr_debug("Data sent to upper layers, release look up table");
|
|
} else if (status == STATUS_HOLD) {
|
|
} else if (status == STATUS_HOLD) {
|
|
cfr_debug("HOLD for buffer address: 0x%pK cookie: %u",
|
|
cfr_debug("HOLD for buffer address: 0x%pK cookie: %u",
|
|
@@ -1364,6 +1365,7 @@ static os_timer_func(lut_ageout_timer_task)
|
|
struct wlan_objmgr_pdev *pdev = NULL;
|
|
struct wlan_objmgr_pdev *pdev = NULL;
|
|
struct look_up_table *lut = NULL;
|
|
struct look_up_table *lut = NULL;
|
|
uint64_t diff, cur_tstamp;
|
|
uint64_t diff, cur_tstamp;
|
|
|
|
+ uint8_t srng_id = 0;
|
|
|
|
|
|
OS_GET_TIMER_ARG(pcfr, struct pdev_cfr*);
|
|
OS_GET_TIMER_ARG(pcfr, struct pdev_cfr*);
|
|
|
|
|
|
@@ -1378,6 +1380,7 @@ static os_timer_func(lut_ageout_timer_task)
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ srng_id = pcfr->rcc_param.srng_id;
|
|
if (wlan_objmgr_pdev_try_get_ref(pdev, WLAN_CFR_ID)
|
|
if (wlan_objmgr_pdev_try_get_ref(pdev, WLAN_CFR_ID)
|
|
!= QDF_STATUS_SUCCESS) {
|
|
!= QDF_STATUS_SUCCESS) {
|
|
cfr_err("failed to get pdev reference");
|
|
cfr_err("failed to get pdev reference");
|
|
@@ -1402,7 +1405,7 @@ static os_timer_func(lut_ageout_timer_task)
|
|
(void *)((uintptr_t)lut->dbr_address));
|
|
(void *)((uintptr_t)lut->dbr_address));
|
|
target_if_dbr_buf_release(pdev, DBR_MODULE_CFR,
|
|
target_if_dbr_buf_release(pdev, DBR_MODULE_CFR,
|
|
lut->dbr_address,
|
|
lut->dbr_address,
|
|
- i, 0);
|
|
|
|
|
|
+ i, srng_id);
|
|
pcfr->flush_timeout_dbr_cnt++;
|
|
pcfr->flush_timeout_dbr_cnt++;
|
|
release_lut_entry_enh(pdev, lut);
|
|
release_lut_entry_enh(pdev, lut);
|
|
}
|
|
}
|
|
@@ -1560,6 +1563,8 @@ QDF_STATUS cfr_6018_init_pdev(struct wlan_objmgr_psoc *psoc,
|
|
pcfr->rcc_param.pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
|
|
pcfr->rcc_param.pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
|
|
pcfr->rcc_param.modified_in_curr_session = MAX_RESET_CFG_ENTRY;
|
|
pcfr->rcc_param.modified_in_curr_session = MAX_RESET_CFG_ENTRY;
|
|
pcfr->rcc_param.num_grp_tlvs = MAX_TA_RA_ENTRIES;
|
|
pcfr->rcc_param.num_grp_tlvs = MAX_TA_RA_ENTRIES;
|
|
|
|
+ pcfr->rcc_param.vdev_id = CFR_INVALID_VDEV_ID;
|
|
|
|
+ pcfr->rcc_param.srng_id = 0;
|
|
|
|
|
|
target_if_cfr_default_ta_ra_config(&pcfr->rcc_param,
|
|
target_if_cfr_default_ta_ra_config(&pcfr->rcc_param,
|
|
true, MAX_RESET_CFG_ENTRY);
|
|
true, MAX_RESET_CFG_ENTRY);
|