1
0
Fork 0

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>
zero-colors
Sebastian Reichel 2017-06-30 16:35:03 +02:00 committed by Lee Jones
parent e26ae3660b
commit 45f80a9f78
1 changed files with 2 additions and 0 deletions

View File

@ -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;