imx8mq lcd not work.

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

imx8mq lcd not work.

3,574 Views
kangmw086
Contributor III

hi

i'm use imx8mq

I checked that the LCD was running in YOCTO Linux kernel version 4.9.88.

However, LCD do not work as YOTO zeus is used and kernel version is changed to 5.4.70.

It seems that "mipi_dis_bridge" is no longer supported on the device-tree.

The display panel uses ti, sn65dsi8x.

Device-tree similarly modified the file "imx8mq-evk-lcdif-rm67191.dts".

 

kernel log..5.4.70

 

[ 2.043644] >>>>>>>>>>>>>>>>>>>>>>> DSI85-I2C: Probe called!
[ 2.150884] Goodix-TS 1-005d: ID 911, version: 1050
[ 2.156176] Goodix-TS 1-005d: Direct firmware load for goodix_911_cfg.bin failed with error -2
[ 2.164817] Goodix-TS 1-005d: Falling back to sysfs fallback for: goodix_911_cfg.bin
[ 2.178353] i2c i2c-1: IMX I2C adapter registered
[ 2.184445] ak4458 2-0010: 2-0010 supply DVDD not found, using dummy regulator
[ 2.191740] ak4458 2-0010: 2-0010 supply AVDD not found, using dummy regulator
[ 2.200251] ak4458 2-0012: 2-0012 supply DVDD not found, using dummy regulator
[ 2.207533] ak4458 2-0012: 2-0012 supply AVDD not found, using dummy regulator
[ 2.216139] ak5558 2-0013: 2-0013 supply DVDD not found, using dummy regulator
[ 2.223434] ak5558 2-0013: 2-0013 supply AVDD not found, using dummy regulator
[ 2.231572] ak4458 2-0011: 2-0011 supply DVDD not found, using dummy regulator
[ 2.238846] ak4458 2-0011: 2-0011 supply AVDD not found, using dummy regulator
[ 2.246722] i2c i2c-2: IMX I2C adapter registered
[ 2.251949] imx8mq-usb-phy 381f0040.usb-phy: 381f0040.usb-phy supply vbus not found, using dummy regulator
[ 2.261909] imx8mq-usb-phy 382f0040.usb-phy: 382f0040.usb-phy supply vbus not found, using dummy regulator
[ 2.279263] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.285940] [drm] No driver support for vblank timestamp query.
[ 2.295461] cdns-mhdp-imx 32c00000.hdmi: lane-mapping 0xe4
[ 2.306912] imx-dcss 32e00000.display-controller: bound 32c00000.hdmi (ops cdns_mhdp_imx_ops)
[ 2.316784] [drm] Initialized imx-dcss 1.0.0 20190917 for 32e00000.display-controller on minor 0
[ 2.353199] cdns-mhdp-imx 32c00000.hdmi: 0,ff,ff,ff,ff,ff,ff,0
[ 2.393599] cdns-mhdp-imx 32c00000.hdmi: 0,ff,ff,ff,ff,ff,ff,0
[ 2.394465] [drm] Mode: 1920x1080p148500
[ 2.419904] [drm] Pixel clock: 148500 KHz, character clock: 148500, bpc is 8-bit.
[ 2.419910] [drm] VCO frequency is 5940000 KHz
[ 2.509078] [drm] Sink Not Support SCDC
[ 2.510304] [drm] No vendor infoframe
[ 2.607013] Console: switching to colour frame buffer device 240x67
[ 2.674144] imx-dcss 32e00000.display-controller: fb0: imx-dcssdrmfb frame buffer device
[ 2.683423] [panel-sn65dsix:sn65_panel_probe] called!
[ 2.690135] [panel-sn65dsix:sn65_panel_probe] enable_gpio(device_en) : 134
[ 2.697199] [panel-sn65dsix:sn65_panel_probe] Successed to register backlight!
[ 2.704543] nwl-dsi 30a00000.mipi_dsi: [drm:nwl_dsi_host_attach] lanes=4, format=0x0 flags=0x813
[ 2.713346] [panel-sn65dsix:sn65_panel_probe] mipi_dsi_attach ok!
[ 2.719585] nwl-dsi 30a00000.mipi_dsi: [drm:imx8mq_dsi_select_input] Using LCDIF as input source
[ 2.728898] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.735522] [drm] No driver support for vblank timestamp query.
[ 2.742961] [drm] Initialized mxsfb-drm 1.0.0 20160824 for 30320000.lcdif on minor 1
[ 2.750753] [panel-sn65dsix:sn65_panel_get_modes] called!
[ 2.756251] [panel-sn65dsix:sn65_panel_get_modes] Successed to create display mode!
[ 2.767786] mxsfb 30320000.lcdif: fb1: mxsfb-drmdrmfb frame buffer device
[ 2.776253] pps pps0: new PPS source ptp0
[ 2.785744] fec 30be0000.ethernet: Invalid MAC address: 00:00:00:00:00:00

 

 

 

 

In normal operation, the following additional messages are printed

kernel log 4.9.88.....

