summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Chang <schang@qca.qualcomm.com>2014-03-03 19:49:28 -0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-03-10 16:07:57 -0700
commit990c4d72fa3a210e9d6d2dc16ec039d676d5e010 (patch)
tree893c676a8fd600ba0b539242e00a133394db23a6
parentcd4e99cb44909c6d5223d544f6d90eea5f7ca76b (diff)
wlan: Unpause all vdev when system resume
When system in SUSPEND state, FW could not send PAUSE/UNPAUSE event to host. Then host might lost VDEV PAUSE/UNPAUSE state. This may end up with VDEV data stall. To prevent data stall due to system SUSPEND/RESUME, when system RESUME, by default UNPAUSE all VDEV Q. Change-Id: Ide552078828472d4c3127914094581f492fc128c CRs-fixed: 625754
-rw-r--r--CORE/SERVICES/WMA/wma.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 6ae193a1bc4c..481072cddf49 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -12788,6 +12788,14 @@ static VOS_STATUS wma_resume_req(tp_wma_handle wma, tpSirWlanResumeParam info)
if (!wma->interfaces[vdev_id].handle)
continue;
+#ifdef QCA_SUPPORT_TXRX_VDEV_PAUSE_LL
+ /* When host resume, by default, unpause all active vdev */
+ if (wma->interfaces[vdev_id].pause_bitmap) {
+ wdi_in_vdev_unpause(wma->interfaces[vdev_id].handle);
+ wma->interfaces[vdev_id].pause_bitmap = 0;
+ }
+#endif /* QCA_SUPPORT_TXRX_VDEV_PAUSE_LL */
+
iface = &wma->interfaces[vdev_id];
iface->conn_state = FALSE;
}