]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
iio: stmpe-adc: Reset possible interrupts
authorPhilippe Schenker <philippe.schenker@toradex.com>
Tue, 7 May 2019 14:36:15 +0000 (16:36 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 11 May 2019 10:18:34 +0000 (11:18 +0100)
Clear any interrupt that still is on the device on every channel
this driver is activated for in probe and specific channels in
the timeout handler.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/stmpe-adc.c

index 40a4648f0bc576807eaa985d2a9978d0fd235bb6..bd72727fc417a7cc76b9b46ffca172e4f7ad6f30 100644 (file)
@@ -80,6 +80,8 @@ static int stmpe_read_voltage(struct stmpe_adc *info,
        ret = wait_for_completion_timeout(&info->completion, STMPE_ADC_TIMEOUT);
 
        if (ret <= 0) {
+               stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA,
+                               STMPE_ADC_CH(info->channel));
                mutex_unlock(&info->lock);
                return -ETIMEDOUT;
        }
@@ -325,6 +327,9 @@ static int stmpe_adc_probe(struct platform_device *pdev)
        stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
                        ~(norequest_mask & 0xFF));
 
+       stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA,
+                       ~(norequest_mask & 0xFF));
+
        return devm_iio_device_register(&pdev->dev, indio_dev);
 }