Hi, I’m migrating a device from Yocto thud to scarthgap and moving from a custom 4.1 kernel (fmntf/linux_kernel 4.1.15_2.x-udoo) to linux-fslc-imx 6.6. Hardware is Udooneo Extended (iMX6SoloX) with the stock 7" LVDS panel (UMSH-8596MD-20T w/ DS90CF364 + ST1332 touch). Goal: run X11 with etnaviv (hardware accelerate) because the newer imx-viv-gpu doesn’t support X11 for our Electron apps. What works: Screen backlight and splash are visible during early boot. Touch works. Problem: At a certain point during boot the LVDS image gets heavy tearing/grey lines. X starts but the same tearing appears. Looks like a mode/driver handover problem. What I’m attaching (below): current device-tree fragment (imx6sx-udoo-neo-lvds7.dtsi). some useful logs and outputs I captured (dmesg, Xorg log, /dev/dri listing). Current device-tree fragment (imx6sx-udoo-neo-lvds7.dtsi) which is mostly the same as the one from kernel 4.1: Code: / { reg_lcd_pwr: regulator-lcdpwr { compatible = "regulator-fixed"; regulator-name = "LCD POWER"; gpio = <&gpio4 27 GPIO_ACTIVE_LOW>; enable-active-high; regulator-boot-on; regulator-always-on; status = "okay"; }; backlight_regulator: regulator-backlight { compatible = "regulator-fixed"; regulator-name = "LCD BACKLIGHT BL_ON"; gpio = <&gpio6 3 GPIO_ACTIVE_LOW>; enable-active-high; regulator-boot-on; regulator-always-on; }; }; &lcdif2 { display = <&display1>; disp-dev = "ldb"; status = "okay"; display1: display@1 { bits-per-pixel = <16>; bus-width = <18>; }; }; &ldb { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ldb_0>; lcd-supply = <®_lcd_pwr &backlight_regulator>; status = "okay"; lvds-channel@0 { fsl,data-mapping = "spwg"; fsl,data-width = <18>; crtc = "lcdif2"; status = "okay"; display-timings { native-mode = <&timing1>; timing1: LDB-WVGA { clock-frequency = <33660000>; hactive = <800>; vactive = <480>; hback-porch = <56>; hfront-porch = <50>; vback-porch = <23>; vfront-porch = <20>; hsync-len = <150>; vsync-len = <2>; }; }; }; }; &i2c1 { touchscreen: st1232@55 { compatible = "sitronix,st1232"; reg = <0x55>; interrupt-parent = <&gpio6>; interrupts = <4 IRQ_TYPE_LEVEL_LOW>; pinctrl-0 = <&pinctrl_st1232>; pinctrl-names = "default"; gpios = <&gpio6 5 GPIO_ACTIVE_LOW>; }; }; &dcic2 { dcic_id = <1>; dcic_mux = "dcic-lvds"; status = "okay"; }; &lcdif1 { /* Disable HDMI */ status = "disabled"; }; &i2c3 { /* Disable HDMI */ status = "disabled"; }; Here's some logs and outputs: Code: user@host:~# dmesg | grep -E "etnaviv|drm|mxsfb" [ 1.236707] etnaviv etnaviv: bound 1800000.gpu (ops 0xc0d7c0b8) [ 1.244047] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645 [ 1.250843] etnaviv-gpu 1800000.gpu: Need to move linear window on MC1.0, disabling TS [ 1.259865] [drm] Initialized etnaviv 1.4.0 20151214 for etnaviv on minor 0 [ 1.267241] Error: Driver 'mxsfb' is already registered, aborting... [ 2.141557] mxsfb 2224000.lcdif: supply lcd not found, using dummy regulator [ 2.237241] mxsfb 2224000.lcdif: registered mxc display driver ldb [ 2.342101] mxsfb 2224000.lcdif: initialized user@host:~# ls /dev/dri/ by-path card0 renderD128 user@host:~# ls /usr/lib/xorg/modules/drivers/modesetting_drv.so /usr/lib/xorg/modules/drivers/modesetting_drv.so user@host:~# grep -E "(EE|WW|etnaviv|modesetting|DRM)" /var/log/Xorg.0.log [ 110.902] Current Operating System: Linux pad2 6.6.101-lf-6.6.y-lf-6.6.y-g36cee4c51e9a #1 PREEMPT Fri Aug 8 14:52:48 UTC 2025 armv7l (WW) warning, (EE) error, (NI) not implemented, (??) unknown. [ 110.944] (WW) The directory "/usr/share/fonts/X11/misc" does not exist. [ 110.944] (WW) The directory "/usr/share/fonts/X11/TTF" does not exist. [ 110.944] (WW) The directory "/usr/share/fonts/X11/OTF" does not exist. [ 110.944] (WW) The directory "/usr/share/fonts/X11/Type1" does not exist. [ 110.944] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist. [ 110.945] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist. [ 110.966] (II) Platform probe for /sys/devices/platform/etnaviv/drm/card0 [ 111.079] falling back to /sys/devices/platform/etnaviv/drm/card0 [ 111.416] (WW) Falling back to old probe method for fbdev [ 111.707] (II) Initializing extension MIT-SCREEN-SAVER [ 114.495] (II) XINPUT: Adding extended input device "st1232-touchscreen" (type: TOUCHSCREEN, id 6) user@host:~# glxinfo | grep -E "OpenGL renderer|OpenGL vendor" Error: unable to open display user@host:~# export DISPLAY=:0 user@host:~# glxinfo | grep -E "OpenGL renderer|OpenGL vendor" Error: unable to open display :0 What I expect: a stable LVDS framebuffer handed to KMS/etnaviv and a working X11 modesetting driver with hw accel (no tearing). What I’ve already tried: Using etnaviv (driver loads; /dev/dri/card0 exists). Confirmed modesetting driver is present. Left LVDS node mostly identical to old 4.1 .dtsi. Questions / hints I think are relevant (please point out if I’m wrong): Is the tearing likely caused by a DT timing mismatch or by a double-driver handover (mxsfb vs. etnaviv/modesetting)? I see Error: Driver 'mxsfb' is already registered, aborting.... Do I need to enable/disable specific kernel CONFIGs (fbdev vs drm/KMS) or build etnaviv as builtin vs module for a clean handover? Are there DT properties I’m missing for the LDB -> lcdif2 CRTC mapping (crtc name, fsl,data-mapping, pixelclock) that would cause visible tearing? Anything obvious in the dts that will break atomic modeset / KMS? What I can provide on request: uname -a, kernel .config, full dmesg, lsmod, cat /proc/fb, cat /sys/class/drm/*/status, and the full Xorg.0.log. Thanks for any pointers. I’m new to modern KMS/DT handover so please tell me bluntly if I misunderstood something. Hope someone is still active here