[PATCH 6/6] hwmon: pwm-fan: Update the duty cycle inorder to control the pwm-fan

Guenter Roeck linux at roeck-us.net
Wed Apr 8 08:32:14 PDT 2015


On Wed, Apr 08, 2015 at 10:44:15AM +0200, Lukasz Majewski wrote:
> Hi Anand,
> 
> > Below changes depend on following patch.
> > https://patchwork.kernel.org/patch/5944061/
> > 
> > Update the pwm_config with duty then update the pwm_disable
> > to poweroff the cpu fan.
> > 

Unfortunately, the patch does not include an explanation why it is needed.

The original code presumably did not update the duty cycle because
pwm was about to be disabled anyway. That kind of made sense to me.
Updating the duty cycle to 0 just to disable the pwm channel right
afterwards does not immediately make sense.

Given that, I would expect to see a rationale here. Why is this patch needed ?
Does it fix a bug ? If yes, pelase describe the bug. If not, what is the
purpose of this patch ?

Maybe that is all explained in patch 0/6, which I was not copied on. Even
if so, the reationale will be needed in the changelog to explain to future
developers why this change was made.

Thanks,
Guenter

> > Tested on OdroidXU3 board.
> > 
> > Signed-off-by: Anand Moon <linux.amoon at gmail.com>
> > ---
> >  drivers/hwmon/pwm-fan.c | 10 ++++------
> >  1 file changed, 4 insertions(+), 6 deletions(-)
> > 
> > diff --git a/drivers/hwmon/pwm-fan.c b/drivers/hwmon/pwm-fan.c
> > index 7c83dc4..f25c841 100644
> > --- a/drivers/hwmon/pwm-fan.c
> > +++ b/drivers/hwmon/pwm-fan.c
> > @@ -44,26 +44,24 @@ static int  __set_pwm(struct pwm_fan_ctx *ctx,
> > unsigned long pwm) int ret = 0;
> >  
> >  	mutex_lock(&ctx->lock);
> > +

[ please refrain from unnecessary whitespace changes ]

> >  	if (ctx->pwm_value == pwm)
> >  		goto exit_set_pwm_err;
> >  
> > -	if (pwm == 0) {
> > -		pwm_disable(ctx->pwm);
> > -		goto exit_set_pwm;
> > -	}
> > -
> >  	duty = DIV_ROUND_UP(pwm * (ctx->pwm->period - 1), MAX_PWM);
> >  	ret = pwm_config(ctx->pwm, duty, ctx->pwm->period);
> >  	if (ret)
> >  		goto exit_set_pwm_err;
> >  
> > +	if (pwm == 0)
> > +		pwm_disable(ctx->pwm);
> > +
> >  	if (ctx->pwm_value == 0) {
> >  		ret = pwm_enable(ctx->pwm);
> >  		if (ret)
> >  			goto exit_set_pwm_err;
> >  	}
> >  
> > -exit_set_pwm:
> >  	ctx->pwm_value = pwm;
> >  exit_set_pwm_err:
> >  	mutex_unlock(&ctx->lock);
> 
> Reviewed-by: Lukasz Majewski <l.majewski at samsung.com>
> 
> BTW: I've added Guenter to CC.
> 
> -- 
> Best regards,
> 
> Lukasz Majewski
> 
> Samsung R&D Institute Poland (SRPOL) | Linux Platform Group



More information about the linux-arm-kernel mailing list