On Thu, Sep 19, 2019 at 04:06:18PM +0200, Rasmus Villemoes wrote: > The scheduler uses a (currently private) fixed_power_int() in its load > average computation for computing powers of numbers 0 < x < 1 > expressed as fixed-point numbers, which is also what we want here. But > that requires the scale to be a power-of-2. It feels like there is some rationale missing in the description here. What is the benefit of replacing the explicit int_pow() with the implicit multiplications? Daniel. > > We could (and a following patch will) change to use a power-of-2 scale, > but for a fixed small exponent of 3, there's no advantage in using > repeated squaring. > > Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> > --- > drivers/video/backlight/pwm_bl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c > index 9252d51f31b9..aee6839e024a 100644 > --- a/drivers/video/backlight/pwm_bl.c > +++ b/drivers/video/backlight/pwm_bl.c > @@ -179,7 +179,8 @@ static u64 cie1931(unsigned int lightness, unsigned int scale) > if (lightness <= (8 * scale)) { > retval = DIV_ROUND_CLOSEST(lightness * 10, 9033); > } else { > - retval = int_pow((lightness + (16 * scale)) / 116, 3); > + retval = (lightness + (16 * scale)) / 116; > + retval *= retval * retval; > retval = DIV_ROUND_CLOSEST_ULL(retval, (scale * scale)); > } > > -- > 2.20.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel