コード例 #1
0
/*****************************************************************************
 Function   : HPA_Read8Reg
 Description: read 8bit data from DSP & BBP
 Input      : ulRegAddr -- address of DSP & BBP
            : ulRegVal -- 8bit data
 Return     : void
 Other      : Caution : this function should not supported.
 *****************************************************************************/
VOS_UINT8 HPA_Read8Reg( VOS_UINT32 ulRegAddr )
{
    VOS_UINT16 usTempValue;
    VOS_UINT32 ulTempAddr;
    VOS_UINT8 *pucTemp;

    /* Add for L Only version */
    if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType())
    {
        return 0;
    }
    /* Add for L Only version */

    ulTempAddr = ulRegAddr & 0xfffffffe;

    usTempValue = *(volatile VOS_UINT16 *)(ulTempAddr);

    pucTemp = (VOS_UINT8 *)&usTempValue;

    if ( ulRegAddr == ulTempAddr )
    {
        return *pucTemp;
    }
    else
    {
        pucTemp++;
        return *pucTemp;
    }
}
コード例 #2
0
/*****************************************************************************
 Function   : HPA_Write8Reg
 Description: write 8bit data to DSP & BBP
 Input      : ulRegAddr -- address of DSP & BBP
            : ulRegVal -- 8bit data
 Return     : void
 Other      : Caution : this function should not supported.
 *****************************************************************************/
VOS_VOID HPA_Write8Reg( VOS_UINT32 ulRegAddr, VOS_UINT8 ucRegVal )
{
    VOS_UINT16 usTempValue;
    VOS_UINT32 ulTempAddr;
    VOS_UINT8 *pucTemp;

    /* Add for L Only version */
    if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType())
    {
        return;
    }
    /* Add for L Only version */

    ulTempAddr = ulRegAddr & 0xfffffffe;

    usTempValue = *(volatile VOS_UINT16 *)(ulTempAddr);

    pucTemp = (VOS_UINT8 *)&usTempValue;

    if ( ulRegAddr == ulTempAddr )
    {
        *pucTemp = ucRegVal;
    }
    else
    {
        pucTemp++;
        *pucTemp = ucRegVal;
    }

    *(volatile VOS_UINT16 *)ulTempAddr = usTempValue;
}
コード例 #3
0
ファイル: hpainit.c プロジェクト: herryfan/kernel-huawei-h60
/*****************************************************************************
 Function   : HPA_FIDInit
 Description: HPA FID Init
 Input      : Ip
 Return     : void
 Other      :
 *****************************************************************************/
