> 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
