Hardware & OS Details:
Board/SoC: SOM-RK3399
OS: Ubuntu 24.04 Base (Console tty only, no desktop GUI)
Interface: DisplayPort 1.2 Alt Mode via USB Type-C (card0-DP-1)
Bootloader: Image file on wiki page.
Kernel cmdline: storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.dtbo_idx=0 earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m rw root=/dev/mmcblk2p8 rootfstype=ext4 rootflags=discard data=/dev/mmcblk2p9 console=ttyFIQ0 consoleblank=0 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1
Issue Description:
When booting the SOM with the Type-C cable pre-plugged into an external monitor, the display stays blank/asleep. However, if I hot-unplug and replug the Type-C cable after the system has finished booting, the display immediately wakes up and shows the tty1 console login screen normally.
Checking sysfs shows DRM recognizes the port and supported EDID modes (cat /sys/class/drm/card0-DP-1/status returns connected, and /modes lists 1366x768), but the display pipeline/link training fails to establish automatically on cold boot.
Attempted Workarounds & Debugging Logs:
Resetting cdn-dp driver:
Triggering unbind on fec00000.dp causes an immediate Kernel crash:
Bash
echo "fec00000.dp" > /sys/bus/platform/drivers/cdn-dp/unbind # Result: Segmentation fault
Resetting FUSB302 over I2C:
Unbinding and rebinding 4-0022 under /sys/bus/i2c/drivers/fusb302/ executes cleanly, but does not trigger DP link renegotiation or wake the screen.
DRM events & Framebuffer:
Writing detect to /sys/class/drm/card0-DP-1/status and change to /sys/class/drm/card0/uevent did not wake the screen.
echo 0 > /sys/class/graphics/fb0/blank executes without error, but screen remains blank.
setterm -blank poke fails with Inappropriate ioctl for device.
Question:
Is there a known DTS patch or a safe software method to force DP link training on boot without crashing the cdn-dp driver?