pwm: Read initial hardware state at request time
authorThierry Reding <thierry.reding@gmail.com>
Mon, 21 Oct 2019 10:51:56 +0000 (12:51 +0200)
committerThierry Reding <thierry.reding@gmail.com>
Mon, 9 Dec 2019 09:05:41 +0000 (10:05 +0100)
commitcfc4c189bc70b1acc17e6f1abf1dc1c0ae890bd8
tree9831fc05aad7280b76944a4d7ca809070f81ebef
parente42617b825f8073569da76dc4510bfa019b1c35a
pwm: Read initial hardware state at request time

Drivers that support reading the hardware state (using ->get_state())
may want to rely on per-PWM data to do so. Defer reading the hardware
state for the first time until the PWM has been requested and after
drivers have had a chance to allocate per-PWM data.

Conceptually this is also a more natural place to read the hardware
state because the PWM core doesn't need to know the hardware state of a
PWM unless there is a user for it. This also ensures that the state is
read everytime a user requests a PWM. If the PWM changes between users
for some reason, the PWM core will reload the state from hardware and
keep its copy of the state up-to-date.

Tested-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Tested-by: Michal Vokáč <michal.vokac@ysoft.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/core.c