搜索
 找回密码
 立即注册

简单一步 , 微信登陆

T2中使用1236c+mxl603或者608时在有信号强度界面待机死机的问题

作者:icezhou | 时间:2016-6-1 17:09:10 | 阅读:2269| 显示全部楼层
T2中使用1236c+mxl603或者608时在有信号强度界面待机死机的问题。
这个问题是由于MSD1236C中互斥锁没释放导致的死机,在获取信号强度的函数MDrv_Demod_GetPWR中603的分支里面如果获取MxLWare603_API_ReqTunerRxPower失败这个时候只是将IIC Bypass关闭,上面的加的互斥锁没有释放导致死机。
    if (MsOS_ObtainMutex(pMSB1236C->s32_MSB1236C_Mutex, COFDMDMD_MUTEX_TIMEOUT) == FALSE)
    {
        PRINTE(("MDrv_Demod_GetPWR:Obtain mutex failed !!!\n"));
        return FALSE;
    }
    else
    {
        *ps32Signal = 0;
        if (E_DEMOD_LOCK == MSB1236C_DTV_DVB_T_GetLockStatus())
        {
#if(FRONTEND_TUNER_TYPE == TUNER_MXL603)
            float fSignal;
            MSB1236C_IIC_Bypass_Mode(TRUE);
            if (MXL_SUCCESS != MxLWare603_API_ReqTunerRxPower(MXL603_I2C_ADDR, &fSignal))
            {
                PRINTE(("MxLWare603_API_ReqTunerRxPower failed !!!\n"));
                MSB1236C_IIC_Bypass_Mode(FALSE);
                return FALSE;
            }
            MSB1236C_IIC_Bypass_Mode(FALSE);
            *ps32Signal = (MS_U32)MSB1236C_DTV_GetSignalStrengthWithRFPower(fSignal);
#else
            *ps32Signal  = (MS_U32)MSB1236C_DTV_GetSignalStrength();
#endif

应该如下修改,
            if (MXL_SUCCESS != MxLWare603_API_ReqTunerRxPower(MXL603_I2C_ADDR, &fSignal))
            {
                PRINTE(("MxLWare603_API_ReqTunerRxPower failed !!!\n"));
                MSB1236C_IIC_Bypass_Mode(FALSE);
    MsOS_ReleaseMutex(pMSB1236C->s32_MSB1236C_Mutex);
                return FALSE;
            }


该会员没有填写今日想说内容.
回复

使用道具 举报

大神点评1

bean.yang 发表于:2016-6-1 17:10:18
公版缺陷
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版