qca-wifi: CFR: LUT ageout timer fixes
In CFR error handling lut ageout timer, following fixes are made - 1. Fire error handling timer every 3 secs 2. Start/Stop timer only when pdev->cfr_rcc_mode transitions from enable to disable and vice versa 3. Stop/Free timer during deinit of pdev, incase user issues wifi down without disabling cfr Change-Id: I2f9819706d1440d675edfdd933839dbc3ebddbb0
This commit is contained in:

committed by
Adwait Nayak

parent
17b9bae759
commit
cc9e0e7376
@@ -1462,6 +1462,8 @@ static os_timer_func(lut_ageout_timer_task)
|
||||
}
|
||||
}
|
||||
|
||||
if (pcfr->lut_timer_init)
|
||||
qdf_timer_mod(&pcfr->lut_age_timer, LUT_AGE_TIMER);
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_CFR_ID);
|
||||
}
|
||||
|
||||
@@ -1479,7 +1481,9 @@ QDF_STATUS target_if_cfr_start_lut_age_timer(struct wlan_objmgr_pdev *pdev)
|
||||
pcfr = wlan_objmgr_pdev_get_comp_private_obj(pdev,
|
||||
WLAN_UMAC_COMP_CFR);
|
||||
|
||||
qdf_timer_mod(&pcfr->lut_age_timer, LUT_AGE_TIMER);
|
||||
if (pcfr->lut_timer_init)
|
||||
qdf_timer_mod(&pcfr->lut_age_timer, LUT_AGE_TIMER);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1497,7 +1501,9 @@ QDF_STATUS target_if_cfr_stop_lut_age_timer(struct wlan_objmgr_pdev *pdev)
|
||||
pcfr = wlan_objmgr_pdev_get_comp_private_obj(pdev,
|
||||
WLAN_UMAC_COMP_CFR);
|
||||
|
||||
qdf_timer_stop(&pcfr->lut_age_timer);
|
||||
if (pcfr->lut_timer_init)
|
||||
qdf_timer_stop(&pcfr->lut_age_timer);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1598,6 +1604,7 @@ QDF_STATUS cfr_6018_deinit_pdev(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
|
||||
if (pcfr->lut_timer_init) {
|
||||
qdf_timer_stop(&pcfr->lut_age_timer);
|
||||
qdf_timer_free(&(pcfr->lut_age_timer));
|
||||
pcfr->lut_timer_init = 0;
|
||||
}
|
||||
|
@@ -919,6 +919,7 @@ QDF_STATUS ucfg_cfr_committed_rcc_config(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct pdev_cfr *pcfr = NULL;
|
||||
struct wlan_objmgr_pdev *pdev = NULL;
|
||||
struct wlan_objmgr_psoc *psoc = NULL;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
struct cdp_monitor_filter filter_val = {0};
|
||||
|
||||
@@ -926,6 +927,12 @@ QDF_STATUS ucfg_cfr_committed_rcc_config(struct wlan_objmgr_vdev *vdev)
|
||||
if (status != QDF_STATUS_SUCCESS)
|
||||
return status;
|
||||
|
||||
psoc = wlan_pdev_get_psoc(pdev);
|
||||
|
||||
if (!psoc) {
|
||||
cfr_err("psoc is null!");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
/*
|
||||
* If capture mode is valid, then Host:
|
||||
* Subscribes for PPDU status TLVs in monitor status ring.
|
||||
@@ -990,11 +997,15 @@ QDF_STATUS ucfg_cfr_committed_rcc_config(struct wlan_objmgr_vdev *vdev)
|
||||
filter_val.fp_ctrl |= FILTER_CTRL_VHT_NDP;
|
||||
}
|
||||
|
||||
if (!cdp_get_cfr_rcc(wlan_psoc_get_dp_handle(psoc),
|
||||
wlan_objmgr_pdev_get_pdev_id(pdev)))
|
||||
tgt_cfr_start_lut_age_timer(pdev);
|
||||
cfr_set_filter(pdev, 1, &filter_val);
|
||||
tgt_cfr_start_lut_age_timer(pdev);
|
||||
} else {
|
||||
if (cdp_get_cfr_rcc(wlan_psoc_get_dp_handle(psoc),
|
||||
wlan_objmgr_pdev_get_pdev_id(pdev)))
|
||||
tgt_cfr_stop_lut_age_timer(pdev);
|
||||
cfr_set_filter(pdev, 0, &filter_val);
|
||||
tgt_cfr_stop_lut_age_timer(pdev);
|
||||
}
|
||||
|
||||
/* Trigger wmi to start the TLV processing. */
|
||||
|
Reference in New Issue
Block a user