A Current Overview of the DRM KMS Driver-Side APIs - Paul Kocialkowski, Bootlin
Channel: The Linux Foundation
Date: 2023-07-12

A Current Overview of the DRM KMS Driver-Side APIs - Paul Kocialkowski, Bootlin

DRM KMS has been around for over ten years now and is the de-facto standard API for display hardware support in Linux. It has replaced the legacy fbdev API that should eventually be removed from the kernel entirely. Yet DRM KMS is a complete (and complex) framework that has evolved quite a lot over time, bringing support for modern hardware and interfaces as well as important features such as atomic configuration, zero-copy buffer sharing, fences and many more. A downside of this is the relative complexity of writing new drivers, which can sometimes feel a bit discouraging to newcomers. This talk will highlight the main aspects of the current DRM KMS kernel-side APIs and how to use them for writing such drivers. It will cover various topics such as memory management, internal pipeline configuration, bridge and panel handling as well as complex interfaces handling (such as MIPI DSI and DP). Examples from actual drivers in the tree will be presented, as well as impressions from personal experience when writing the logicvc-drm driver and working on various panel and bridge drivers.