]> Gentwo Git Trees - linux/.git/commitdiff
drm/i915/color: Preserve sign bit when int_bits is Zero
authorChaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Wed, 3 Dec 2025 08:52:02 +0000 (14:22 +0530)
committerJani Nikula <jani.nikula@intel.com>
Thu, 4 Dec 2025 17:43:46 +0000 (19:43 +0200)
When int_bits == 0, we lose the sign bit when we do the range check
and apply the mask.

Fix this by ensuring a minimum of one integer bit, which guarantees space
for the sign bit in fully fractional representations (e.g. S0.12)

Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Link: https://patch.msgid.link/20251203085211.3663374-7-uma.shankar@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_color.c

index 33fe5c9b4663bc25a4c14ad7540a4608010b3660..81b87fed887896196c28bbdfd8c536627c69a030 100644 (file)
@@ -613,6 +613,8 @@ static u16 ctm_to_twos_complement(u64 coeff, int int_bits, int frac_bits)
        if (CTM_COEFF_NEGATIVE(coeff))
                c = -c;
 
+       int_bits = max(int_bits, 1);
+
        c = clamp(c, -(s64)BIT(int_bits + frac_bits - 1),
                  (s64)(BIT(int_bits + frac_bits - 1) - 1));