我是靠谱客的博主 整齐小土豆,最近开发中收集的这篇文章主要介绍[MTK] MT6589 DSI Video Mode的屏,加入ESD机制后每隔2S会闪一下屏(情形一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

[DESCRIPTION]
         MT6589 DSI Video Mode的屏,加入ESD机制后每隔2S会闪一下屏,但是把MIPI clock改为
   continuous clock则不会闪屏。 则属于这种情况,可以按照以下方法进行修改。
 
        以SSD2075为例:
  Root cause:  SSD2075 IC内的电压DVDDH由MIPI clock generate形成。
   MIPI clock一旦停掉,DVDDH就会drop,理论上就会有闪屏。 但是如果MIPI clock停掉的时间较短
   的话,这个闪屏是不会被人眼所察觉到。
 
  

[SOLUTION]
 解决思路:当读寄存器的时候,让MIPI clock保持HS 状态。
读完之后再把MIPI clock切到LP的bit 位置位 

具体修改方法如下:
  在alps/m ediat ek/k ern el/driv ers/vid eo/disp_drv.c中
 (1) 添加下面一行定义
   static PDSI_R EGS const DSI_R EG = (PDSI_R EGS)(DSI_BAS E); //add by mtk

 (2) 在DISP_ ESDCh eck()函数中添加几行,红色标记
  BOOL DISP_ EsdCh eck(void)
{
    BOOL r esult = FALS E;
         
    DSI_TXRX_CTRL_REG tmp_reg;               //add by mtk
    tmp_reg=DSI_REG->DSI_TXRX_CTRL;         //add by mtk
     tmp_reg.HSTX_CKLP_EN = 0;                //add by mtk
     DSI_clk_HS_mode(1);                      //add by mtk
         
    disp_drv_init_cont ext();
    MMProfil eLog Ex(MTKFB_MMP_ Ev ents. EsdCh eck, MMProfil eFlagPuls e, 0x10, 0);
    if(lcm_drv-> esd_ch eck == NULL && disp_drv-> esd_ch eck == NULL)
    {
        r eturn FALS E;
    }
    if (down_int erruptibl e(&s em_updat e_scr e en)) {
        printk(" ERROR: Can't g et s em_updat e_scr e en in DISP_ EsdCh eck()n");
        r eturn FALS E;
    }
    MMProfil eLog Ex(MTKFB_MMP_ Ev ents. EsdCh eck, MMProfil eFlagPuls e, 0x11, 0);
    if(is_lcm_in_susp end_mod e)
    {
        up(&s em_updat e_scr e en);
        r eturn FALS E;
    }
         if(disp_drv-> esd_ch eck)
                   r esult |= disp_drv-> esd_ch eck();
         
         
    MMProfil eLog Ex(MTKFB_MMP_ Ev ents. EsdCh eck, MMProfil eFlagPuls e, 0x12, 0);
#ifnd ef MT65XX_N EW_DISP
    LCD_CH ECK_R ET(LCD_WaitForNotBusy());
    if(lcm_params->typ e==LCM_TYP E_DSI)
        DSI_CH ECK_R ET(DSI_WaitForNotBusy());
         if(lcm_drv-> esd_ch eck)
    {
        mut ex_lock(&LcmCmdMut ex);
                   r esult |= lcm_drv-> esd_ch eck();
        mut ex_unlock(&LcmCmdMut ex);
    }
# endif
    up(&s em_updat e_scr e en);
       tmp_reg.HSTX_CKLP_EN = 1;            //add by mtk
    r eturn r esult;
}

 

最后

以上就是整齐小土豆为你收集整理的[MTK] MT6589 DSI Video Mode的屏,加入ESD机制后每隔2S会闪一下屏(情形一)的全部内容,希望文章能够帮你解决[MTK] MT6589 DSI Video Mode的屏,加入ESD机制后每隔2S会闪一下屏(情形一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部