[PATCH 00/10] drm/i915/color: Enable SDR plane color pipeline

Chaitanya Kumar Borah
2026-03-06T17:18:13Z

This series adds color pipeline support for SDR planes in i915 and
exposes the functionality to userspace through the DRM colorop
framework.

In contrast to HDR planes, SDR planes have LUTs with smaller sizes
and a fixed function CSC block in contrast to a programmable CTM.

The series first introduces a new DRM colorop type,
DRM_COLOROP_CSC_FF, which represents fixed-function CSC blocks where
userspace selects predefined hardware conversion modes instead of
programming arbitrary matrices.

With that, the SDR plane color pipeline looks like.

[1D LUT] -> [CSC_FF] -> [1D LUT]

The series also fixes an issue in HDR pre-CSC LUT programming where the
loop condition prevented the last entries from being programmed.

Chaitanya Kumar Borah (5):
drm/colorop: Add DRM_COLOROP_CSC_FF
drm/i915/color: Add CSC on SDR plane color pipeline
drm/i915/color: Program fixed-function CSC on SDR planes
drm/i915/color: Add support for 1D LUT in SDR planes
drm/i915/color: Add color pipeline support for SDR planes

Pranay Samala (5):
drm/i915/color: Fix HDR pre-CSC LUT programming loop
drm/i915/color: Extract HDR pre-CSC LUT programming to helper function
drm/i915/color: Program Pre-CSC registers for SDR
drm/i915/color: Extract HDR post-CSC LUT programming to helper
function
drm/i915/color: Program Plane Post CSC registers for SDR planes

drivers/gpu/drm/drm_atomic.c | 4 +
drivers/gpu/drm/drm_atomic_uapi.c | 4 +
drivers/gpu/drm/drm_colorop.c | 105 +++++++
drivers/gpu/drm/i915/display/intel_color.c | 288 +++++++++++++-----
.../drm/i915/display/intel_color_pipeline.c | 37 ++-
.../drm/i915/display/intel_display_limits.h | 1 +
.../drm/i915/display/intel_display_types.h | 2 +
drivers/gpu/drm/i915/display/intel_plane.c | 12 +-
.../drm/i915/display/skl_universal_plane.c | 30 ++
include/drm/drm_colorop.h | 72 +++++
include/uapi/drm/drm_mode.h | 13 +
11 files changed, 475 insertions(+), 93 deletions(-)

--
2.25.1