]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/i915/display: fix the pixel normalization handling for xe3p_lpd
authorVinod Govindapillai <vinod.govindapillai@intel.com>
Fri, 30 Jan 2026 09:59:19 +0000 (11:59 +0200)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Mon, 2 Feb 2026 11:41:03 +0000 (13:41 +0200)
commit3e28a67a85f9b569066f6dfcddadb39294c0c9d4
tree96897b1ff14a52bf8820fd19b7d8f6d4d8fb08e4
parentad3ebcc2d06875738cd463fb5424cda70cd94a34
drm/i915/display: fix the pixel normalization handling for xe3p_lpd

Pixel normalizer is enabled with normalization factor as 1.0 for
FP16 formats in order to support FBC for those formats in xe3p_lpd.
Previously pixel normalizer gets disabled during the plane disable
routine. But there could be plane format settings without explicitly
calling the plane disable in-between and we could endup keeping the
pixel normalizer enabled for formats which we don't require that.
This is causing crc mismatches in yuv formats and FIFO underruns in
planar formats like NV12. Fix this by updating the pixel normalizer
configuration based on the pixel formats explicitly during the plane
settings arm calls itself - enable it for FP16 and disable it for
other formats in HDR capable planes.

v2: avoid redundant pixel normalization setting updates

v3: moved the normalization factor definition to intel_fbc.c and some
    updates to comments

v4: simplified the pixel normalizer setting handling

Fixes: 5298eea7ed20 ("drm/i915/xe3p_lpd: use pixel normalizer for fp16 formats for FBC")
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Link: https://patch.msgid.link/20260130095919.107805-1-vinod.govindapillai@intel.com
(cherry picked from commit c0dc68f4e2aa7eddb9ec6d95931f9576d8fe7334)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/display/intel_display_device.h
drivers/gpu/drm/i915/display/intel_fbc.c
drivers/gpu/drm/i915/display/intel_fbc.h
drivers/gpu/drm/i915/display/skl_universal_plane.c