Hi All,
I am working on a custom IMX6 Solo board with LCD. I'm seeing banding issue on the screen when displaying gradient images (see attachements). The colour is fine when displaying solid colours but IMG_20200304_103457.jpg should be smooth without any lines. I'm on kernel imx_4.9.88_2.0.0_ga and using a 5 inch (800x480) LCD. Any ideas on how to solve this issue?
Relevant sections from the device tree:
display0: display@di0 {
compatible = "fsl,imx-parallel-display";
interface-pix-fmt = "rgb24";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcd>;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <30000000>;
hactive = <800>;
vactive = <480>;
hfront-porch = <40>;
hback-porch = <40>;
hsync-len = <48>;
vback-porch = <29>;
vfront-porch = <13>;
vsync-len = <3>;
hsync-active = <1>;
vsync-active = <1>;
de-active = <1>;
pixelclk-active = <1>;
};
};
port {
reg = <0>;
display0_in: endpoint {
remote-endpoint = <&ipu1_di0_disp0>;
};
};
};
&dcic1 {
dcic_id = <0>;
dcic_mux = "dcic-lcdif";
status = "okay";
};
&ipu1_di0_disp0 {
remote-endpoint = <&display0_in>;
};
Best wishes,
Daniel
Hi Bio_TICFSL,
Thank you for your reply.
Unfortunately setting hsync and vsync-active to 0 made no difference. Neither did changing the other parameters you mentioned. I built an image for the IMX6 SX SABRE-SDB to make sure the LCD parameters (hsync-active, vsync-active,...) I have are correct and the image on the dev board is smooth using the same LCD. I managed to reproduce the issue on the dev board by setting the 'bits-per-pixel' parameter to 16 instead of 24. This would suggest that the bits per pixel on my board is 16 instead of 24. I had a look at the driver parallel-display.c and couldn't see an equivalent parameter to 'bits-per-pixel' to explicitly set it to 24 but tried adding both 'bits-per-pixel' and 'bus-with' anyway without success. The parameters I used on the dev board are:
Do you know how I can make sure the bits per pixel is set to 24 on the IMX6 Solo?
Regards,
Daniel
Hi Bio_TICFSL,
I'm almost certain that the bits-per-pixel is 16 on my board; I checked in /sys/class/graphics/fb0/bits_per_pixel and it is returning 16.
I am struggling to find out the issue with is happened in my HDMI display and I can't find any solution
I used udoo neo board with android os And I have one HDMI LCD with touch display https://www.waveshare.com/w/upload/c/cc/7inch_HDMI_LCD_%28C%29_User_Manual.pdf
LCD is working fine with PC and Raspberry Pi 3 but when I connect this display to my Udoo Neo board it shows vignetted screen border
The DTS file has:
/ {
codec_hdmi: hdmi-codec {
compatible = "udoo,tda19988-codec";
status = "okay";
};
sound_hdmi {
compatible = "udoo,audio-tda19988";
model = "imx6sx-tda19988";
cpu-dai = <&ssi2>;
audio-codec = <&codec_hdmi>;
mux-int-port = <2>;
mux-ext-port = <5>;
ssi-controller = <&ssi2>;
status = "okay";
};
};
&i2c3 {
status = "okay";
tda19988: tda19988@34 {
compatible = "udoo,tda19988";
reg = <0x34>;
status = "okay";
};
};
&lcdif1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat_0
&pinctrl_lcdif_ctrl_0>;
lcd-supply = <&vgen5_reg>;
display = <&display0>;
status = "okay";
display0: display {
bits-per-pixel = <32>;
bus-width = <24>;
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <74250000>;
hactive = <1280>;
vactive = <720>;
hback-porch = <220>;
hfront-porch = <110>;
vback-porch = <20>;
vfront-porch = <5>;
hsync-len = <40>;
vsync-len = <5>;
hsync-active = <0>;
vsync-active = <1>;
de-active = <1>;
pixelclk-active = <0>;
};
};
};
};
&dcic1 {
dcic_id = <0>;
dcic_mux = "dcic-lcdif1";
status = "okay";
};
&ssi2 {
fsl,mode = "i2s-master";
status = "okay";
};
&audmux {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_audmux_hdmi>;
status = "okay";
};
Hi Hiten,
I'm not quite sure what the issue is - have you tried setting both bits-per-pixel and bus-width to 24? You might have better luck submitting a new question with IMX SoloX tag. You might also want to provide information about your kernel version, a picture of what you are seeing on the LCD. It would also be worth checking the LCD's datasheet to make sure all the display timing values are correct - I couldn't see that information on the user manual you provided.
Daniel
ok thanks, I posted the question https://community.nxp.com/docs/DOC-94139
Hello Daniel,
The code looks ok I, just change
hsync-active = <0>;
vsync-active = <0>;
if pulse is active low or ignored also I should play whit
- hfront-porch, hback-porch, hsync-len, fvfront-porch, vback-porch, vsync-len or the horizontal and vertical display timing parameters |
Regards