From a6b5eb09bddbd0c331f41fefa2fd2f71a2cf9455 Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Tue, 24 Apr 2018 22:21:10 -0700 Subject: [PATCH 036/146] sun4i-gpadc-iio: ignore zero samples to avoid force poweroff when reading first sample Signed-off-by: Vasily Khoruzhick --- drivers/iio/adc/sun4i-gpadc-iio.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c index fdfa01bad325..68256e73a4d2 100644 --- a/drivers/iio/adc/sun4i-gpadc-iio.c +++ b/drivers/iio/adc/sun4i-gpadc-iio.c @@ -751,6 +751,12 @@ static int sun4i_gpadc_get_temp(void *data, int *temp) if (sun4i_gpadc_temp_read(info->indio_dev, &val, info->sensor_id)) return -ETIMEDOUT; + /* Ignore first sample which is always zero. 0 is either too + * cold or too hot, so we can safely ignore it + */ + if (val == 0) + return -ETIMEDOUT; + sun4i_gpadc_temp_scale(info->indio_dev, &scale); sun4i_gpadc_temp_offset(info->indio_dev, &offset); -- 2.17.1