[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191215155329.4c71ad53@archlinux>
Date: Sun, 15 Dec 2019 15:53:29 +0000
From: Jonathan Cameron <jic23@...23.retrosnub.co.uk>
To: Sasha Levin <sashal@...nel.org>
Cc: linux-kernel@...r.kernel.org, stable@...r.kernel.org,
Alexandru Ardelean <alexandru.ardelean@...log.com>,
Matt Ranostay <matt.ranostay@...sulko.com>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>,
linux-iio@...r.kernel.org
Subject: Re: [PATCH AUTOSEL 5.4 105/350] iio: chemical: atlas-ph-sensor: fix
iio_triggered_buffer_predisable() position
On Tue, 10 Dec 2019 16:03:30 -0500
Sasha Levin <sashal@...nel.org> wrote:
> From: Alexandru Ardelean <alexandru.ardelean@...log.com>
>
> [ Upstream commit 0c8a6e72f3c04bfe92a64e5e0791bfe006aabe08 ]
>
> The iio_triggered_buffer_{predisable,postenable} functions attach/detach
> the poll functions.
>
> The iio_triggered_buffer_predisable() should be called last, to detach the
> poll func after the devices has been suspended.
>
> The position of iio_triggered_buffer_postenable() is correct.
>
> Note this is not stable material. It's a fix in the logical
> model rather fixing an actual bug. These are being tidied up
> throughout the subsystem to allow more substantial rework that
> was blocked by variations in how things were done.
See comment. This is not what I would consider stable material.
>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@...log.com>
> Acked-by: Matt Ranostay <matt.ranostay@...sulko.com>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@...wei.com>
> Signed-off-by: Sasha Levin <sashal@...nel.org>
> ---
> drivers/iio/chemical/atlas-ph-sensor.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iio/chemical/atlas-ph-sensor.c b/drivers/iio/chemical/atlas-ph-sensor.c
> index 3a20cb5d9bffc..6c175eb1c7a7f 100644
> --- a/drivers/iio/chemical/atlas-ph-sensor.c
> +++ b/drivers/iio/chemical/atlas-ph-sensor.c
> @@ -323,16 +323,16 @@ static int atlas_buffer_predisable(struct iio_dev *indio_dev)
> struct atlas_data *data = iio_priv(indio_dev);
> int ret;
>
> - ret = iio_triggered_buffer_predisable(indio_dev);
> + ret = atlas_set_interrupt(data, false);
> if (ret)
> return ret;
>
> - ret = atlas_set_interrupt(data, false);
> + pm_runtime_mark_last_busy(&data->client->dev);
> + ret = pm_runtime_put_autosuspend(&data->client->dev);
> if (ret)
> return ret;
>
> - pm_runtime_mark_last_busy(&data->client->dev);
> - return pm_runtime_put_autosuspend(&data->client->dev);
> + return iio_triggered_buffer_predisable(indio_dev);
> }
>
> static const struct iio_trigger_ops atlas_interrupt_trigger_ops = {
Powered by blists - more mailing lists