/*****************************************************************************
 Prototype       : BSP_MailBox_SpNotifyDisable
 Description     : 专有邮箱数据到达通知中断去使能接口
 param           : None
 Return Value    : void
*****************************************************************************/
void BSP_MailBox_SpNotifyDisable(void)
{
    if(BSP_OK != BSP_IPC_IntDisable(IPC_INT_DSP_PS_MAC_MBX))
    {
        bsp_trace(BSP_LOG_LEVEL_ERROR, BSP_MODU_MBX, "[mailbox]: <%s> BSP_IPC_IntDisable failed.\n", __FUNCTION__);
    }

    if(BSP_OK != BSP_IPC_IntDisonnect(IPC_INT_DSP_PS_MAC_MBX, NULL, 0))
    {
        bsp_trace(BSP_LOG_LEVEL_ERROR, BSP_MODU_MBX, "[mailbox]: <%s> BSP_IPC_IntDisonnect failed.\n", __FUNCTION__);
    }
}
/*****************************************************************************
 Prototype       : BSP_MailBox_SpNotifyDisable
 Description     : 专有邮箱数据到达通知中断去使能接口
 param           : None
 Return Value    : void
*****************************************************************************/
void BSP_MailBox_SpNotifyDisable(void)
{
    if(BSP_OK != BSP_IPC_IntDisable(IPC_INT_DSP_PS_MAC_MBX))
    {
        Mbx_Printf("BSP_IPC_IntDisable failed.\n");
    }

    if(BSP_OK != BSP_IPC_IntDisonnect(IPC_INT_DSP_PS_MAC_MBX, NULL, 0))
    {
        Mbx_Printf("BSP_IPC_IntDisonnect failed.\n");
    }
}
Beispiel #3
0
/*****************************************************************************
 * 函 数 名  : DRV_IPC_INTDISABLE
 *
 * 功能描述  : 去使能某个中断
 *
 * 输入参数  :
                BSP_U32 ulLvl 要使能的中断号,取值范围0~31
 * 输出参数  : 无
 *
 * 返 回 值  : OK&ERROR
 *
 * 修改记录  : 2011年4月11日 wangjing creat
 *****************************************************************************/
BSP_S32 DRV_IPC_INTDISABLE (IPC_INT_LEV_E ulLvl)
{
    return BSP_IPC_IntDisable(ulLvl);
}
/*****************************************************************************
 Prototype       : BSP_MailBox_IntTypeSet
 Description     : 设置PS邮箱中断源接口(默认IPC中断方式)
                   只用于PS邮箱,OM邮箱无中断上报
 param           : None
 Return Value    : 0: 成功; 其他: 设置的type非法
*****************************************************************************/
u32 BSP_MailBox_IntTypeSet(MAILBOX_INT_TYPE_E enIntType)
{
    s32 ret;

    switch(enIntType)
    {
        case EN_MAILBOX_INT_SUBFRAME:
        {
            if(BSP_OK != BSP_Mailbox_ForbidDspSleep(EN_MAILBOX_SLEEP_WAKEUP))
            {
                Mbx_Printf("BSP_Mailbox_ForbidDspSleep failed.\n");
                return ERR_MAILBOX_TIMEOUT;
            }

            BSP_BBPIntTimerRegCb(Mbx_ComPsIntProc);
            /* [false alarm]:fortify */
            ret = BSP_BBPIntTimerEnable();/* [false alarm]:fortify */
            if(BSP_OK != ret)
            {
                /* [false alarm]:fortify */
                Mbx_Printf("BSP_BBPIntTimerEnable failed.\n");
            }

            BSP_Mailbox_AllowDspSleep();

            ret = (s32)BSP_IPC_IntDisable(IPC_INT_DSP_PS_PUB_MBX);
            if(BSP_OK != ret)
            {
                Mbx_Printf("BSP_IPC_IntDisable failed.\n");
            }

            ret = (s32)BSP_IPC_IntDisonnect(IPC_INT_DSP_PS_PUB_MBX, NULL, 0); /* [false alarm]:fortify */
            if(BSP_OK != ret)
            {
                Mbx_Printf("BSP_IPC_IntDisonnect failed.\n");
            }

            g_stMbxCtrl.bIsSubFrameInt = BSP_TRUE;

            break;
        }

        case EN_MAILBOX_INT_COM_IPC:
        {
            ret = (s32)BSP_IPC_IntConnect(IPC_INT_DSP_PS_PUB_MBX, (VOIDFUNCPTR)Mbx_ComPsIntProc, 0);
            if(BSP_OK != ret)
            {
                Mbx_Printf("BSP_IPC_IntConnect failed.\n");
            }

            ret = (s32)BSP_IPC_IntEnable(IPC_INT_DSP_PS_PUB_MBX);
            if(BSP_OK != ret)
            {
                Mbx_Printf("BSP_IPC_IntEnable failed.\n");
            }

            if(BSP_OK != BSP_Mailbox_ForbidDspSleep(EN_MAILBOX_SLEEP_WAKEUP))
            {
                Mbx_Printf("BSP_Mailbox_ForbidDspSleep failed.\n");
                return ERR_MAILBOX_TIMEOUT;
            }

            BSP_BBPIntTimerDisable();

            BSP_BBPIntTimerClear();

            BSP_Mailbox_AllowDspSleep();

            g_stMbxCtrl.bIsSubFrameInt = BSP_FALSE;

            break;
        }

        default :
        {
            Mbx_Printf("enIntType %d.\n", enIntType);
            return ERR_MAILBOX_PARAM_INCORRECT;
        }
    }

    return BSP_OK;
}