Patch for iMX6 BSP to support interlaced display on HDMI and LCD interface

Document created by Qiang Li Employee on Apr 23, 2014Last modified by Qiang Li Employee on May 19, 2016
Version 5Show Document
  • View in full screen mode

1. Description

    1) Support HDMI interlaced display mode, the followed format had been verified.
        CEA format 5: 1920x1080i @60Hz
        CEA format 6&7: 720(1440)x480i @60Hz
        CEA format 20: 1920x1080i @50Hz
        CEA format 21&22: 720(1440)x576i @50Hz

    2) Support LCD interface for interlaced display mode, 1920x1080i @50Hz(CEA format 20)
       had been verified.


2. File List
-- 0001-IPUv3-support-interlaced-display-mode.patch
   Patch to support interlaced display output for iMX6 ipuv3.

-- 0002-iMX6-HDMI-support-interlaced-display-mode.patch
   Patch to support interlaced display mode for iMX6 HDMI driver.

-- 0003-iMX6-LCD-interface-supports-1920x1080i50-mode.patch
   Patch to support interlaced display mode for iMX6 LCD interface driver.
  
-- readme.txt
   this file, please refer to it before use the patches


3. Requirement

- iMX6 SabreSD board.

- L3.0.35_4.1.0_GA_iMX6DQ kernel.


4. How to use

-- Copy the patch files to kernel folder.
    $ cd ~/ltib/rpm/BUILD/linux-3.0.35/
    $ git apply ./0001-IPUv3-support-interlaced-display-mode.patch
    $ git apply ./0002-iMX6-HDMI-support-interlaced-display-mode.patch
    $ git apply ./0003-iMX6-LCD-interface-supports-1920x1080i50-mode.patch

-- Build the new kernel image:
    $ cd ~/ltib/rpm/BUILD/linux-3.0.35
    $ export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
    $ export ARCH=arm
    $ make imx6_defconfig
    $ make uImage

-- Uboot parameters for video mode
   Output 1080i50 display mode on HDMI:
      "video=mxcfb0:dev=hdmi,1920x1080Mi@25,if=RGB24,bpp=32"

   Output 1080i60 display mode on HDMI:
      "video=mxcfb0:dev=hdmi,1920x1080Mi@30,if=RGB24,bpp=32"

   Output 576i50 display mode on HDMI:
      "video=mxcfb0:dev=hdmi,1440x576Mi@25,if=RGB24,bpp=32"

   Output 480i60 display mode on HDMI:
      "video=mxcfb0:dev=hdmi,1440x480Mi@30,if=RGB24,bpp=32"

   Output 1080i50 display mode on LCD interface:
      "video=mxcfb0:dev=lcd,LCD-1080I50,if=RGB565,bpp=32"
     
-- Switch HDMI interlaced mode
   $ echo S:1920x1080i-50 > /sys/class/graphics/fb0/mode
   $ echo S:1920x1080i-60 > /sys/class/graphics/fb0/mode
   $ echo S:1440x480i-50 > /sys/class/graphics/fb0/mode
   $ echo S:1440x576i-60 > /sys/class/graphics/fb0/mode


5. Know issue
    1) When the interlaced display and another display work on same IPU,
       blank and unblank the interlaced display will get the followed IPU
       warning, but the display still works due to IPU can revover from the error.
    imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_5 = 0x00800000
    imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_10 = 0x00080000

 

2015-05-13 update:

Replace the fourth patch to make interlace display mode follow CEA-861-specification

The patch "0004-IPU-fine-tuning-the-interlace-display-timing-for-CEA.patch" was fine tuned for CEA-861-D specification on interlaced mode display. Please use this patch to replace the old 0004 patch.

 

2016-05-20 Update:

For 3.0.35 BSP, add patch

0005-IPU-update-interlaced-video-mode-parameters-to-align.patch

     Align the interlaced video mode parameters to progressive mode.

 

0006-IPU-update-IDMAC-setting-for-interlaced-display-mode.patch

     Udate the IDMAC setting for interlaced display mode, output odd field data from memory first, it aligns with IPU DI timing, odd field first.

 

For 3.14.52 BSP, created the new patch L3.14.52_1.1.0_GA_HDMI_Interlaced_Mode_Patch_2016_05_20.zip.

1 person found this helpful

Outcomes