* [PATCH v3 0/2] pwm fixes for 3.8
@ 2012-11-19 17:44 Tony Prisk
2012-11-19 17:44 ` [PATCH v3 1/2] Fix build error in pwm-vt8500.c Tony Prisk
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Tony Prisk @ 2012-11-19 17:44 UTC (permalink / raw)
To: linux-arm-kernel
Hi Theirry,
I felt the error message for clk_enable in vt8500_pwm_config() needed
to somehow indicate that the clk_enable failed in this function otherwise
if there is a problem, you can't tell which of the clk_enable's
generated the fail message.
If there is a clock error - as you pointed out - it will probably fail
elsewhere as well so I've changed it to match the other error messages.
These should be applied on top of the original patch.
v2: Add error checking for clk_enable()
v3: Remove superfluous ;'s. Error message style correction.
Tony Prisk (2):
Fix build error in pwm-vt8500.c
pwm: vt8500: Ensure pwm clock is enabled during pwm_config
drivers/pwm/pwm-vt8500.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v3 1/2] Fix build error in pwm-vt8500.c 2012-11-19 17:44 [PATCH v3 0/2] pwm fixes for 3.8 Tony Prisk @ 2012-11-19 17:44 ` Tony Prisk 2012-11-19 17:44 ` [PATCH v3 2/2] pwm: vt8500: Ensure pwm clock is enabled during pwm_config Tony Prisk 2012-11-20 12:16 ` [PATCH v3 0/2] pwm fixes for 3.8 Thierry Reding 2 siblings, 0 replies; 4+ messages in thread From: Tony Prisk @ 2012-11-19 17:44 UTC (permalink / raw) To: linux-arm-kernel A missing '{' causes a build error in pwm-vt8500.c Signed-off-by: Tony Prisk <linux@prisktech.co.nz> --- drivers/pwm/pwm-vt8500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-vt8500.c b/drivers/pwm/pwm-vt8500.c index 970b0c6..806f72c 100644 --- a/drivers/pwm/pwm-vt8500.c +++ b/drivers/pwm/pwm-vt8500.c @@ -100,7 +100,7 @@ static int vt8500_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) struct vt8500_chip *vt8500 = to_vt8500_chip(chip); err = clk_enable(vt8500->clk); - if (err < 0) + if (err < 0) { dev_err(chip->dev, "failed to enable clock\n"); return err; }; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] pwm: vt8500: Ensure pwm clock is enabled during pwm_config 2012-11-19 17:44 [PATCH v3 0/2] pwm fixes for 3.8 Tony Prisk 2012-11-19 17:44 ` [PATCH v3 1/2] Fix build error in pwm-vt8500.c Tony Prisk @ 2012-11-19 17:44 ` Tony Prisk 2012-11-20 12:16 ` [PATCH v3 0/2] pwm fixes for 3.8 Thierry Reding 2 siblings, 0 replies; 4+ messages in thread From: Tony Prisk @ 2012-11-19 17:44 UTC (permalink / raw) To: linux-arm-kernel This patch corrects a bug reported by Peter Vasil. When all PWMs are disabled, PWM module may be disabled during calls to pwm_config. This patch enables/disables the clock in pwm_config to ensure the module is active before register read/ writes. Signed-off-by: Tony Prisk <linux@prisktech.co.nz> Tested-by: Peter Vasil <petervasil@gmail.com> --- drivers/pwm/pwm-vt8500.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/pwm-vt8500.c b/drivers/pwm/pwm-vt8500.c index 806f72c..b0ba2d4 100644 --- a/drivers/pwm/pwm-vt8500.c +++ b/drivers/pwm/pwm-vt8500.c @@ -62,6 +62,13 @@ static int vt8500_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, struct vt8500_chip *vt8500 = to_vt8500_chip(chip); unsigned long long c; unsigned long period_cycles, prescale, pv, dc; + int err; + + err = clk_enable(vt8500->clk); + if (err < 0) { + dev_err(chip->dev, "failed to enable clock\n"); + return err; + } c = clk_get_rate(vt8500->clk); c = c * period_ns; @@ -75,8 +82,10 @@ static int vt8500_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, if (pv > 4095) pv = 4095; - if (prescale > 1023) + if (prescale > 1023) { + clk_disable(vt8500->clk); return -EINVAL; + } c = (unsigned long long)pv * duty_ns; do_div(c, period_ns); @@ -91,6 +100,7 @@ static int vt8500_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, pwm_busy_wait(vt8500->base + 0x40 + pwm->hwpwm, (1 << 3)); writel(dc, vt8500->base + 0xc + (pwm->hwpwm << 4)); + clk_disable(vt8500->clk); return 0; } @@ -103,7 +113,7 @@ static int vt8500_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) if (err < 0) { dev_err(chip->dev, "failed to enable clock\n"); return err; - }; + } pwm_busy_wait(vt8500->base + 0x40 + pwm->hwpwm, (1 << 0)); writel(5, vt8500->base + (pwm->hwpwm << 4)); -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 0/2] pwm fixes for 3.8 2012-11-19 17:44 [PATCH v3 0/2] pwm fixes for 3.8 Tony Prisk 2012-11-19 17:44 ` [PATCH v3 1/2] Fix build error in pwm-vt8500.c Tony Prisk 2012-11-19 17:44 ` [PATCH v3 2/2] pwm: vt8500: Ensure pwm clock is enabled during pwm_config Tony Prisk @ 2012-11-20 12:16 ` Thierry Reding 2 siblings, 0 replies; 4+ messages in thread From: Thierry Reding @ 2012-11-20 12:16 UTC (permalink / raw) To: linux-arm-kernel On Tue, Nov 20, 2012 at 06:44:44AM +1300, Tony Prisk wrote: > Hi Theirry, > > I felt the error message for clk_enable in vt8500_pwm_config() needed > to somehow indicate that the clk_enable failed in this function otherwise > if there is a problem, you can't tell which of the clk_enable's > generated the fail message. > If there is a clock error - as you pointed out - it will probably fail > elsewhere as well so I've changed it to match the other error messages. > > These should be applied on top of the original patch. > > v2: Add error checking for clk_enable() > v3: Remove superfluous ;'s. Error message style correction. > > Tony Prisk (2): > Fix build error in pwm-vt8500.c > pwm: vt8500: Ensure pwm clock is enabled during pwm_config > > drivers/pwm/pwm-vt8500.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) Applied with minor stylistic fixups to the commit message, thanks. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121120/b20f607e/attachment.sig> ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-11-20 12:16 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-19 17:44 [PATCH v3 0/2] pwm fixes for 3.8 Tony Prisk 2012-11-19 17:44 ` [PATCH v3 1/2] Fix build error in pwm-vt8500.c Tony Prisk 2012-11-19 17:44 ` [PATCH v3 2/2] pwm: vt8500: Ensure pwm clock is enabled during pwm_config Tony Prisk 2012-11-20 12:16 ` [PATCH v3 0/2] pwm fixes for 3.8 Thierry Reding
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.