qcacld-3.0: correct rso_timer_stopped status

Currently host starts the start_rso_stop_timer when it sends roam
stop related commands to firmware. And tries to stop the timer when
it receives roam event with reason ROAM_REASON_RSO_STATUS or
ROAM_REASON_HO_FAILED. Since firmware also sends roam event with
above reasons when host configs other roam parameters. This causes
host confused about whether to stop the timer or not.

To resolve this issue, add one more condition
roam_event->notif_params == WMI_ROAM_SCAN_MODE_NONE

Change-Id: Ia24d5bba1e35bc4102951adcafc76edda7769d35
CRs-Fixed: 3267506
这个提交包含在:
Paul Zhang
2022-08-15 14:44:50 +08:00
提交者 Madan Koyyalamudi
父节点 fa947d9a0a
当前提交 8aee5c59f0
修改 3 个文件,包含 6 行新增4 行删除

查看文件

@@ -122,7 +122,8 @@ int target_if_cm_roam_event(ol_scn_t scn, uint8_t *event, uint32_t len)
* Stop the timer upon RSO stop status success. The timer shall continue
* to run upon HO_FAIL status and would be stopped upon HO_FAILED event
*/
if (roam_event->reason == ROAM_REASON_RSO_STATUS ||
if ((roam_event->reason == ROAM_REASON_RSO_STATUS &&
roam_event->notif_params == WMI_ROAM_SCAN_MODE_NONE) ||
roam_event->reason == ROAM_REASON_HO_FAILED)
target_if_stop_rso_stop_timer(roam_event);

查看文件

@@ -1320,7 +1320,7 @@ target_if_stop_rso_stop_timer(struct roam_offload_roam_event *roam_event)
if (!qdf_atomic_test_bit(RSO_STOP_RESPONSE_BIT,
&vdev_rsp->rsp_status)) {
roam_event->rso_timer_stopped = true;
mlme_debug("rso stop timer is not started");
return QDF_STATUS_SUCCESS;
}