All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.