コード例 #1
0
VOS_VOID MTC_SetModemRatMode(
    MODEM_ID_ENUM_UINT16                enModemId,
    MTC_RATMODE_ENUM_UINT8              enRatMode
)
{
    MTC_GetModemCtxAddr(enModemId)->enRatMode = enRatMode;

    return;
}
コード例 #2
0
VOS_VOID MTC_ResetModemInfo(MODEM_ID_ENUM_UINT16 enModemId)
{
    MTC_MODEM_INFO_STRU                *pstModemInfo = VOS_NULL_PTR;

    pstModemInfo = MTC_GetModemCtxAddr(enModemId);

    PS_MEM_SET(&pstModemInfo->stSerCellBandInfo, 0, sizeof(RRC_MTC_MS_BAND_INFO_STRU));
    PS_MEM_SET(&pstModemInfo->stCurBandInfo, 0, sizeof(RRC_MTC_MS_BAND_INFO_STRU));
    PS_MEM_SET(&pstModemInfo->stSrvInfo, 0, sizeof(MTC_MODEM_SERVICE_INFO_STRU));
    pstModemInfo->enRatMode = MTC_RATMODE_BUTT;

    PS_MEM_SET(&pstModemInfo->stConnStateInfo, 0, sizeof(MTC_MODEM_CONN_STATE_INFO_STRU));

    PS_MEM_SET(&pstModemInfo->stGsmCellInfoEx, 0, sizeof(MTC_GSM_CELLINFO_EX_STRU));

    return;
}
コード例 #3
0
VOS_VOID MTC_InitModemCtx(VOS_VOID)
{
    VOS_UINT32                          ulRet;
    VOS_UINT16                          usIndex;

    PLATAFORM_RAT_CAPABILITY_STRU       stModemPlatFormRat;
    MTC_MODEM_INFO_STRU                *pastModemCtxAddr    = VOS_NULL_PTR;
    MTC_OUTSIDE_MODEM_INFO_STRU        *pstOutModemCtxAddr  = VOS_NULL_PTR;

    for (usIndex = 0; usIndex < MODEM_ID_BUTT; usIndex++)
    {
        PS_MEM_SET(&stModemPlatFormRat, 0, sizeof(stModemPlatFormRat));

        /* 获取Modem上下文 地址 */
        pastModemCtxAddr = MTC_GetModemCtxAddr(usIndex);

        PS_MEM_SET(pastModemCtxAddr, 0, sizeof(MTC_MODEM_INFO_STRU));

        /* 读取Modem当前接入技术nv项 */
        ulRet = NV_ReadEx(usIndex,
                          en_NV_Item_Platform_RAT_CAP,
                          &stModemPlatFormRat,
                          sizeof(PLATAFORM_RAT_CAPABILITY_STRU));
        if (VOS_OK != ulRet)
        {
            MTC_WARNING_LOG("MTC_InitIntrusionCtx: Read Nv Fail.");
            continue;
        }

        MTC_ParsePlatFormRat(&(pastModemCtxAddr->ucRatCap), &stModemPlatFormRat);

        pastModemCtxAddr->enRatMode = MTC_RATMODE_BUTT;
    }

    /* 初始化外部modem上下文件信息 */
    for (usIndex = MTC_OUTSIDE_MODEM_CDMA; usIndex < MTC_OUTSIDE_MODEM_BUTT; usIndex++ )
    {
        pstOutModemCtxAddr =  MTC_GetOutSideModemCtxAddr(usIndex);

        PS_MEM_SET(pstOutModemCtxAddr, 0x0, sizeof(MTC_OUTSIDE_MODEM_INFO_STRU));
    }


    return;
}
コード例 #4
0
VOS_VOID MTC_DEBUG_ShowModemInfo(VOS_VOID)
{
    MTC_MODEM_INFO_STRU                *pstModemInfo = VOS_NULL_PTR;
    MODEM_ID_ENUM_UINT16                enModemId;

    for (enModemId = 0; enModemId < MODEM_ID_BUTT; enModemId++)
    {
        pstModemInfo = MTC_GetModemCtxAddr(enModemId);

        (VOS_VOID)vos_printf("Modem[%d] RatCap       : 0x%02X \r\n", enModemId, pstModemInfo->ucRatCap);
        (VOS_VOID)vos_printf("Modem[%d] Power state  : %d \r\n", enModemId, pstModemInfo->enPowerState);
        (VOS_VOID)vos_printf("Modem[%d] Rat Mode     : %d \r\n", enModemId, pstModemInfo->enRatMode);
        (VOS_VOID)vos_printf("Modem[%d] Call Srv     : %d \r\n", enModemId, pstModemInfo->stSrvInfo.ucCallSrvExistFlg);
        (VOS_VOID)vos_printf("Modem[%d] Sms Srv      : %d \r\n", enModemId, pstModemInfo->stSrvInfo.ucSmsSrvExistFlg);
        (VOS_VOID)vos_printf("Modem[%d] Ss Srv       : %d \r\n", enModemId, pstModemInfo->stSrvInfo.ucSsSrvExistFlg);
        (VOS_VOID)vos_printf("Modem[%d] Band info[0] : 0x%08X \r\n", enModemId, pstModemInfo->stCurBandInfo.aulBandInfo[0]);
        (VOS_VOID)vos_printf("Modem[%d] Band info[1] : 0x%08X \r\n", enModemId, pstModemInfo->stCurBandInfo.aulBandInfo[1]);
    }

    return;
}
コード例 #5
0
VOS_UINT32 MTC_IsSupportRatType(
    MODEM_ID_ENUM_UINT16                enModemId,
    MTC_RATMODE_ENUM_UINT8              enRatMode
)
{
    if (enRatMode >= MTC_RATMODE_BUTT)
    {
        return VOS_FALSE;
    }

    /* 判断modemId是否有效 */
    if (enModemId >= MODEM_ID_BUTT)
    {
        return VOS_FALSE;
    }

    if (0 != (MTC_GetModemCtxAddr(enModemId)->ucRatCap & MTC_SET_BIT(enRatMode)))
    {
        return VOS_TRUE;
    }

    return VOS_FALSE;

}
コード例 #6
0
VOS_VOID MTC_RcvIntrusionBandInfoInd(VOS_VOID * pMsg)
{
    MODEM_ID_ENUM_UINT16                    enModemId;
    MTC_MODEM_INFO_STRU                    *pstModemInfo;
    RRC_MTC_INTRUSION_BAND_INFO_IND_STRU   *pstModemBandInfo;
    MTC_CFG_ENUM_UINT8                      enIntrusionCfg;
    MTC_CFG_ENUM_UINT8                      enNotchCfg;
#if 0
    MTC_CFG_ENUM_UINT8                      enNarrowDcsCfg;
#endif
    pstModemBandInfo    = (RRC_MTC_INTRUSION_BAND_INFO_IND_STRU*)pMsg;
    enModemId           = VOS_GetModemIDFromPid(pstModemBandInfo->stMsgHeader.ulSenderPid);

    /* 检查ModemID有效性,并更新本地全局变量 */
    if (enModemId >= MODEM_ID_BUTT)
    {
        MTC_ERROR1_LOG("MTC_RcvIntrusionBandInfoInd: Err ModemId ", enModemId);
        return;
    }

    pstModemInfo = MTC_GetModemCtxAddr(enModemId);

    PS_MEM_CPY(&pstModemInfo->stCurBandInfo,
               &pstModemBandInfo->stCurBandInfo,
               sizeof(RRC_MTC_MS_BAND_INFO_STRU));

    PS_MEM_CPY(&pstModemInfo->stSerCellBandInfo,
               &pstModemBandInfo->stSerCellBandInfo,
               sizeof(RRC_MTC_MS_BAND_INFO_STRU));

    enIntrusionCfg  = MTC_GetIntrusionCfg();
    enNotchCfg      = MTC_GetNotchCfg();

    /* 将当前MTC上下文上报到SDT */
    MTC_DEBUG_TraceCtxInfo();

    if (MTC_CFG_ENABLE == enIntrusionCfg)
    {
        /* 更新频段信息后,触发干扰控制裁决 */
        MTC_ProcIntrusionStrategy();
    }

    if (MTC_CFG_ENABLE == enNotchCfg)
    {
        /* 更新频段信息后,触发notch控制裁决 */
        MTC_ProcNotchStrategy();
    }
#if 0
    /* 判断Narrow band dcs裁决是否使能 */
    enNarrowDcsCfg = MTC_GetNarrowBandDcsCfg();
    if (MTC_CFG_ENABLE == enNarrowDcsCfg)
    {
        /* 执行Narrow band dcs裁决 */
        MTC_ProcNarrowDcsStrategy();
    }
#endif
    /* TL射频控制开关开启时, 触发干扰控制裁决 */
    if ( (MTC_CFG_ENABLE == MTC_GetTlRfCtrlCfg())
      && (MODEM_ID_0 == enModemId) )
    {
        MTC_ProcB39B32Intrusion();
    }

    return;
}
コード例 #7
0
MTC_MODEM_MIPICLK_BITMAP_STRU* MTC_GetRfCellInfoAddr(
    MODEM_ID_ENUM_UINT16                enModemId
)
{
    return &(MTC_GetModemCtxAddr(enModemId)->stRfCellInfo);
}
コード例 #8
0
VOS_UINT8 MTC_GetModemUsimValidFlag(MODEM_ID_ENUM_UINT16 enModemId)
{
    return MTC_GetModemCtxAddr(enModemId)->ucUsimValidFlag;
}
コード例 #9
0
MTC_MODEM_POWER_STATE_ENUM_UINT8 MTC_GetModemPowerState(MODEM_ID_ENUM_UINT16 enModemId)
{
    return MTC_GetModemCtxAddr(enModemId)->enPowerState;
}