static char * dump_pmc_enter_wowl( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) { tSirSmeWowlEnterParams wowlEnterParams; tSirRetStatus status; tANI_U32 length; tANI_U8 sessionId = 0; (void) arg4; palZeroMemory(pMac->hHdd, &wowlEnterParams, sizeof(tSirSmeWowlEnterParams)); if (arg1 == 0 && arg2 == 0) { pmcLog(pMac, LOGE, "Requesting WoWL but neither magic pkt and ptrn byte matching is being enabled\n"); return p; } if(arg1 == 1) { wowlEnterParams.ucMagicPktEnable = 1; length = SIR_MAC_ADDR_LENGTH; status = wlan_cfgGetStr(pMac, WNI_CFG_STA_ID, (tANI_U8 *)wowlEnterParams.magicPtrn, &length); if (eSIR_SUCCESS != status) { pmcLog(pMac, LOGE, "Reading of WNI_CFG_STA_ID from CFG failed. Using hardcoded STA MAC Addr\n"); wowlEnterParams.magicPtrn[0] = 0x00; wowlEnterParams.magicPtrn[1] = 0x0a; wowlEnterParams.magicPtrn[2] = 0xf5; wowlEnterParams.magicPtrn[3] = 0x04; wowlEnterParams.magicPtrn[4] = 0x05; wowlEnterParams.magicPtrn[5] = 0x06; } } if(arg2 == 1) { wowlEnterParams.ucPatternFilteringEnable = 1; } if(arg3 == CSR_ROAM_SESSION_MAX ) { pmcLog(pMac, LOGE, "Enter valid sessionId\n"); return p; } pMac->pmc.bmpsEnabled = TRUE; pMac->pmc.wowlEnabled = TRUE; sessionId = (tANI_U8 ) arg3; #ifdef WLAN_WAKEUP_EVENTS (void)sme_EnterWowl(pMac, dump_pmc_callbackRoutine, pMac, dump_pmc_callbackRoutine2, pMac, &wowlEnterParams, sessionId); #else (void)sme_EnterWowl(pMac, dump_pmc_callbackRoutine, pMac, &wowlEnterParams, sessionId); #endif return p; }
static char * dump_pmc_state( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) { char *ptr = p; (void) arg1; (void) arg2; (void) arg3; (void) arg4; p += log_sprintf( pMac,p, "******** PMC State & Configuration ******** \n"); p += log_sprintf( pMac,p, " PMC: IMPS Enabled? %d\n", pMac->pmc.impsEnabled); p += log_sprintf( pMac,p, " PMC: Auto BMPS Timer Enabled? %d\n", pMac->pmc.autoBmpsEntryEnabled); p += log_sprintf( pMac,p, " PMC: BMPS Enabled? %d\n", pMac->pmc.bmpsEnabled); p += log_sprintf( pMac,p, " PMC: UAPSD Enabled? %d\n", pMac->pmc.uapsdEnabled); p += log_sprintf( pMac,p, " PMC: WoWL Enabled? %d\n", pMac->pmc.wowlEnabled); p += log_sprintf( pMac,p, " PMC: Standby Enabled? %d\n", pMac->pmc.standbyEnabled); p += log_sprintf( pMac,p, " PMC: Auto BMPS timer period (ms): %d\n", pMac->pmc.bmpsConfig.trafficMeasurePeriod); p += log_sprintf( pMac,p, " PMC: BMPS Listen Interval (Beacon intervals): %d\n", pMac->pmc.bmpsConfig.bmpsPeriod); p += log_sprintf( pMac,p, " PMC: Device State = %s\n", pmcGetPmcStateStr(pMac->pmc.pmcState)); p += log_sprintf( pMac,p, " PMC: RequestFullPowerPending = %d\n", pMac->pmc.requestFullPowerPending); p += log_sprintf( pMac,p, " PMC: UapsdSessionRequired = %d\n", pMac->pmc.uapsdSessionRequired); p += log_sprintf( pMac,p, " PMC: wowlModeRequired = %d\n\n", pMac->pmc.wowlModeRequired); pmcLog(pMac, LOGW, "\n%s", ptr); return p; }
static char * dump_pmc_test_Wowl( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) { tSirSmeRsp smeRsp; tSirWowlAddBcastPtrn addPattern; tSirWowlDelBcastPtrn delPattern; tSirSmeWowlEnterParams wowlEnterParams; tANI_U8 sessionId = 0; smeRsp.statusCode = eSIR_SME_SUCCESS; palZeroMemory(pMac->hHdd, &addPattern, sizeof(tSirWowlAddBcastPtrn)); palZeroMemory(pMac->hHdd, &delPattern, sizeof(tSirWowlDelBcastPtrn)); palZeroMemory(pMac->hHdd, &wowlEnterParams, sizeof(tSirSmeWowlEnterParams)); (void) arg2; (void) arg3; (void) arg4; if(arg1 == CSR_ROAM_SESSION_MAX) { pmcLog(pMac, LOGE, "dump_pmc_test_Wowl: Invalid sessionId\n"); return p; } sessionId = (tANI_U8 ) arg1; sme_WowlAddBcastPattern(pMac, &addPattern, sessionId); sme_WowlDelBcastPattern(pMac, &delPattern, sessionId); pMac->pmc.pmcState = BMPS; #ifdef WLAN_WAKEUP_EVENTS sme_EnterWowl(pMac, dump_pmc_callbackRoutine, pMac, dump_pmc_callbackRoutine2, pMac, &wowlEnterParams, sessionId); #else sme_EnterWowl(pMac, dump_pmc_callbackRoutine, pMac, &wowlEnterParams, sessionId); #endif smeRsp.messageType = eWNI_PMC_ENTER_WOWL_RSP; pmcMessageProcessor(pMac, &smeRsp); sme_ExitWowl(pMac); smeRsp.messageType = eWNI_PMC_EXIT_WOWL_RSP; pmcMessageProcessor(pMac, &smeRsp); return p; }
static char * dump_pmc_test_Wowl( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) { tSirSmeRsp smeRsp; tSirWowlAddBcastPtrn addPattern; tSirWowlDelBcastPtrn delPattern; tSirSmeWowlEnterParams wowlEnterParams; tANI_U8 sessionId = 0; smeRsp.statusCode = eSIR_SME_SUCCESS; vos_mem_set(&addPattern, sizeof(tSirWowlAddBcastPtrn), 0); vos_mem_set(&delPattern, sizeof(tSirWowlDelBcastPtrn), 0); vos_mem_set(&wowlEnterParams, sizeof(tSirSmeWowlEnterParams), 0); (void) arg2; (void) arg3; (void) arg4; if(arg1 == CSR_ROAM_SESSION_MAX) { pmcLog(pMac, LOGE, "dump_pmc_test_Wowl: Invalid sessionId\n"); return p; } sessionId = (tANI_U8 ) arg1; //Add pattern sme_WowlAddBcastPattern(pMac, &addPattern, sessionId); //Delete pattern sme_WowlDelBcastPattern(pMac, &delPattern, sessionId); //Force the device into BMPS pMac->pmc.pmcState = BMPS; //Enter Wowl #ifdef WLAN_WAKEUP_EVENTS sme_EnterWowl(pMac, dump_pmc_callbackRoutine, pMac, dump_pmc_callbackRoutine2, pMac, &wowlEnterParams, sessionId); #else // WLAN_WAKEUP_EVENTS sme_EnterWowl(pMac, dump_pmc_callbackRoutine, pMac, &wowlEnterParams, sessionId); #endif // WLAN_WAKEUP_EVENTS smeRsp.messageType = eWNI_PMC_ENTER_WOWL_RSP; pmcMessageProcessor(pMac, &smeRsp); //Exit Wowl sme_ExitWowl(pMac, eWOWL_EXIT_USER); smeRsp.messageType = eWNI_PMC_EXIT_WOWL_RSP; pmcMessageProcessor(pMac, &smeRsp); return p; }
static char * dump_pmc_remove_ptrn( tpAniSirGlobal pMac, tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3, tANI_U32 arg4, char *p) { tSirWowlDelBcastPtrn delPattern; tANI_U8 sessionId = 0; (void) arg3; (void) arg4; palZeroMemory(pMac->hHdd, &delPattern, sizeof(tSirWowlDelBcastPtrn)); if((arg1 <= 7) || (arg2 == CSR_ROAM_SESSION_MAX)) { delPattern.ucPatternId = (tANI_U8)arg1; } else { pmcLog(pMac, LOGE, "dump_pmc_remove_ptrn: Invalid pattern Id %d\n",arg1); return p; } sessionId = (tANI_U8 ) arg2; (void)pmcWowlDelBcastPattern(pMac, &delPattern, sessionId); return p; }
void dump_pmc_deviceUpdateRoutine (void *callbackContext, tPmcState pmcState) { tpAniSirGlobal pMac = (tpAniSirGlobal)callbackContext; pmcLog(pMac, LOGW, "*********Received msg from PMC: Device is in %s state\n*********", pmcGetPmcStateStr(pmcState)); }
void dump_pmc_callbackRoutine2 (void *callbackContext, tpSirWakeReasonInd pWakeReasonInd) { tpAniSirGlobal pMac = (tpAniSirGlobal)callbackContext; pmcLog(pMac, LOGW, "*********Received callback from PMC with reason = %d\n*********",pWakeReasonInd->ulReason); }
void dump_pmc_callbackRoutine (void *callbackContext, eHalStatus status) { tpAniSirGlobal pMac = (tpAniSirGlobal)callbackContext; pmcLog(pMac, LOGW, "*********Received callback from PMC with status = %d\n*********",status); }