Why open source rocks – a new SM750 (Silicon Motion GPU) HDMI Driver

Push this card to real 2048-wide output or a software-scaled 2560×1080
ultrawide desktop, with bandwidth-saving colour conversion and update
optimisations for smoother performance.

Linux display driver for the single-HDMISE-DP750A-HDMIPCIe card.

Experimental:this driver is for one specific SM750 board. Optional modes
can exceed published GPU or monitor clock limits and may produce no signal,
distortion, or an unstable display. Keep SSH or another recovery route
available when trying non-EDID modes.

The tested board is sold or marked asSE-DP750A-HDMIand has all of these:

The PCI ID alone is not enough. Other SM750 cards may use VGA, a different
transmitter, or different GPIO wiring and are not currently supported.

Ubuntu 24.04 and Linux Mint 22 users can build a DKMS package locally:

The reboot matters: it lets the package blacklist Linux’s oldsm750fbdriver
before it can claim the card. The package is namedsm750hdmifb; the kernel
module issm750hdmidrm.koso it cannot be confused withsm750fb.ko.

The driver is intended forLinux 6.17 and newer. DKMS deliberately refuses
older kernels because the required DRM interfaces are not supported by this
project. The source has compatibility paths for Linux 6.17 through the 6.x
series and for Linux 7.0 onward. It currently builds and passes the full test
suite against 6.17 and 7.0 Ubuntu kernels; the manual CI workflow also builds
against Ubuntu 24.04’s 6.17 kernel headers.

There is no fixed upper version cap, but future kernels can change internal DRM
APIs. Because this is an out-of-tree driver, a new kernel version may require a
source update even though it falls within the intended6.17+range.

Prebuilt packages, when available, are published underGitHub Releases.
Building locally is recommended because DKMS compiles against the installed
kernel headers.

Applications still render in 32-bit colour. Immediately before upload, the
driver converts changed screen regions to RGB565 and applies KodeMunkie’s
ordered dither with a 94% green-channel correction. This is the default because
the SM750 framebuffer is reached over a PCIe 1.1 x1 link. At the higher
resolutions that link cannot provide responsive full-screen 32-bit updates:
XRGB8888 sends four bytes per output pixel, while RGB565 sends two. Dithered
RGB565 therefore halves device-bound pixel traffic while preserving much of
the apparent colour detail.

The table omits the commonsm750hdmidrm.prefix to keep it readable. For
example, enterenable_dma=0assm750hdmidrm.enable_dma=0in GRUB.