Skip to content

Commit d4f4738

Browse files
larsclausensmb49
authored andcommitted
iio: ltr501: Don't return error code in trigger handler
BugLink: https://bugs.launchpad.net/bugs/1957007 commit ef9d67f upstream. IIO trigger handlers need to return one of the irqreturn_t values. Returning an error code is not supported. The ltr501 interrupt handler gets this right for most error paths, but there is one case where it returns the error code. In addition for this particular case the trigger handler does not call `iio_trigger_notify_done()`. Which when not done keeps the triggered disabled forever. Modify the code so that the function returns a valid irqreturn_t value as well as calling `iio_trigger_notify_done()` on all exit paths. Fixes: 2690be9 ("iio: Add Lite-On ltr501 ambient light / proximity sensor driver") Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Link: https://lore.kernel.org/r/20211024171251.22896-1-lars@metafoo.de Cc: <Stable@vger.kernel.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Kamal Mostafa <kamal@canonical.com> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
1 parent b8a2f01 commit d4f4738

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/iio/light/ltr501.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1272,7 +1272,7 @@ static irqreturn_t ltr501_trigger_handler(int irq, void *p)
12721272
ret = regmap_bulk_read(data->regmap, LTR501_ALS_DATA1,
12731273
(u8 *)als_buf, sizeof(als_buf));
12741274
if (ret < 0)
1275-
return ret;
1275+
goto done;
12761276
if (test_bit(0, indio_dev->active_scan_mask))
12771277
scan.channels[j++] = le16_to_cpu(als_buf[1]);
12781278
if (test_bit(1, indio_dev->active_scan_mask))

0 commit comments

Comments
 (0)