summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SME/src/pmc/pmc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/CORE/SME/src/pmc/pmc.c b/CORE/SME/src/pmc/pmc.c
index 9dd91d13fbb2..b9d31e5848af 100644
--- a/CORE/SME/src/pmc/pmc.c
+++ b/CORE/SME/src/pmc/pmc.c
@@ -2246,8 +2246,9 @@ tANI_BOOLEAN pmcProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand )
break;
case eSmeCommandExitBmps:
- if( BMPS == pMac->pmc.pmcState )
+ if(( BMPS == pMac->pmc.pmcState ) || (UAPSD == pMac->pmc.pmcState))
{
+ tPmcState origState = pMac->pmc.pmcState;
pMac->pmc.requestFullPowerPending = FALSE;
status = pmcSendMessage( pMac, eWNI_PMC_EXIT_BMPS_REQ,
@@ -2261,6 +2262,7 @@ tANI_BOOLEAN pmcProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand )
}
else
{
+ pMac->pmc.pmcState = origState;
pmcLog(pMac, LOGE, FL("eWNI_PMC_EXIT_BMPS_REQ fail to be sent to PE status %d"), status);
pmcEnterFullPowerState(pMac);
}