Rust DRM driver aims to free DisplayLink DL3 docks from proprietary stack
Mike Lothian’s Vino series targets three dock generations as ordinary KMS devices, after earlier revisions never lit a panel.
Mike Lothian has posted a third revision of Vino, a Rust DRM/KMS driver meant to drive DisplayLink DL3 USB docks as ordinary Linux display devices and retire the long-standing mix of an out-of-tree EVDI kernel module and the closed-source DisplayLinkManager daemon.
DisplayLink DL3 hardware does not speak a standard display protocol. The host compresses each frame with a vendor codec, sends it over bulk USB, and runs a control plane sealed with AES-CTR after an HDCP 2.2 exchange. Until now that stack lived outside the mainline tree. Lothian reports that v1 and v2 never lit a panel; this series does, on three hardware families, bringing up a real desktop from cold boot with none of the vendor userspace loaded.
The supported silicon spans Ella (DL-3x00), Ridge (DL-6xxx, including the Dell D6000), and Navarro (DL-7400 quad-display docks). Family differences,shared pipes that must not be blanked with black, single-EDID handlers that can cross-talk between connectors, dual video endpoints, 10-bit PQ modes,are captured in per-family profiles so the driver keeps one code path. The driver binds a DisplayLink display function rather than a fixed product-ID list, so newer docks can still be offered to it. It also reads the dock’s real firmware version from a vendor descriptor (bcdDevice does not move on update) and can apply a strictly newer package over USB DFU, or leave the shipped image alone if no package is present.
Automated review on the dri-devel list flagged several high-severity concerns still open in this revision, among them sleeping work in atomic commit paths, possible firmware-family mismatches on update, control-plane key handling for empty connectors, and bandwidth over-commit under concurrent modesets. Those will need resolution before the driver is merge-ready. Even so, the series is the first public in-kernel path that claims to replace the proprietary DisplayLink DL3 stack with a clean-room DRM driver written in Rust.