Hi everyone,
We are currently adapting a new MIPI-DSI display on a Verdin i.MX8M Mini. For initial boot tests we used the tdx-reference-multimedia-image and the display worked as expected. However, with the same changes the display does not render correctly on Torizon OS 6.8.x.
When we build the Torizon image and run the Weston container, diagonal bands/stripes appear on the screen once Weston starts. These distortions do not appear during the splash screen — the splash screen is shown correctly (solid blue). I attach screenshots where we set the Weston background to a green color to make the bands more visible, and a short video that shows the splash screen followed by Weston and our application starting.
Attachments
- Screenshot:
weston_green_1.jpg - Screenshot:
weston_green_2.jpg - Photo / video:
splash_then_weston.mp4(blue splash screen followed by Weston start)
Do you have any idea what might be causing the diagonal bands when Weston runs, or where we should start investigating?
Here is the DTS we are using to initialize the display.
#include <dt-bindings/gpio/gpio.h>
#include "dt-bindings/interrupt-controller/irq.h"
/ {
compatible = "toradex,verdin-imx8mm";
};
&gpu {
status = "okay";
};
&lcdif {
status = "okay";
};
&backlight {
status = "okay";
};
&mipi_dsi {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
panel@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "tdo,ET055wu01";
reg = <0>;
backlight = <&backlight>;
dsi-lanes = <4>;
video-mode = <0>; /* 0: burst mode 1 (not supported): non-burst mode with sync event 2: non-burst mode with sync pulse */
reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
status = "okay";
};
};
&i2c4 {
#address-cells = <1>;
#size-cells = <0>;
touchscreen@5d {
compatible = "goodix,gt911";
reg = <0x5d>;
/*
* Verdin GPIO_9_DSI
* (TOUCH_INT#, SODIMM 17, IRQ albeit currently unused)
*/
interrupt-parent = <&gpio3>;
interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
irq-gpios = <&gpio3 15 IRQ_TYPE_EDGE_FALLING>;
/* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 21 ) */
reset-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>;
status = "okay";
};
};
I´m also sharing the timings and flags of this display
static const struct drm_display_mode ET055wu01_mode = {
.clock = 158400, // 158400.hdisplay = 1080, .hsync_start = 1080 + 20, // + HFP .hsync_end = 1080 + 20 + 6, // + Hsync width .htotal = 1080 + 20 + 6 + 204, // + HBP .vdisplay = 1920, .vsync_start = 1920 + 4, // + VFP .vsync_end = 1920 + 4 + 4, // + Vsync width .vtotal = 1920 + 4 + 4 + 79, // + VBP .width_mm = 62.2, .height_mm = 110.6, .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NHSYNC,};
static const struct mipi_dsi_panel_panel_desc ET055wu01_desc= {
.mode = &ET055wu01_mode,
.lanes = 4,
.flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO_BURST |
MIPI_DSI_MODE_LPM,
.format = MIPI_DSI_FMT_RGB888,
.supply_names = infoblock_supply_names,
.num_supplies = ARRAY_SIZE(infoblock_supply_names),
.panel_sleep_delay = 200,
.init_sequence = ET055wu01_init_sequence,
};
This is my Dockerfile and the weston.ini that I used
[core]
idle-time=0
require-input=false
use-g2d=true
repaint-debug=1
[shell]
locking=false
num-workspaces=1
background-color=0xFF004400
#background-image=/etc/xdg/wallpaper.png
#background-type=centered
[output]
name=DSI-1
transform=rotate-90
# For arm64v8 use:
ARG IMAGE_ARCH=linux/arm64
#ARG BASE_NAME=weston
# For arm64v8 with Vivante use:
ARG BASE_NAME=weston-vivante
# Check out https://developer.toradex.com/torizon/working-with-torizon/provided-containers/torizoncore-containers-tags-and-versioning
ARG IMAGE_TAG=3
ARG DOCKER_REGISTRY=torizon
FROM --platform=$IMAGE_ARCH $DOCKER_REGISTRY/$BASE_NAME:$IMAGE_TAG AS base
COPY ./weston.ini /etc/xdg/weston/
COPY ./weston.ini /etc/xdg/weston-dev/
COPY ./wallpaper.png /etc/xdg/