[ 1.527731] [drm] OPIPE_CFG: gamut = 1, nl = 1, pr = 1, pix_format = 875713089
[ 2.049235] [panel-sn65dsix:sn65_panel_prepare] called!
[ 2.050845] [panel-sn65dsix:sn65_panel_prepare] gpio_get_value(device_en) : 1
[ 2.050949] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Now Configuring
[ 2.076415] Config END
[ 2.076418] [panel-sn65dsix:sn65dsi85_reconfig] called!
[ 2.083502] [panel-sn65dsix:sn65dsi85_enable] OK!
[ 2.083530] [panel-sn65dsix:sn65_panel_prepare] mipi_dsi_dcs_exit_sleep_mode!
[ 2.208886] [panel-sn65dsix:sn65_panel_prepare] mipi_dsi_dcs_set_display_on!
[ 2.224850] [panel-sn65dsix:sn65_panel_enable] called!
[ 2.224858] panel-ti-sn65dsi8x 30a00000.mipi_dsi_bridge.0: New brightness: 255
[ 2.256847] Console: switching to colour frame buffer device 128x37
[ 2.340243] imx-drm display-subsystem: fb0: frame buffer device

 

In kernel 5.4.70, the panel driver no longer works.

Please give me some advice.

regards.

0 Kudos
Reply
9 Replies

3,572 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi

 

Did you  config timing parms?Can you tell me the changes you have done in kernel?

BR

Zhiming

0 Kudos
Reply

3,566 Views
kangmw086
Contributor III

Timing was defined as follows.

 

&mipi_dsi {
status = "okay";
fsl,clock-drop-level = <2>;

panel@0 {
compatible = "ti,panel-sn65dsi8x";
reg = <0>;
pinctrl-0 = <&pinctrl_mipi_dsi_en>;
pinctrl-names = "default";
reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>;
dsi-lanes = <4>;
lvds-format = <1>;
video-mode = <2>;
width-mm = <68>;
height-mm = <121>;

//target = <&i2c2>;
device_en = <&gpio5 6 GPIO_ACTIVE_HIGH>;
backlight = <&lvds_backlight0>;
client-device = <&sn65dsi>;

display-timings {
timing {
clock-frequency = <61000000>;
hactive = <1024>;
vactive = <600>;

hsync-len = <32>;
hback-porch = <160>;
hfront-porch = <48>;

vsync-len = <2>;
vback-porch = <20>;
vfront-porch = <2>;

hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};


port {
panel_in: endpoint {
remote-endpoint = <&mipi_dsi_out>;
};
};
};

ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
mipi_dsi_in: endpoint {
remote-endpoint = <&lcdif_mipi_dsi>;
};
};

port@1 {
reg = <1>;
mipi_dsi_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};

 

This parameter worked on kernel 4.9.88 .

 

think you.

0 Kudos
Reply

3,559 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Can you provide whole  logs in L5.X and L4.X for me to compare?

0 Kudos
Reply

3,554 Views
kangmw086
Contributor III

yes.

Attached below.

[panel-sn65dsix:sn65_panel_probe]  --> This is the log I added.

 

thank you.

0 Kudos
Reply

3,541 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi

The issue is caused by "imx-dcss 32e00000.display-controller: ctxld: can't get irq number"

The irq number is in dtsi,but it can not parse correctly.

It seem relates with irqsteer in imx8mq.dtsi

irqsteer: interrupt-controller@32e2d000 {
compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer";
reg = <0x32e2d000 0x1000>;
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>;
clock-names = "ipg";
fsl,channel = <0>;
fsl,num-irqs = <64>;
interrupt-controller;
#interrupt-cells = <1>;
};

 

The irq should be correct, but not correct in your screen.

BR

Zhiming

0 Kudos
Reply

3,448 Views
kangmw086
Contributor III

I'm still facing the same problem.

I don't know how to solve "ctxld: can't get irq number ".

Running Gstreamer -> videotestsrc ! kmssink will cause the LCD driver to run and kill the system.

0 Kudos
Reply

3,532 Views
kangmw086
Contributor III

Do I need a patch for the device tree?

The imx8mq.dtsi file is the same as the irqsteer you gave me.

 

my imx8mq-evk.dts file is

&irqsteer {
status = "okay";

};

&dcss {
status = "okay";

port@0 {
dcss_out: endpoint {
remote-endpoint = <&hdmi_in>;
};
};
};

&hdmi {
compatible = "cdn,imx8mq-hdmi";
lane-mapping = <0xe4>;
status = "okay";
port@1 {
hdmi_in: endpoint {
remote-endpoint = <&dcss_out>;
};
};
};

 

dcss is connected with hdmi.

Please let me know what I need to fix.

thank you.

0 Kudos
Reply

2,671 Views
fthm
Contributor I

Hi @kangmw086, have you solved this problem? Cause I'm passing for the same issue.

Let me know if there is a solution.

BR,

fthm

0 Kudos
Reply

1,072 Views
Romain_KM
Contributor I

I am afraid to see no solutions on this topic, probably faced several and several times.

irqsteer is already defined in dtsi and no child dts or dtsi are overriding this node apparently.
Could you provide some advises/checks for investigation please?

0 Kudos
Reply