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.

Linux/AM5718: Progressive and Interlace Display Outputs

Part Number: AM5718
Other Parts Discussed in Thread: DM3725

Tool/software: Linux

Hi all,

Can anyone please help me in resolving following queries,

1. As per the response to the supported Output format and Linux driver of LCD (Interlace/Progressive) output, "Interlace feature has DSS IP level limitation for LCD but for HDMI, it’s driver level limitation." 

But in the TRM document(SPRUHZ7G), multiple times its mentioned that "Configurable LCD output mode: progressive or interlace mode"(Page No. 2667-LCD Outputs) and "The LCD output can be configured in progressive output or interlace output. The selection is done by writing into the DISPC_CONFIGo[22] OUTPUTMODEENABLE bit.(Page No. 2744). Can anyone please clarify my doubt that is it possible to get interlaced output at any of the LCD outputs(LCD1/2/3) or the TV Output ??

2. If we can get then how ?? And can we achieve this by modifying/writing any Linux driver for Interlace output ?

3. The following is mentioned in page no. 2693(DISPC Progressive-to-Interlaced Format Conversion).

"The DMA engine can be used to perform YUV4:2:0 NV12 and YUV4:2:0 NV21 progressive-to-interlaced
data conversion with 0-degree orientation. Such conversion performed in the DSS consists of separating
each progressive frame into two fields containing odd and even lines.This section provides generic
approach details."

What does it mean exactly and is it useful to get Interlace output anyway ? If so, how ?

4. Does any of the TI processors have the Interlace output supported Linux driver for LCD/TV ? (Is the source code available)

5. As per the below DSS guide, in "Unsupported Features/Limitations" chapter, 
software-dl.ti.com/.../Foundational_Components_Kernel_Drivers.html
AM57xx processor supports for Progressive Driver for LCD/TV.

Where can I get that perticular driver (which directory in the Linux SDK ) ?

NOTE : I am Using AM5718  based custom board and Linux Processor SDK version 05.00.00.15.

Any help is appreciated .

Thanks and regards...

Arpita Jena

 

  • Hi Arpita,

    The DSS IP has undocumented errata on interlace support for parallel output (LCD/DPI). There's no VSYNC IRQ for ODD/EVEN field. In absence of that, when their is glitch in the system/one of the filed is lost, application has no means to correct the behaviour and the field may now be reversed causing interlace artifcats when displaying the content.

    You can do the interlcae output on HDMI/TV OUT but the driver level support for interlace display isn't complete. The biggest missing piece is the top/bottim aspect, so when the userspace commits a new frame, it cannot specify whether it's top/bottom.

    DM3725 supports interlace display on TV OUT. It is older device and software is not maintained now, but you can check it out if it meets your need.

  • Hi Manisha ,

    Thanks for your helpful response.

    I would like to know Where can I get that particular driver that supports Progressive output for LCD/TV (which directory in the Linux SDK ) ?

    Thanks and Regards ...

    Arpita Jena

  • Hi Arpita,

    Please check following folders -
    board-support/linux-4.14.xxxx/drivers/gpu/drm/omapdrm/
    board-support/linux-4.14.xxxx/drivers/gpu/drm/omapdrm/dss/
  • Thanks a lot Manisha.

    Can you please let me know if there is any particular driver for TMDXIDK57X-LCD(LCD using for AM5718 IDK) in the Linux SDK 05.00.00.15 and if so, what is the driver file name and directory ??

    Thanks and regards...

    Arpita

  • Hi Arpita,

    The LCD panel on AM5718 IDK uses LCD out and as I mentioned in my post earlier, the interlace display feature has errata on LCD out of DSS IP. Driver for LCD panel out can be found here: drivers\gpu\drm\omapdrm\displays\panel-dpi.c

    The interlace support needs to be implemented on TVOUT in omapdrm's dispc.c. And probably in the omap_connector.c, omap_crtc.c and omap_encoder.c and dpi.c files too.