diff options
author | Boris Brezillon <boris.brezillon@free-electrons.com> | 2016-04-14 21:17:38 +0200 |
---|---|---|
committer | Thierry Reding <thierry.reding@gmail.com> | 2016-05-17 14:48:02 +0200 |
commit | 43a276b003ed2e03de9d94b02a1ba49c1849b931 (patch) | |
tree | ca2442d6fb895eb663ad358e43143fafa23d8cbc /drivers/pwm/core.c | |
parent | pwm: Keep PWM state in sync with hardware state (diff) | |
download | linux-43a276b003ed2e03de9d94b02a1ba49c1849b931.tar.xz linux-43a276b003ed2e03de9d94b02a1ba49c1849b931.zip |
pwm: Introduce the pwm_state concept
The PWM state, represented by its period, duty_cycle and polarity is
currently directly stored in the PWM device. Declare a pwm_state
structure embedding those field so that we can later use this struct
to atomically update all the PWM parameters at once.
All pwm_get_xxx() helpers are now implemented as wrappers around
pwm_get_state().
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm/core.c')
-rw-r--r-- | drivers/pwm/core.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index 64330595e17b..f3f91e716a42 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -268,7 +268,7 @@ int pwmchip_add_with_polarity(struct pwm_chip *chip, pwm->chip = chip; pwm->pwm = chip->base + i; pwm->hwpwm = i; - pwm->polarity = polarity; + pwm->state.polarity = polarity; radix_tree_insert(&pwm_tree, pwm->pwm, pwm); } @@ -446,8 +446,8 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) if (err) return err; - pwm->duty_cycle = duty_ns; - pwm->period = period_ns; + pwm->state.duty_cycle = duty_ns; + pwm->state.period = period_ns; return 0; } @@ -480,7 +480,7 @@ int pwm_set_polarity(struct pwm_device *pwm, enum pwm_polarity polarity) if (err) return err; - pwm->polarity = polarity; + pwm->state.polarity = polarity; return 0; } |