Cannot display via MIPI DSI driven by LCDIF in i.MX8MQ

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Cannot display via MIPI DSI driven by LCDIF in i.MX8MQ

8,727 Views
yokai_yang
Contributor II

Hi,

We are evaluating dual display of i.MX8MQ. Currently I am trying MIPI DSI driven by LCDIF on our customized i.MX8MQ board but keep failing.

Do I need to do something else besides modification following fsl-imx8mq-evk-dual-display.dts and correct the panel timing?

The BSP is developed based on NXP 4.9.51 GA release.

I have already tried the following and they worked fine.

1. Single Display, HDMI driven by DCSS.

2. Single Display, MIPI driven by DCSS.

But I just can't make the MIPI driven by LCDIF output to the DSI panel.

I only got the backlight on, but nothing on the screen.

By measuring MIPI lanes using an oscilloscope, only MIPI clock is correct, but lack of data.

Please see the attachment for boot message with the kernel parameter, "drm.debug=0x1f" and the dts (Single display, MIPI DSI driven by LCDIF) is also attached.

The DSI panel is AUO G101UAN02.0 (1920x1200) using the panel-simple driver.

Panel timing has already validated with MIPI driven by DCSS.

The "max-res" property of lcdif changed to 1920x1200.

The device node for display (/dev/fb0) was created, but nothing happened after manipulating it. (for example: cat /dev/urandom > /dev/fb0)

I also tried to configure weston but no help. Below is the weston.ini:

# cat /etc/xdg/weston/weston.ini
[core]
idle-time=0

[screen-share]
command=@bindir@/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize

[output]
name=DSI-1
mode=current

Could anyone help for the next?

---------------------------- 2018/11/26 updated -----------------------------

Oops, I am really sorry that I don't know that modification my post will need to be approved again, and will lose the previous replies.

The current panel timing which can display normal when using MIPI driven by DCSS is shown below:

static const struct drm_display_mode auo_g101uan02_mode = {
    .clock = 150000,
    .hdisplay = 1920,
    .hsync_start = 1920 + 60,
    .hsync_end = 1920 + 60 + 18,
    .htotal = 1920 + 60 + 18 + 60,
    .vdisplay = 1200,
    .vsync_start = 1200 + 4,
    .vsync_end = 1200 + 4 + 4,
    .vtotal = 1200 + 4 + 4 + 4,
    .vrefresh = 60,
};

static const struct panel_desc_dsi auo_g101uan02 = {
    .desc = {
        .modes = &auo_g101uan02_mode,
        .num_modes = 1,
        .bpc = 6,
        .size = {
            .width = 217,
            .height = 136,
        },
    },
    .flags = MIPI_DSI_MODE_VIDEO |
             MIPI_DSI_MODE_VIDEO_BURST |
             MIPI_DSI_CLOCK_NON_CONTINUOUS,
    .format = MIPI_DSI_FMT_RGB888,
    .lanes = 4,
};‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

  • Changing flag from MIPI_DSI_MODE_VIDEO_BURST to MIPI_DSI_MODE_VIDEO_HSE is still not working.
  • I know the resolution of 1920x1200 is not supported by LCDIF, but changing the resolution from 1920x1200 to 1920x1080 seems not working, because the panel still showed nothing.
0 Kudos
Reply
12 Replies

5,769 Views
先生孟
Contributor II

I have met the same problem, DCSS can show the screen but the LCDIF can‘t

So anyone could provide the solution ? thanks

0 Kudos
Reply

5,769 Views
nirmalluhana
Contributor IV

We are facing the same issue, DCSS can show the screen but the LCDIF can‘t.

So anyone could provide the solution? thanks

0 Kudos
Reply

5,769 Views
liyu1
Contributor III

请问您有解决该问题吗?我这边的应用环境为HDMI + mipi display   。如果您有解决的能不能加一下你,或者如果没解决的话,加一下微信或QQ一起解决。

   我QQ542270618

0 Kudos
Reply

5,769 Views
Lorac
Contributor III

In the user guide, it 's written, that the LCDIF resolution can't reach yours...

13.1.1.1 Display Interface
Display Interface consists of the following:
• Enhanced LCD Interface (eLCDIF)
• Support 8-bit / 16-bit / 18-bit / 24-bit / 32-bit pixel depth
• Support DOTCLK mode for MIPI-DPI interface
• Support MPU mode for MIPI-DBI interface
• Support resolution up to 1920x1080p60 and 1800x1200p60
• Support one base layer and one graphics overlay with alpha blending

0 Kudos
Reply

5,769 Views
yokai_yang
Contributor II

Hi, Carol,

Thank you for reminding me.

Although the current timing I am using is 1920x1200, I had already tried the 1920x1080.

When using MIPI driven by DCSS in 1920x1080, the display is abnormal but at least I could see MIPI outputs with expectation.

When using MIPI driven by LCDIF in 1920x1080, there is nothing on the panel.

I guess MIPI driven by LCDIF should output something on the panel even the resolution is wrong or is not supported but I am not pretty sure about this.

Thank you.

0 Kudos
Reply

5,769 Views
Lorac
Contributor III

I find the explaination from NXP developper.

MLK-19700-2: arm64: dts: imx8mq-evk: Remove LCDIF+RM67191 dtb from Makefile
The LCDIF resolution has to be limited to 1280x720 due to system bandwidth limitation. Since the RM67191 DSI panel can't handle this resolution, just remove the dtb from Makefile. Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
0 Kudos
Reply

5,769 Views
yokai_yang
Contributor II

Hi, Carol,

Thanks for the information. It is really important.

I think what you posted is one of commit log from NXP kernel repository ?

I found nothing with the key word, "MLK-19700-2".

Could you kindly provide the source URL for that commit if it is allowed?

0 Kudos
Reply

5,769 Views
harry18456
Contributor II
0 Kudos
Reply

5,770 Views
sotero
Contributor III

Hi Yokai,

I had exactly the same problem. It was a problem with the MIPI flags. Try these flags:

dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_VIDEO_HSE;

0 Kudos
Reply

5,770 Views
yokai_yang
Contributor II

Hi, Santiago,

Thanks for the reply.

The original panel timing and flag are okay when using MIPI driven by DCSS.

Of course I tried the flags you suggested but the result was the same.

Thank you.

0 Kudos
Reply

5,772 Views
sotero
Contributor III

Hi Yokai,

try also to change drm_display_mode flags to .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC.

imx8m-var-dart: Fixed LVDS panel clock and DSI definitions · varigit/linux-imx@836418f · GitHub 

0 Kudos
Reply

5,772 Views
yokai_yang
Contributor II

Hi, Santiago,

After applying the changes on the flags, it showed nothing no matter DCSS and LCDIF was used. :smileysad:

Those flags seem to depend on the panel. The original configuration at least works when using MIPI driven by DCSS.

Do you have any idea How I make sure the LCDIF is actually enabled and starts to drive the MIPI?

0 Kudos
Reply