From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Wahren Subject: Re: [PATCH 2/2] leds/pwm: Don't disable pwm when setting brightness to 0 Date: Tue, 24 Feb 2015 19:56:52 +0100 (CET) Message-ID: <1151818200.134325.1424804213026.JavaMail.open-xchange@oxbsltgw03.schlund.de> References: <1423734290-19750-1-git-send-email-u.kleine-koenig@pengutronix.de> <1423734290-19750-3-git-send-email-u.kleine-koenig@pengutronix.de> Reply-To: Stefan Wahren Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: In-Reply-To: <1423734290-19750-3-git-send-email-u.kleine-koenig@pengutronix.de> Sender: linux-pwm-owner@vger.kernel.org To: Bryan Wu , Thierry Reding , linux-pwm@vger.kernel.org, linux-leds@vger.kernel.org, Richard Purdie , =?UTF-8?Q?=22Uwe_Kleine-K=C3=B6nig=22?= Cc: Sascha Hauer , kernel@pengutronix.de, linux-arm-kernel@lists.infradead.org List-Id: linux-leds@vger.kernel.org Hi Uwe, > Uwe Kleine-K=C3=B6nig hat am 12. Feb= ruar 2015 um > 10:44 geschrieben: > > > This fixes disabling the LED on i.MX28. The PWM hardware delays using > the newly set pwm-config until the beginning of a new period. It's ve= ry > likely that pwm_disable is called before the current period ends. In > case the LED was on brightness=3Dmax before the LED stays on because = in > the disabled PWM block the period never ends. > > Also only call pwm_enable only once in the probe call back and the > matching pwm_disable in .remove(). Moreover the pwm is explicitly > initialized to off. > > Signed-off-by: Uwe Kleine-K=C3=B6nig > --- > drivers/leds/leds-pwm.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/leds/leds-pwm.c b/drivers/leds/leds-pwm.c > index f668500a2157..5dae0d2dc3dc 100644 > --- a/drivers/leds/leds-pwm.c > +++ b/drivers/leds/leds-pwm.c > @@ -44,11 +44,6 @@ static void __led_pwm_set(struct led_pwm_data *led= _dat) > int new_duty =3D led_dat->duty; > > pwm_config(led_dat->pwm, new_duty, led_dat->period); > - > - if (new_duty =3D=3D 0) > - pwm_disable(led_dat->pwm); > - else > - pwm_enable(led_dat->pwm); > } > > static void led_pwm_work(struct work_struct *work) > @@ -93,6 +88,7 @@ static void led_pwm_cleanup(struct led_pwm_priv *pr= iv) > led_classdev_unregister(&priv->leds[priv->num_leds].cdev); > if (priv->leds[priv->num_leds].can_sleep) > cancel_work_sync(&priv->leds[priv->num_leds].work); > + pwm_disable(priv->leds[i].pwm); > } > } > After replacing "i" with "priv->num_leds" in this patch we are able to = use pwm led with trigger heartbeat. This is the functional part of this issue, since the warning has been f= ixed [1] Thanks Stefan [1] - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-April/244925= =2Ehtml