From d2175bc557f14fe8e1f61b8a747749ef77816c81 Mon Sep 17 00:00:00 2001 From: nakul kachhwaha Date: Thu, 24 Oct 2019 17:59:48 +0530 Subject: [PATCH] qcacld-3.0: Fix data stall during TDLS Offchan Operation In non concurrency scenario with TDLS Offchan link, FW is sending two pauses namely PAUSE_TYPE_CHOP and PAUSE_TYPE_CHOP_TDLS_OFFCHAN back to back when DUT dwells between TDLS Off channel and AP channel respectively. HOST handles these events as vdev based event instead of peer based event and remove all the tx queues from scheduler for all the peer irrespective of the pause type. This will lead to data stall in TDLS offchan scenarios, as at any point of time, host will be receiving one of the two pauses and keep its peer queues out of scheduler. Changes are done to decouple the handling of pause/unpause events for TDLS peers with Offchan enabled from vdev based pause/unpause. TDLS peers will be paused/unpaused based on PAUSE_TYPE_CHOP_TDLS_OFFCHAN pause type. Other pause/unpause events will be handled as usual. Change-Id: Iccb46fd6d121d5df6d53633c9978ddc8e02f588f CRs-Fixed: 2558612 --- pmo/core/src/wlan_pmo_suspend_resume.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pmo/core/src/wlan_pmo_suspend_resume.c b/pmo/core/src/wlan_pmo_suspend_resume.c index f2de7cc44b..1cac0e8080 100644 --- a/pmo/core/src/wlan_pmo_suspend_resume.c +++ b/pmo/core/src/wlan_pmo_suspend_resume.c @@ -655,7 +655,7 @@ static void pmo_unpause_all_vdev(struct wlan_objmgr_psoc *psoc, if (pmo_core_vdev_get_pause_bitmap(psoc_ctx, vdev_id)) { cdp_fc_vdev_unpause(pmo_core_psoc_get_dp_handle(psoc), vdev_dp, - 0xffffffff); + 0xffffffff, 0); if (psoc_ctx->pause_bitmap_notifier) psoc_ctx->pause_bitmap_notifier(vdev_id, 0); }