Re: FAILED: patch "[PATCH] pwm: jz4740: Enhance precision in calculation of duty cycle" failed to apply to 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 23, 2020 at 09:25:34AM +0200, Uwe Kleine-König wrote:
> On Mon, Jun 22, 2020 at 08:39:43PM -0400, Sasha Levin wrote:
> > On Fri, Jun 19, 2020 at 03:45:07PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
> > > 
> > > The patch below does not apply to the 5.4-stable tree.
> > > If someone wants it applied there, or to any other stable or longterm
> > > tree, then please email the backport, including the original git commit
> > > id to <stable@xxxxxxxxxxxxxxx>.
> 
> See below for a backport.
> 
> > > thanks,
> > > 
> > > greg k-h
> > > 
> > > ------------------ original commit in Linus's tree ------------------
> > > 
> > > From 9017dc4fbd59c09463019ce494cfe36d654495a8 Mon Sep 17 00:00:00 2001
> > > From: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
> > > Date: Wed, 27 May 2020 13:52:23 +0200
> > > Subject: [PATCH] pwm: jz4740: Enhance precision in calculation of duty cycle
> > > MIME-Version: 1.0
> > > Content-Type: text/plain; charset=UTF-8
> > > Content-Transfer-Encoding: 8bit
> > > 
> > > Calculating the hardware value for the duty from the hardware value of
> > > the period resulted in a precision loss versus calculating it from the
> > > clock rate directly.
> > > 
> > > (Also remove a cast that doesn't really need to be here)
> > > 
> > > Fixes: f6b8a5700057 ("pwm: Add Ingenic JZ4740 support")
> > > Cc: <stable@xxxxxxxxxxxxxxx>
> > > Suggested-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> > > Reviewed-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> > > Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
> > > Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
> > 
> > I suspect that the fixes tag should have been pointing to ce1f9cece057
> > ("pwm: jz4740: Use clocks from TCU driver") instead.
> 
> No, f6b8a5700057 is right. The cast that was dropped isn't there, but
> the suboptimal calculation is.
> 
> The backport on top of 5.4.y looks as follows:
> 
> From b39d3d4c6ba4b7ba8b97a0f7e650924920e4d95c Mon Sep 17 00:00:00 2001
> From: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
> Date: Wed, 27 May 2020 13:52:23 +0200
> Subject: [PATCH] pwm: jz4740: Enhance precision in calculation of duty cycle
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> 
> commit 9017dc4fbd59c09463019ce494cfe36d654495a8 upstream.
> 
> Calculating the hardware value for the duty from the hardware value of
> the period resulted in a precision loss versus calculating it from the
> clock rate directly.
> 
> Fixes: f6b8a5700057 ("pwm: Add Ingenic JZ4740 support")
> Cc: <stable@xxxxxxxxxxxxxxx>
> Suggested-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> Reviewed-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
> Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
> [ukl: backport to v5.4.y and adapt commit log accordingly]
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> ---
>  drivers/pwm/pwm-jz4740.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pwm/pwm-jz4740.c b/drivers/pwm/pwm-jz4740.c
> index 9d78cc21cb12..d0f5c69930d0 100644
> --- a/drivers/pwm/pwm-jz4740.c
> +++ b/drivers/pwm/pwm-jz4740.c
> @@ -108,8 +108,8 @@ static int jz4740_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
>  	if (prescaler == 6)
>  		return -EINVAL;
>  
> -	tmp = (unsigned long long)period * state->duty_cycle;
> -	do_div(tmp, state->period);
> +	tmp = (unsigned long long)rate * state->duty_cycle;
> +	do_div(tmp, NSEC_PER_SEC);
>  	duty = period - tmp;
>  
>  	if (duty >= period)
> 

Thanks, now queued up.

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux