On Thu, Jan 19, 2017 at 02:40:57PM -0800, Dmitry Torokhov wrote: > The "atomic" API allows us to configure PWM period and duty cycle and > enable it in one call. > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > --- > drivers/input/misc/pwm-beeper.c | 25 ++++++++++++++++--------- > 1 file changed, 16 insertions(+), 9 deletions(-) > > diff --git a/drivers/input/misc/pwm-beeper.c b/drivers/input/misc/pwm-beeper.c > index 7b213e0ab06c..3408dc666afa 100644 > --- a/drivers/input/misc/pwm-beeper.c > +++ b/drivers/input/misc/pwm-beeper.c > @@ -37,13 +37,16 @@ struct pwm_beeper { > > static int pwm_beeper_on(struct pwm_beeper *beeper, unsigned long period) > { > + struct pwm_state state; > int error; > > - error = pwm_config(beeper->pwm, period / 2, period); > - if (error) > - return error; > + pwm_get_state(beeper->pwm, &state); > > - error = pwm_enable(beeper->pwm); > + state.enabled = true; > + state.period = period; > + pwm_set_relative_duty_cycle(&state, 50, 100); > + > + error = pwm_apply_state(beeper->pwm, &state); > if (error) > return error; > I was going to say that you need to update pwm_beeper_off() to use the atomic API as well, but I think I might keep pwm_disable() around for cases such as this. Reviewed-by: Thierry Reding <thierry.reding@xxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature