2013-03-30 05:37:35

by Axel Lin

[permalink] [raw]
Subject: [PATCH v2] pwm: spear: Fix enable pwm output

The logic to check return value of clk_enable() is reversed, thus
when clk_enable() passes PWMCR_PWM_ENABLE bit is not set. Fix it.

Signed-off-by: Axel Lin <[email protected]>
---
drivers/pwm/pwm-spear.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pwm/pwm-spear.c b/drivers/pwm/pwm-spear.c
index 69a2d9e..d836940 100644
--- a/drivers/pwm/pwm-spear.c
+++ b/drivers/pwm/pwm-spear.c
@@ -143,7 +143,7 @@ static int spear_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
u32 val;

rc = clk_enable(pc->clk);
- if (!rc)
+ if (rc)
return rc;

val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR);
@@ -214,7 +214,7 @@ static int spear_pwm_probe(struct platform_device *pdev)

if (of_device_is_compatible(np, "st,spear1340-pwm")) {
ret = clk_enable(pc->clk);
- if (!ret) {
+ if (ret) {
clk_unprepare(pc->clk);
return ret;
}
--
1.7.10.4



2013-03-30 09:55:43

by Viresh Kumar

[permalink] [raw]
Subject: Re: [PATCH v2] pwm: spear: Fix enable pwm output

On 30 March 2013 11:07, Axel Lin <[email protected]> wrote:
> The logic to check return value of clk_enable() is reversed, thus
> when clk_enable() passes PWMCR_PWM_ENABLE bit is not set. Fix it.
>
> Signed-off-by: Axel Lin <[email protected]>
> ---
> drivers/pwm/pwm-spear.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

I am so sorry. clk_prepare also has the same issue :(
Please fix that too and i will ack it ASAP.

@Shiraz: Any idea how they went through?

2013-04-01 03:49:40

by Shiraz Hashim

[permalink] [raw]
Subject: Re: [PATCH v2] pwm: spear: Fix enable pwm output

On Sat, Mar 30, 2013 at 05:55:41PM +0800, Viresh Kumar wrote:
> On 30 March 2013 11:07, Axel Lin <[email protected]> wrote:
> > The logic to check return value of clk_enable() is reversed, thus
> > when clk_enable() passes PWMCR_PWM_ENABLE bit is not set. Fix it.
> >
> > Signed-off-by: Axel Lin <[email protected]>
> > ---
> > drivers/pwm/pwm-spear.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
>
> I am so sorry. clk_prepare also has the same issue :(
> Please fix that too and i will ack it ASAP.
>
> @Shiraz: Any idea how they went through?

I don't remember how :(, surely a mistake which escaped tests also.

--
regards
Shiraz