Re: [PATCH 1/3] iio: ltr501: Don't return error code in trigger handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 24 Oct 2021 19:12:49 +0200
Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:

> 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: 2690be905123 ("iio: Add Lite-On ltr501 ambient light / proximity sensor driver")
> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Series applied to the fixes-togreg branch of iio.git and marked for stable.

Thanks,

Jonathan

> ---
>  drivers/iio/light/ltr501.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
> index 7e51aaac0bf8..b2983b1a9ed1 100644
> --- a/drivers/iio/light/ltr501.c
> +++ b/drivers/iio/light/ltr501.c
> @@ -1275,7 +1275,7 @@ static irqreturn_t ltr501_trigger_handler(int irq, void *p)
>  		ret = regmap_bulk_read(data->regmap, LTR501_ALS_DATA1,
>  				       als_buf, sizeof(als_buf));
>  		if (ret < 0)
> -			return ret;
> +			goto done;
>  		if (test_bit(0, indio_dev->active_scan_mask))
>  			scan.channels[j++] = le16_to_cpu(als_buf[1]);
>  		if (test_bit(1, indio_dev->active_scan_mask))




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux