Re: [PATCH v5 03/13] iio: light: iqs621-als: use devm_blocking_notifier_chain_register()

From: Jonathan Cameron

Date: Thu Sep 03 2026 - 23:01:58 EST


On Sun, 16 Aug 2026 06:06:02 +0000
Eliav Farber <farbere@xxxxxxxxxx> wrote:

> Replace the blocking_notifier_chain_register() +
> devm_add_action_or_reset() pattern with a single call to
> devm_blocking_notifier_chain_register(), removing the
> iqs621_als_notifier_unregister() callback.
>
> Signed-off-by: Eliav Farber <farbere@xxxxxxxxxx>
> Acked-by: Jonathan Cameron <jonathan.cameron@xxxxxxxxxxxxxxxx>
Applied (on top of merging the branch) to the testing branch of iio.git
Upgraded that ack to an SoB as a result.

> ---
> drivers/iio/light/iqs621-als.c | 24 +++---------------------
> 1 file changed, 3 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/iio/light/iqs621-als.c b/drivers/iio/light/iqs621-als.c
> index cd5843e3e2c3..f9d215ef1970 100644
> --- a/drivers/iio/light/iqs621-als.c
> +++ b/drivers/iio/light/iqs621-als.c
> @@ -179,19 +179,6 @@ static int iqs621_als_notifier(struct notifier_block *notifier,
> return NOTIFY_OK;
> }
>
> -static void iqs621_als_notifier_unregister(void *context)
> -{
> - struct iqs621_als_private *iqs621_als = context;
> - struct iio_dev *indio_dev = iqs621_als->indio_dev;
> - int ret;
> -
> - ret = blocking_notifier_chain_unregister(&iqs621_als->iqs62x->nh,
> - &iqs621_als->notifier);
> - if (ret)
> - dev_err(indio_dev->dev.parent,
> - "Failed to unregister notifier: %d\n", ret);
> -}
> -
> static int iqs621_als_read_raw(struct iio_dev *indio_dev,
> struct iio_chan_spec const *chan,
> int *val, int *val2, long mask)
> @@ -563,19 +550,14 @@ static int iqs621_als_probe(struct platform_device *pdev)
> mutex_init(&iqs621_als->lock);
>
> iqs621_als->notifier.notifier_call = iqs621_als_notifier;
> - ret = blocking_notifier_chain_register(&iqs621_als->iqs62x->nh,
> - &iqs621_als->notifier);
> + ret = devm_blocking_notifier_chain_register(&pdev->dev,
> + &iqs621_als->iqs62x->nh,
> + &iqs621_als->notifier);
> if (ret) {
> dev_err(&pdev->dev, "Failed to register notifier: %d\n", ret);
> return ret;
> }
>
> - ret = devm_add_action_or_reset(&pdev->dev,
> - iqs621_als_notifier_unregister,
> - iqs621_als);
> - if (ret)
> - return ret;
> -
> return devm_iio_device_register(&pdev->dev, indio_dev);
> }
>