Am Mittwoch, 1. Juli 2015, 14:05:31 schrieb Boris Brezillon: > Hi Heiko, > > On Wed, 01 Jul 2015 13:58:09 +0200 > > Heiko Stübner <heiko@xxxxxxxxx> wrote: > > Am Mittwoch, 1. Juli 2015, 10:22:00 schrieb Boris Brezillon: > > > Implement the ->enable(), ->disable() and ->is_enabled methods and > > > remove > > > the PWM call in ->set_voltage_sel(). > > > This is particularly important for critical regulators tagged as > > > always-on, > > > because not claiming the PWM (and its dependencies) might lead to > > > unpredictable behavior (like a system hang because the PWM clk is only > > > claimed when the PWM device is enabled). > > > > > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> > > > --- > > > > > > drivers/regulator/pwm-regulator.c | 32 ++++++++++++++++++++++++++------ > > > 1 file changed, 26 insertions(+), 6 deletions(-) > > > > > > diff --git a/drivers/regulator/pwm-regulator.c > > > b/drivers/regulator/pwm-regulator.c index 12b4d9d..8159518 100644 > > > --- a/drivers/regulator/pwm-regulator.c > > > +++ b/drivers/regulator/pwm-regulator.c > > > @@ -59,12 +59,6 @@ static int pwm_regulator_set_voltage_sel(struct > > > regulator_dev *rdev, > > > > > > drvdata->state = selector; > > > > > > - ret = pwm_enable(drvdata->pwm); > > > - if (ret) { > > > - dev_err(&rdev->dev, "Failed to enable PWM\n"); > > > - return ret; > > > - } > > > - > > > > > > return 0; > > > > > > } > > > > > > @@ -79,11 +73,37 @@ static int pwm_regulator_list_voltage(struct > > > regulator_dev *rdev, return drvdata->duty_cycle_table[selector].uV; > > > > > > } > > > > > > +static int pwm_regulator_enable(struct regulator_dev *dev) > > > +{ > > > + struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev); > > > + > > > + return pwm_enable(drvdata->pwm); > > > +} > > > + > > > +static int pwm_regulator_disable(struct regulator_dev *dev) > > > +{ > > > + struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev); > > > + > > > + pwm_disable(drvdata->pwm); > > > + > > > + return 0; > > > +} > > > + > > > +static int pwm_regulator_is_enabled(struct regulator_dev *dev) > > > +{ > > > + struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev); > > > + > > > + return pwm_is_enabled(drvdata->pwm); > > > +} > > > > nit: indentation is wrong in pwm_regulator_is_enabled (spaces instead of > > tabs) > Yep, I noticed checkpatch warnings/errors before sending the patch, but > since this is just an RFC I decided to fix them for the next version ;-) ok, so I'll just skip over any more style issues for now. Making my way through your series and trying it on my veyron right now :-) Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html