From: Brian Norris <briannorris@chromium.org>
To: Derek Basehore <dbasehore@chromium.org>
Cc: linux-kernel@vger.kernel.org, thierry.reding@gmail.com,
jingoohan1@gmail.com, lee.jones@linaro.org,
linux-pwm@vger.kernel.org
Subject: Re: [PATCH v2] pwm_bl: Fix overflow condition
Date: Tue, 29 Aug 2017 13:46:58 -0700 [thread overview]
Message-ID: <20170829204656.GA12941@google.com> (raw)
In-Reply-To: <20170829203434.6826-1-dbasehore@chromium.org>
On Tue, Aug 29, 2017 at 01:34:34PM -0700, Derek Basehore wrote:
> This fixes an overflow condition that can happen with high max
> brightness and period values in compute_duty_cycle. This fixes it by
> using a 64 bit variable for computing the duty cycle.
>
> Signed-off-by: Derek Basehore <dbasehore@chromium.org>
> ---
I believe this is the correct v2 patch, and I agree that Derek is
confused by his mail client :)
Reviewed-by: Brian Norris <briannorris@chromium.org>
> drivers/video/backlight/pwm_bl.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
> index 76311ec5e400..5ccc8e34b7a6 100644
> --- a/drivers/video/backlight/pwm_bl.c
> +++ b/drivers/video/backlight/pwm_bl.c
> @@ -88,14 +88,17 @@ static void pwm_backlight_power_off(struct pwm_bl_data *pb)
> static int compute_duty_cycle(struct pwm_bl_data *pb, int brightness)
> {
> unsigned int lth = pb->lth_brightness;
> - int duty_cycle;
> + u64 duty_cycle;
>
> if (pb->levels)
> duty_cycle = pb->levels[brightness];
> else
> duty_cycle = brightness;
>
> - return (duty_cycle * (pb->period - lth) / pb->scale) + lth;
> + duty_cycle *= pb->period - lth;
> + do_div(duty_cycle, pb->scale);
> +
> + return duty_cycle + lth;
> }
>
> static int pwm_backlight_update_status(struct backlight_device *bl)
> --
> 2.14.1.342.g6490525c54-goog
>
next prev parent reply other threads:[~2017-08-29 20:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-29 20:34 [PATCH v2] pwm_bl: Fix overflow condition Derek Basehore
2017-08-29 20:46 ` Brian Norris [this message]
2017-08-30 14:27 ` Thierry Reding
2017-08-30 16:26 ` Brian Norris
2017-09-04 15:16 ` Lee Jones
-- strict thread matches above, loose matches on Subject: below --
2017-08-29 20:40 Derek Basehore
2017-08-29 20:42 ` dbasehore .
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170829204656.GA12941@google.com \
--to=briannorris@chromium.org \
--cc=dbasehore@chromium.org \
--cc=jingoohan1@gmail.com \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.