> Subject: [v6 07/16] drm/i915/color: Preserve sign bit when int_bits is Zero
> 
> From: Chaitanya Kumar Borah <[email protected]>
> 
> 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)
> 
> Signed-off-by: Chaitanya Kumar Borah <[email protected]>
> Signed-off-by: Uma Shankar <[email protected]>

LGTM,
Reviewed-by: Suraj Kandpal <[email protected]>

> ---
>  drivers/gpu/drm/i915/display/intel_color.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c
> b/drivers/gpu/drm/i915/display/intel_color.c
> index a45d348c9851..aef25cb63457 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -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));
> 
> --
> 2.50.1

Reply via email to