Re: [PATCH 1/1] PWM-atmel: Fixed a bug which set the pwm clock prescaler incorrectly. In the defect code the prescaler was always one more than expected value, which resulted in the pwm output with wrong frequency and duty cycle.

From: Thierry Reding
Date: Thu Sep 25 2014 - 03:55:21 EST


On Wed, Sep 10, 2014 at 03:35:19PM -0600, hachyang@xxxxxxxxx wrote:
> From: ryang <ryang@xxxxxxxx>
>
> Signed-off-by: ryang <ryang@xxxxxxxx>
> ---
> drivers/pwm/pwm-atmel.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c
> index 6e700a5..2dca0bf 100644
> --- a/drivers/pwm/pwm-atmel.c
> +++ b/drivers/pwm/pwm-atmel.c
> @@ -128,7 +128,8 @@ static int atmel_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
> return -EINVAL;
> }
> }
> -
> + /* Need to reduce the prescaler by 1 */
> + pres--;
> /* Calculate the duty cycles */
> prd = div;
> div *= duty_ns;
> --
> 1.9.1

I think this was fixed by a different patch by Nikolaus in a more direct
way, see: https://lkml.org/lkml/2014/9/24/28

I've pushed that patch to the for-next branch of the PWM tree. Can you
verify that the issue you were seeing is gone?

Thierry

Attachment: pgpnfhJT8i7bR.pgp
Description: PGP signature