]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/color: Fix HDR pre-CSC LUT programming loop
authorPranay Samala <pranay.samala@intel.com>
Tue, 19 May 2026 07:53:08 +0000 (13:23 +0530)
committerTvrtko Ursulin <tursulin@ursulin.net>
Tue, 26 May 2026 08:31:44 +0000 (09:31 +0100)
The integer lut programming loop never executes completely due to
incorrect condition (i++ > 130).

Fix to properly program 129th+ entries for values > 1.0.

Cc: <stable@vger.kernel.org> #v6.19
Fixes: 82caa1c8813f ("drm/i915/color: Program Pre-CSC registers")
Signed-off-by: Pranay Samala <pranay.samala@intel.com>
Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260519075308.383877-1-pranay.samala@intel.com
(cherry picked from commit f33862ec3e8849ad7c0a3dd46719083b13ade248)
Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
drivers/gpu/drm/i915/display/intel_color.c

index e7950655434b83b54ba16c3fc54d53cb9fbd35f9..6d1cffc6d2be21cbf71b30c93e891de112096401 100644 (file)
@@ -3976,7 +3976,7 @@ xelpd_program_plane_pre_csc_lut(struct intel_dsb *dsb,
                                intel_de_write_dsb(display, dsb,
                                                   PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
                                                   (1 << 24));
-                       } while (i++ > 130);
+                       } while (i++ < 130);
                } else {
                        for (i = 0; i < lut_size; i++) {
                                u32 v = (i * ((1 << 24) - 1)) / (lut_size - 1);