From 990c4d72fa3a210e9d6d2dc16ec039d676d5e010 Mon Sep 17 00:00:00 2001 From: Leo Chang Date: Mon, 3 Mar 2014 19:49:28 -0800 Subject: 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 --- CORE/SERVICES/WMA/wma.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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; } -- cgit v1.2.3