VOS_UINT32 HPA_FIDInit( enum VOS_INIT_PHASE_DEFINE ip )
{
    /* Add for L Only version */
    if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType())
    {
        return 0;
    }
    /* Add for L Only version */

    switch ( ip )
    {
        case VOS_IP_LOAD_CONFIG:
            if ( VOS_OK != VOS_RegisterPIDInfo(UEPS_PID_SHPA,
                APM_PIDInit, (Msg_Fun_Type)HPA_ApmMsgPIDProc))
            {
                PS_LOG(  UEPS_PID_GHPA, 0, PS_PRINT_ERROR,
                    "VOS_RegisterPIDInfo UEPS_PID_SHPA failure !\n");

                return VOS_ERR;
            }

            if ( VOS_OK
                != VOS_RegisterTaskPrio(WUEPS_FID_HPA, COMM_HPA_TASK_PRIO) )
            {
                PS_LOG(  UEPS_PID_GHPA, 0, PS_PRINT_ERROR,
                    "HPA_FIDInit:VOS_RegisterMsgTaskPrio failure !\n");

                return VOS_ERR;
            }

            if ( VOS_NULL_BYTE == VOS_RegisterSelfTaskPrio(WUEPS_FID_HPA,
                (VOS_TASK_ENTRY_TYPE)HPA_TransferTaskEntry,
                COMM_HPA_SELFTASK_PRIO, HPA_TRANSFER_TASK_STACK_SIZE ) )
            {
                PS_LOG(  UEPS_PID_GHPA, 0, PS_PRINT_ERROR,
                    "VOS_RegisterSelfTask:HPA_TransferTaskEntry failure !\n");

                return VOS_ERR;
            }

            break;

        case VOS_IP_FARMALLOC:
            if(VOS_OK != HPA_Init())
            {
                PS_LOG(  UEPS_PID_GHPA, 0, PS_PRINT_ERROR,
                    "HPA Init failure !\n");
                return VOS_ERR;
            }
            break;

        default:
            break;
    }

    return VOS_OK;
}
コード例 #4
0
VOS_UINT32 OMCallBackFidInit(enum VOS_INIT_PHASE_DEFINE ip)
{
    VOS_UINT32 ulRslt;

    /* Add for L Only version */
    if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType())
    {
        return 0;
    }
    /* Add for L Only version */

    switch( ip )
    {
        case VOS_IP_LOAD_CONFIG:
        {
            ulRslt = VOS_RegisterPIDInfo(WUEPS_PID_OM_CALLBACK,
                        VOS_NULL_PTR,
                        (Msg_Fun_Type)OM_CallBackMsgProc);

            if( VOS_OK != ulRslt )
            {
                return VOS_ERR;
            }

            if(VOS_OK != VOS_RegisterMsgTaskPrio(WUEPS_FID_OM_CALLBACK, VOS_PRIORITY_NULL))
            {
                PS_LOG(WUEPS_PID_OM, 0, PS_PRINT_ERROR,
                    "OMCallBackFidInit:VOS_RegisterMsgTaskPrio failure !\n");

                return VOS_ERR;
            }

#if (VOS_WIN32 == VOS_OS_VER)
#ifndef __PS_WIN32_RECUR__

            /* 接收SOCKET数据的自处理任务 */
            ulRslt = VOS_RegisterSelfTaskPrio(WUEPS_FID_OM_CALLBACK,
                             (VOS_TASK_ENTRY_TYPE)Sock_ServerTask,
                             COMM_SOCK_SELFTASK_PRIO, RL_SOCK_TASK_STACK_SIZE);
            if ( VOS_NULL_BYTE == ulRslt )
            {
                return VOS_ERR;
            }

#endif
#endif
            break;
        }
        default:
            break;
    }
    return VOS_OK;
}
コード例 #5
0
/*****************************************************************************
 Function   : HPA_Write32RegMask
 Description: write mask to DSP & BBP
 Input      : ulRegAddr -- address of DSP & BBP
            : ulMask -- mask
 Return     : void
 Other      : caution: BIT_N must be used befor call the function
 *****************************************************************************/
VOS_VOID HPA_Write32RegMask(VOS_UINT32 ulRegAddr, VOS_UINT32 ulMask)
{
    /* Add for L Only version */
    if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType())
    {
        return;
    }
    /* Add for L Only version */

    if ( 0 != (ulRegAddr & 0x03) )/* not 4byte aligned */
    {
        LogPrint1("HPA_Write32RegMask Address: 0x%x not aligned.\r\n",(VOS_INT)ulRegAddr);
        return;
    }

    *(volatile VOS_UINT32 *)ulRegAddr |= ulMask;
}
コード例 #6
0
/*****************************************************************************
 Function   : HPA_Read16Reg
 Description: read 16bit data from DSP & BBP
 Input      : ulRegAddr -- address of DSP & BBP
            : ulRegVal -- 16bit data
 Return     : void
 Other      :
 *****************************************************************************/
VOS_UINT16 HPA_Read16Reg( VOS_UINT32 ulRegAddr )
{
    /* Add for L Only version */
    if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType())
    {
        return 0;
    }
    /* Add for L Only version */

    if ( 0 != (ulRegAddr & 0x01) )/* not 2byte aligned */
    {
        LogPrint1("HPA_Read16Reg Address: 0x%x not aligned.\r\n",(VOS_INT)ulRegAddr);
        return 0;
    }

    return *(volatile VOS_UINT16 *)ulRegAddr;
}
コード例 #7
0
/*****************************************************************************
 Function   : HPA_Write16Reg
 Description: write 16bit data to DSP & BBP
 Input      : ulRegAddr -- address of DSP & BBP
            : ulRegVal -- 16bit data
 Return     : void
 Other      :
 *****************************************************************************/
VOS_VOID HPA_Write16Reg( VOS_UINT32 ulRegAddr, VOS_UINT16 usRegVal)
{
    /* Add for L Only version */
    if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType())
    {
        return;
    }
    /* Add for L Only version */

    if ( 0 != (ulRegAddr & 0x01) )/* not 2byte aligned */
    {
        LogPrint1("HPA_Write16Reg Address: 0x%x not aligned.\r\n",(VOS_INT)ulRegAddr);
        return;
    }

    *(volatile VOS_UINT16 *)ulRegAddr = usRegVal;
}