This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dm8127 HDMI resolution change



你好: 

    我们有个项目需要用DM8127的HDMI输出480p-60, 但是DM8127 IPNC默认支持 720p-60, 1080p-60,1080p-30, 1080i-60,   目前我改了很多地方,视频还是无法显示出来.

   开发包是DM8127 MT9J003- RDK 3.8.  我现在在Rules.make 配置的CAPTURE_DISPLAY_MODE_ON := YES ,选了 capture+display usecase 去编译的。

   下面是我修改的地方:     (1-5 是  Source\ipnc_rdk  目录下的修改;    6 是 Source\ti_tools\ipnc_psp_arago\kernel\drivers\video\ti81xx 目录下)

    1.  \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\demos\mcfw_api_demos\multich_usecase 目录下ti_mcfw_ipnc_main.c 文件中

              system("insmod ./kermod/vpss.ko mode=hdmi:1080p-60 sbufaddr=0xbfb00000"); 改成了     system("insmod ./kermod/vpss.ko mode=hdmi:480p-60 sbufaddr=0xbfb00000");   

              Void App_runDemo(Void) 函数中

              vdisParams.deviceParams[VDIS_DEV_HDMI].resolution = VSYS_STD_480P;      //  VSYS_STD_1080P_60;
              /* Override the context here as needed */
              vdisParams.deviceParams[VDIS_DEV_HDMI].resolution = VSYS_STD_480P;      //  VSYS_STD_1080P_60; 

    2.  \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\ti_vdis.c  中Void Vdis_params_init(VDIS_PARAMS_S * pContext)

         里面的

              pContext->deviceParams[i].resolution  = VSYS_STD_480P;    //  VSYS_STD_1080P_60

              width  = 720;     // 1920
              height = 480;    //  1080

      3.  \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\usecases\multich_capturedisplay.c  中  

              /* First stream */
             pCameraOutPrm = &pCameraInstPrm->outParams[0];
             pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
             pCameraOutPrm->scEnable = FALSE;
             pCameraOutPrm->scOutWidth = 720;   //1920;
             pCameraOutPrm->scOutHeight = 480;  //1080;
             pCameraOutPrm->outQueId = 0; 

       4.  \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_m3vpss\system\system_dctrl_modeInfo.c 中

               Int32 System_getVencMode(Int32 resolution) 函数里 添加

                  case VSYS_STD_480P:        //steven 2016-1-21 添加480P 模式HDMI显示
                              vencMode = FVID2_STD_480P;
                  break;       

        5.  \home\dm8127\Source\ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_m3vpss\system\system_dctrl.c  中

                Int32 System_getClk(UInt32 displayRes) 函数里 添加

                    case VSYS_STD_480P: //steven 2016-1-21 添加480P 模式HDMI显示
                                clkValue = 27000u;
                    break;
  

       6. \home\dm8127\Source\ti_tools\ipnc_psp_arago\kernel\drivers\video\ti81xx\ti81xxhdmi\hdmi.c ,

        我发现这个hmid.c 的 struct video_timings all_timings_direct[VIDEO_TIMINGS_NB] = { ×××××}   里面的 timing   和 vpss 目录里的  sysfs.h文件的

     static const struct dc_vencmode_info vmode_info[] = { ×××} 很多不一致, 因此 我把 480p-60 standard 二边改统一

      

    OK, 现在上面这6个主要地方改完,  #make -s lsp;  #make -s ipncapp  后, 再次上电发现  显示器上仍然没视频,  之前 用1080p-60, 720p-60 模式的时候, 显示上 还有 HDMI, 1080p-60 显示一下。  

     请问是否还有什么地方没有改呢? vpps fb 部分我也看了源码,没有发现要改啥啊

谢谢