diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2021-04-21 12:26:08 +0300 |
---|---|---|
committer | Thierry Reding <thierry.reding@gmail.com> | 2021-09-02 22:35:09 +0300 |
commit | 52eaba4cedbda728f78d7083a05725e537b3df91 (patch) | |
tree | 4edab885befe2b3e8c35f954b48a602943d44425 /drivers/pwm/pwm-ab8500.c | |
parent | 2734d6c1b1a089fb593ef6a23d4b70903526fe0c (diff) | |
download | linux-52eaba4cedbda728f78d7083a05725e537b3df91.tar.xz |
pwm: atmel: Rework tracking updates pending in hardware
This improves the driver's behavior in several ways:
- The lock is held for shorter periods and so a channel that is currently
waited for doesn't block disabling another channel.
- It's easier to understand because the procedure is split into more
semantic units and documentation is improved
- A channel is only set to pending when such an event is actually
scheduled in hardware (by writing the CUPD register).
- Also wait in .get_state() to report the last configured state instead
of (maybe) the previous one. This fixes the read back duty cycle and so
prevents a warning being emitted when PWM_DEBUG is on.
Tested on an AriettaG25.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm/pwm-ab8500.c')
0 files changed, 0 insertions, 0 deletions