From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Denis Benato <benato.denis96@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
Lars-Peter Clausen <lars@metafoo.de>,
Jagath Jog J <jagathjog1996@gmail.com>,
<linux-iio@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
"Luke D . Jones" <luke@ljones.dev>,
Jonathan LoBue <jlobue10@gmail.com>
Subject: Re: [PATCH 2/2] iio: bmi323: suspend and resume triggering on relevant pm operations
Date: Thu, 25 Jul 2024 12:28:11 +0100 [thread overview]
Message-ID: <20240725122811.00004769@Huawei.com> (raw)
In-Reply-To: <20240725002641.191509-3-benato.denis96@gmail.com>
On Thu, 25 Jul 2024 02:26:41 +0200
Denis Benato <benato.denis96@gmail.com> wrote:
> Prevent triggers from stop working after the device has entered sleep:
> use iio_device_suspend_triggering and iio_device_resume_triggering helpers.
>
> Signed-off-by: Denis Benato <benato.denis96@gmail.com>
> ---
> drivers/iio/imu/bmi323/bmi323.h | 1 +
> drivers/iio/imu/bmi323/bmi323_core.c | 29 ++++++++++++++++++++++++++++
> drivers/iio/imu/bmi323/bmi323_i2c.c | 1 +
> drivers/iio/imu/bmi323/bmi323_spi.c | 1 +
> 4 files changed, 32 insertions(+)
>
> diff --git a/drivers/iio/imu/bmi323/bmi323.h b/drivers/iio/imu/bmi323/bmi323.h
> index dff126d41658..209bccb1f335 100644
> --- a/drivers/iio/imu/bmi323/bmi323.h
> +++ b/drivers/iio/imu/bmi323/bmi323.h
> @@ -205,5 +205,6 @@
> struct device;
> int bmi323_core_probe(struct device *dev);
> extern const struct regmap_config bmi323_regmap_config;
> +extern const struct dev_pm_ops bmi323_core_pm_ops;
>
> #endif
> diff --git a/drivers/iio/imu/bmi323/bmi323_core.c b/drivers/iio/imu/bmi323/bmi323_core.c
> index d708d1fe3e42..b318544957de 100644
> --- a/drivers/iio/imu/bmi323/bmi323_core.c
> +++ b/drivers/iio/imu/bmi323/bmi323_core.c
> @@ -2121,6 +2121,35 @@ int bmi323_core_probe(struct device *dev)
> }
> EXPORT_SYMBOL_NS_GPL(bmi323_core_probe, IIO_BMI323);
>
> +#if defined(CONFIG_PM)
> +static int bmi323_core_runtime_suspend(struct device *dev)
> +{
> + struct iio_dev *indio_dev = dev_get_drvdata(dev);
> +
I want to think about patch 1 for a few days. In meantime.
> + int ret = iio_device_suspend_triggering(indio_dev);
return iio_device_suspend_triggering(indio_dev);
> +
> + return ret;
> +}
> +
> +static int bmi323_core_runtime_resume(struct device *dev)
> +{
> + struct iio_dev *indio_dev = dev_get_drvdata(dev);
> +
> + int ret = iio_device_resume_triggering(indio_dev);
> +
> + return ret;
return iio_device_resume_triggering(indio_dev);
> +}
> +
> +#endif
> +
> +const struct dev_pm_ops bmi323_core_pm_ops = {
> +#if defined(CONFIG_PM)
SET_RUNTIME_PM_OPS() is defined to nothing if CONFIG_PM is
not enabled so these protections aren't needed.
> + SET_RUNTIME_PM_OPS(bmi323_core_runtime_suspend,
> + bmi323_core_runtime_resume, NULL)
> +#endif
> +};
> +EXPORT_SYMBOL_NS_GPL(bmi323_core_pm_ops, IIO_BMI323);
> +
> MODULE_DESCRIPTION("Bosch BMI323 IMU driver");
> MODULE_AUTHOR("Jagath Jog J <jagathjog1996@gmail.com>");
> MODULE_LICENSE("GPL");
> diff --git a/drivers/iio/imu/bmi323/bmi323_i2c.c b/drivers/iio/imu/bmi323/bmi323_i2c.c
> index 52140bf05765..79c9b029a209 100644
> --- a/drivers/iio/imu/bmi323/bmi323_i2c.c
> +++ b/drivers/iio/imu/bmi323/bmi323_i2c.c
> @@ -128,6 +128,7 @@ MODULE_DEVICE_TABLE(of, bmi323_of_i2c_match);
> static struct i2c_driver bmi323_i2c_driver = {
> .driver = {
> .name = "bmi323",
> + .pm = &bmi323_core_pm_ops,
pm_ptr() to let the compiler drop bmi323_core_pm_ops if
!CONFIG_PM
> .of_match_table = bmi323_of_i2c_match,
> .acpi_match_table = bmi323_acpi_match,
> },
> diff --git a/drivers/iio/imu/bmi323/bmi323_spi.c b/drivers/iio/imu/bmi323/bmi323_spi.c
> index 7b1e8127d0dd..ec3238d93862 100644
> --- a/drivers/iio/imu/bmi323/bmi323_spi.c
> +++ b/drivers/iio/imu/bmi323/bmi323_spi.c
> @@ -79,6 +79,7 @@ MODULE_DEVICE_TABLE(of, bmi323_of_spi_match);
> static struct spi_driver bmi323_spi_driver = {
> .driver = {
> .name = "bmi323",
> + .pm = &bmi323_core_pm_ops,
> .of_match_table = bmi323_of_spi_match,
> },
> .probe = bmi323_spi_probe,
prev parent reply other threads:[~2024-07-25 11:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-25 0:26 [PATCH 0/2] iio: fix bug with triggers not resuming after sleep Denis Benato
2024-07-25 0:26 ` [PATCH 1/2] iio: trigger: allow devices to suspend/resume theirs associated trigger Denis Benato
2024-07-25 0:26 ` [PATCH 2/2] iio: bmi323: suspend and resume triggering on relevant pm operations Denis Benato
2024-07-25 11:28 ` Jonathan Cameron [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240725122811.00004769@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=benato.denis96@gmail.com \
--cc=jagathjog1996@gmail.com \
--cc=jic23@kernel.org \
--cc=jlobue10@gmail.com \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luke@ljones.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.