AnsweredAssumed Answered

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

Question asked by yokai.yang on Nov 19, 2018
Latest reply on Nov 28, 2018 by yokai.yang

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.

Outcomes