VOS_VOID TAF_APS_Proc1xToHrpdHandOff( VOS_UINT8 ucPdpId, VOS_UINT8 ucIsNewSession ) { if (TAF_APS_TIMER_STATUS_RUNING == TAF_APS_GetTimerStatus(TI_TAF_APS_CDATA_DORMANT, ucPdpId)) { TAF_APS_StopTimer(TI_TAF_APS_CDATA_DORMANT, ucPdpId); } /* 从1X切换到HRPD */ if (VOS_TRUE == ucIsNewSession) { /* 更新当前建立数据服务的模式 */ TAF_APS_SetCurrPdpEntityDataServiceMode(TAF_APS_RAT_TYPE_HRPD); /* 通知外部模块当前的PS服务所在的模式 */ TAF_APS_SndExternalModulePsRatTypeNtf(TAF_APS_RAT_TYPE_HRPD); } else { /* 发送内部1X到HRPD切换请求消息 */ TAF_APS_SndInter1XToHrpdHandOffReq(ucPdpId); } return; }
VOS_VOID TAF_APS_StartDsFlowRpt( VOS_VOID ) { TAF_APS_TIMER_STATUS_ENUM_U8 enTimerStatus; /* 如果当前流量上报定时器正在运行,先停止定时器 */ enTimerStatus = TAF_APS_GetTimerStatus(TI_TAF_APS_DSFLOW_REPORT, TAF_APS_INVALID_PDPID); if (TAF_APS_TIMER_STATUS_RUNING == enTimerStatus) { TAF_APS_StopTimer(TI_TAF_APS_DSFLOW_REPORT, TAF_APS_INVALID_PDPID); } /* 判断当前是否有RAB激活 */ if (VOS_TRUE == TAF_APS_CheckIfActiveRabIdExist()) { /* 依次轮询所有RABID,刷新已激活RAB的当前连接流量信息 */ TAF_APS_UpdateAllRabCurrentFlowInfo(); /* 启动流量上报定时器 */ TAF_APS_StartTimer(TI_TAF_APS_DSFLOW_REPORT, TI_TAF_APS_DSFLOW_REPORT_LEN, TAF_APS_INVALID_PDPID); } return; }
VOS_VOID TAF_APS_StopDsFlowRpt( VOS_VOID ) { TAF_APS_TIMER_STATUS_ENUM_U8 enTimerStatus; /* 如果当前流量上报定时器正在运行,停止定时器 */ enTimerStatus = TAF_APS_GetTimerStatus(TI_TAF_APS_DSFLOW_REPORT, TAF_APS_INVALID_PDPID); if (TAF_APS_TIMER_STATUS_RUNING == enTimerStatus) { TAF_APS_StopTimer(TI_TAF_APS_DSFLOW_REPORT, TAF_APS_INVALID_PDPID); } return; }
VOS_VOID TAF_APS_SetDfsMax(VOS_VOID) { TAF_APS_SWITCH_DDR_RATE_INFO_STRU *pstSwitchDdrInfo; TAF_APS_TIMER_STATUS_ENUM_U8 enTimerStatus; pstSwitchDdrInfo = TAF_APS_GetSwitchDdrRateInfoAddr(); /* 调频功能不支持,则什么都不处理 */ if (0 == TAF_APS_GET_DFS_PROFILE_NUM()) { return; } /* 当前流量定时器没有启动,什么都不处理 */ enTimerStatus = TAF_APS_GetTimerStatus(TI_TAF_APS_DSFLOW_REPORT, TAF_APS_INVALID_PDPID); if (TAF_APS_TIMER_STATUS_RUNING != enTimerStatus) { return; } /* 已经是最高档位,不再调节 */ if (TAF_APS_GET_DSFLOW_MAX_DDR_BAND() == pstSwitchDdrInfo->ulReqValue) { return; } /* 直接将DDR调到最高一档 */ if (PWRCTRL_GET_SUCCESS != PWRCTRL_DfsQosUpdate(DFS_QOS_ID_DDR_MINFREQ_E, (BSP_S32)pstSwitchDdrInfo->iDfsReqId, (BSP_U32)TAF_APS_GET_DSFLOW_MAX_DDR_BAND())) { TAF_APS_DFS_UPDATE_FAIL_CNT(1); TAF_APS_SndOmDfsInfo(pstSwitchDdrInfo); return; } pstSwitchDdrInfo->ulReqValue = TAF_APS_GET_DSFLOW_MAX_DDR_BAND(); pstSwitchDdrInfo->ulSetMaxFlag = VOS_TRUE; TAF_APS_DFS_UPDATE_SUCC_CNT(1); DRV_PWRCTRL_SLEEPVOTE_LOCK(PWRCTRL_SLEEP_DSFLOW); TAF_APS_SndOmDfsInfo(pstSwitchDdrInfo); return; }