mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 00:34:10 +08:00
mfd: da9052: Fix manual ADC read after timed out read
It is possible that under heavy system load, the counter in the completion struct, used for waiting for end of AD conversion, gets incremented twice. To make sure the driver recovers from this situation, the completion struct should be reinitialized. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
e26ae3660b
commit
45f80a9f78
@ -387,6 +387,8 @@ int da9052_adc_manual_read(struct da9052 *da9052, unsigned char channel)
|
||||
|
||||
mutex_lock(&da9052->auxadc_lock);
|
||||
|
||||
reinit_completion(&da9052->done);
|
||||
|
||||
/* Channel gets activated on enabling the Conversion bit */
|
||||
mux_sel = chan_mux[channel] | DA9052_ADC_MAN_MAN_CONV;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user