/*************************************************************************** * SoftGemini_EnableProtectiveMode * **************************************************************************** * DESCRIPTION: Activated when FW inform us that protective mode is ON * * * INPUTS: pSoftGemini - the object * ***************************************************************************/ void SoftGemini_EnableProtectiveMode(TI_HANDLE hSoftGemini) { SoftGemini_t *pSoftGemini = (SoftGemini_t *)hSoftGemini; paramInfo_t param; pSoftGemini->bProtectiveMode = TI_TRUE; /* set new configurations of SG roaming parameters */ /* This code should be removed on SG stage 2 integration currBSS_SGconfigureBSSLoss(pSoftGemini->hCurrBss,pSoftGemini->BSSLossCompensationPercent,TI_TRUE); */ /* set new configurations of scan to scancncn */ scanCncn_SGconfigureScanParams(pSoftGemini->hScanCncn,TI_TRUE, (TI_UINT8)pSoftGemini->SoftGeminiParam.coexParams[SOFT_GEMINI_AUTO_SCAN_PROBE_REQ], pSoftGemini->SoftGeminiParam.coexParams[SOFT_GEMINI_HV3_MAX_OVERRIDE], pSoftGemini->SoftGeminiParam.coexParams[SOFT_GEMINI_ACTIVE_SCAN_DURATION_FACTOR_HV3]); /* Call the power manager to enter short doze */ TRACE0(pSoftGemini->hReport, REPORT_SEVERITY_INFORMATION, " SoftGemini_EnableProtectiveMode set SD"); /* Set Params to Power Mgr for SG priority */ param.paramType = POWER_MGR_POWER_MODE; param.content.powerMngPowerMode.PowerMode = POWER_MODE_SHORT_DOZE; param.content.powerMngPowerMode.PowerMngPriority = POWER_MANAGER_SG_PRIORITY; powerMgr_setParam(pSoftGemini->hPowerMgr,¶m); }
void SoftGemini_RemoveProtectiveModeParameters(TI_HANDLE hSoftGemini) { SoftGemini_t *pSoftGemini = (SoftGemini_t *)hSoftGemini; paramInfo_t param; /* don't use the SG roaming parameters */ currBSS_SGconfigureBSSLoss(pSoftGemini->hCurrBss,0,TI_FALSE); /* don't use the SG scan parameters */ scanCncn_SGconfigureScanParams(pSoftGemini->hScanCncn,TI_FALSE,0,0,0); /* Call the power manager to exit short doze */ /* Set Params to Power Mgr for SG priority */ param.paramType = POWER_MGR_POWER_MODE; param.content.powerMngPowerMode.PowerMode = POWER_MODE_PS_ONLY; param.content.powerMngPowerMode.PowerMngPriority = POWER_MANAGER_SG_PRIORITY; powerMgr_setParam(pSoftGemini->hPowerMgr,¶m); }
/*********************************************************************** * SoftGemini_setParam *********************************************************************** DESCRIPTION: SoftGemini set param function, called by the following: - config mgr in order to set a parameter receiving from the OS abstraction layer. - From inside the driver INPUT: hSoftGemini - SoftGemini handle. pParam - Pointer to the parameter OUTPUT: RETURN: TI_OK on success, TI_NOK otherwise ************************************************************************/ TI_STATUS SoftGemini_setParam(TI_HANDLE hSoftGemini, paramInfo_t *pParam) { SoftGemini_t *pSoftGemini = (SoftGemini_t *)hSoftGemini; TI_STATUS return_value = TI_OK; TRACE1(pSoftGemini->hReport, REPORT_SEVERITY_INFORMATION, " SoftGemini_setParam() (0x%x)\n", pParam->paramType); switch(pParam->paramType) { case SOFT_GEMINI_SET_ENABLE: return_value = SoftGemini_setEnableParam(hSoftGemini,pParam->content.SoftGeminiEnable, TI_FALSE); break; case SOFT_GEMINI_SET_CONFIG: /* copy new params to SoftGemini module */ SoftGemini_setConfigParam(hSoftGemini,pParam->content.SoftGeminiParamArray); /* set new params to FW */ return_value = SoftGemini_setParamsToFW(hSoftGemini, &(pSoftGemini->SoftGeminiParam)); if (pSoftGemini->bProtectiveMode == TI_TRUE) { /* set new configurations of scan to scancncn */ scanCncn_SGconfigureScanParams(pSoftGemini->hScanCncn,TI_TRUE, (TI_UINT8)pSoftGemini->SoftGeminiParam.coexParams[SOFT_GEMINI_AUTO_SCAN_PROBE_REQ], pSoftGemini->SoftGeminiParam.coexParams[SOFT_GEMINI_HV3_MAX_OVERRIDE], pSoftGemini->SoftGeminiParam.coexParams[SOFT_GEMINI_ACTIVE_SCAN_DURATION_FACTOR_HV3]); } break; default: TRACE1(pSoftGemini->hReport, REPORT_SEVERITY_ERROR, " SoftGemini_setParam(), Params is not supported, %d\n\n", pParam->paramType); return PARAM_NOT_SUPPORTED; } return return_value; }