How can I increase the HDMI display resolution on the IMX7ULP-EVK with embedded-linux and framebuffer-backend?
I found inside the kernel the mxc_edid.c file. I tried some other video-mode inside the kernel device tree, but with all other settings my Monitor doesn't accept the HDMI as an valid input. Only 640x480 is working.
I've also tried to set 1024x768 with the following timings (which should be VESA standard), but it doens't work:
NULL, 60, 1024, 768, 15384, 160, 24, 29, 3, 136, 6, 0, FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,
Then I tried with a resolution of 800x600:
NULL, 60, 800, 600, 20000, 64, 56, 23, 47, 120, 6, FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,
On this setting the Monitor responds to HDMI input, but the screen leaves black. From the info screen I can see that the driven frequency is 71HZ instead of 60HZ.
Does anyone has a tip what I am doing wrong?
Best regards,
Nico
Hi Nico_H
on i.MX7ULP EVK board for hdmi ADV7535 mipi-dsi bridge is used, connected to mipi-dsi module.
Mipi-dsi internally is connected to LCDIF module and one can try to adjust its timings in dts:
&lcdif {..disp-dev = "mipi_dsi_northwest";..
display-timings {..
Best regards
igor
Hi Igor,
inside the lcdif entry the value disp-dev = "mipi_dsi_northwest"; is defined, so the driver will use one of the display resolution defined in mxc_edid.c instead of the timing you mentioned.
The used display-resolution is defined by
adv7535: adv7535@3d { compatible = "adi,adv7535"; reg = <0x3d>; /* PD pin is low */ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_dsi_hdmi>; interrupt-parent = <&gpio_ptc>; interrupts = <18 IRQ_TYPE_EDGE_FALLING>; video-mode = <1>; /* * Only support CEA modes. * Reference mxc_edid.c */ dsi-traffic-mode = <0>; bpp = <24>; status = "disabled"; };
But it is not possible to set any other resolution than 640x480.
Best regards,
Nico
Hi Nico_H
from referenced part of dts:
video-mode = <1>; /*
* Only support CEA modes...
both "800x600,1024x768" are not CEA modes.
CEA resolutions are described, for example in
Table 33-3. Video Modes i.MX 6Dual/6Quad Applications Processor Reference Manual
Best regards
igor
Hi Igor,
thank you for your answer.
Now I tried:
root@imx7ulpevk:/sys/class/graphics/fb0# cat mode
U:720x576p-50
root@imx7ulpevk:/sys/class/graphics/fb0# U:720x576p-50
Out of the PDF it should be a CEA resolution (see attached image). Also the used HDMI monitor shows in it's EDID that this resolution is supported, but it won't accept the HDMI as an Input. It switches all the time between it's sources.
Again to the beginning: The only working resolution for now is 640x480.
Can you get another resolution working on IMX7ULP-EVK with embedded linux (5.4.47-2.2.0+g5ec03d06f54e)?
Best regards,
Nico
Hi Nico
one can try to debug it in driver or with other hdmi monitors:
in function adv7535_probe() check what video modes obtained from hdmi panel:
line 306 i2c_set_clientdata(info->i2c_dsi_cec, info);
sets obtained resolutions
if ((ret = adv7535_setup_cfg(info)))
if ((ret = adv7535_vmode_cfg(info)))
Best regards
igor