summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Zhang <paulz@qti.qualcomm.com>2015-11-23 17:37:38 +0800
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-11-24 15:20:03 +0530
commit9cc4b210302578e196bfcda6388613f9823ae533 (patch)
tree661ac0637bfeb61c65029baebf801383ffa0e537
parentca263a66e2dcec144497f177bd4f05d0e0f68e6f (diff)
qcacld: Clear WoW wakeup pattern configuration
Since once one bit was set in wow_wakeup_disable_mask, the bit won't be cleared any more even it is also set in wow_wakeup_enable_mask later. Such as WOW_PATTERN_MATCH_EVENT bit, it causes the fw dropping the frame instead of waking up the host driver. To mitigate the issue, clear the conflict bit for wow_wakeup_enable_mask and wow_wakeup_disable_mask. Change-Id: Ia5ebd7e7874e07fb3ddcb696611bea565c6bd1b0 CRs-Fixed: 942667
-rw-r--r--CORE/SERVICES/WMA/wma.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 1416c8962298..dbc88f39ed46 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -20054,10 +20054,13 @@ static void wma_add_wow_wakeup_event(tp_wma_handle wma,
WOW_WAKE_EVENT_TYPE event,
v_BOOL_t enable)
{
- if (enable)
+ if (enable) {
wma->wow_wakeup_enable_mask |= 1 << event;
- else
+ wma->wow_wakeup_disable_mask &= ~(1 << event);
+ } else {
wma->wow_wakeup_disable_mask |= 1 << event;
+ wma->wow_wakeup_enable_mask &= ~(1 << event);
+ }
WMA_LOGD("%s %s event %s\n", __func__,
enable ? "enable" : "disable",