From: Clemens Gruber <clemens.gruber@pqgruber.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-pwm@vger.kernel.org
Subject: Re: [PATCH 1/2] pwm: pca9685: fix period change with same duty cycle
Date: Fri, 13 Jan 2017 13:43:19 +0100 [thread overview]
Message-ID: <20170113124318.GA5723@archie.localdomain> (raw)
In-Reply-To: <20161213155251.28684-1-clemens.gruber@pqgruber.com>
On Tue, Dec 13, 2016 at 04:52:50PM +0100, Clemens Gruber wrote:
> When first implementing support for changing the output frequency, an
> optimization was added to continue the PWM after changing the prescaler
> without having to reprogram the ON and OFF registers for the duty cycle,
> in case the duty cycle stayed the same.
> This was flawed, because we compared the absolute value of the duty
> cycle in nanoseconds instead of the ratio to the period.
>
> Fix the problem by removing the shortcut.
>
> Fixes: 01ec8472009c9 ("pwm-pca9685: Support changing the output
> frequency")
> Cc: <stable@vger.kernel.org> # v4.3+
> Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
> ---
> drivers/pwm/pwm-pca9685.c | 11 -----------
> 1 file changed, 11 deletions(-)
>
> diff --git a/drivers/pwm/pwm-pca9685.c b/drivers/pwm/pwm-pca9685.c
> index 117fccf..01a6a83 100644
> --- a/drivers/pwm/pwm-pca9685.c
> +++ b/drivers/pwm/pwm-pca9685.c
> @@ -65,7 +65,6 @@
> #define PCA9685_MAXCHAN 0x10
>
> #define LED_FULL (1 << 4)
> -#define MODE1_RESTART (1 << 7)
> #define MODE1_SLEEP (1 << 4)
> #define MODE2_INVRT (1 << 4)
> #define MODE2_OUTDRV (1 << 2)
> @@ -117,16 +116,6 @@ static int pca9685_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
> udelay(500);
>
> pca->period_ns = period_ns;
> -
> - /*
> - * If the duty cycle did not change, restart PWM with
> - * the same duty cycle to period ratio and return.
> - */
> - if (duty_ns == pca->duty_ns) {
> - regmap_update_bits(pca->regmap, PCA9685_MODE1,
> - MODE1_RESTART, 0x1);
> - return 0;
> - }
> } else {
> dev_err(chip->dev,
> "prescaler not set: period out of bounds!\n");
> --
> 2.10.2
>
Hi Thierry,
did you have a chance to look at my two bugfix patches for the PCA9685?
They fix two problems, I caused when implementing the prescaler support.
The first one just leads to also configuring the ON and OFF time
registers when changing the prescaler frequency and no longer relying on
a shortcut which did not work correctly:
https://patchwork.ozlabs.org/patch/705438/
The second one just reads in the current value and if it matches the
default, there is no need to change it.
(Changing would mean stopping the chip, sleeping, etc.)
https://patchwork.ozlabs.org/patch/705437/
They should both go in at the same time and are both rather small
changes.
Thanks,
Clemens
next prev parent reply other threads:[~2017-01-13 12:51 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-13 15:52 [PATCH 1/2] pwm: pca9685: fix period change with same duty cycle Clemens Gruber
2016-12-13 15:52 ` [PATCH 2/2] pwm: pca9685: fix prescaler initialization Clemens Gruber
2017-01-18 10:57 ` Thierry Reding
2017-01-18 11:09 ` Andy Shevchenko
2017-01-18 13:53 ` Clemens Gruber
2017-01-18 14:01 ` Andy Shevchenko
2017-01-18 14:25 ` Clemens Gruber
2017-01-19 12:34 ` Andy Shevchenko
2017-01-19 14:49 ` Clemens Gruber
2017-01-19 16:10 ` Andy Shevchenko
2017-01-19 16:52 ` Clemens Gruber
2017-01-19 16:58 ` Andy Shevchenko
2017-01-20 6:39 ` Thierry Reding
2017-01-20 9:58 ` Andy Shevchenko
2017-01-25 18:05 ` Clemens Gruber
2017-01-13 12:43 ` Clemens Gruber [this message]
2017-01-18 10:56 ` [PATCH 1/2] pwm: pca9685: fix period change with same duty cycle Thierry Reding
2017-01-18 11:09 ` Mika Westerberg
2017-01-20 6:44 ` Thierry Reding
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=20170113124318.GA5723@archie.localdomain \
--to=clemens.gruber@pqgruber.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).