All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Chris Morgan" <macroalpha82@gmail.com>
Cc: conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org
Subject: Re: [PATCH V18 5/9] iio: imu: inv_icm42607: Add PM support for icm42607
Date: Mon, 20 Jul 2026 20:40:07 +0000	[thread overview]
Message-ID: <20260720204008.3197C1F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260720202343.70138-6-macroalpha82@gmail.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Calling `pm_runtime_force_suspend()` in the `.remove()` callbacks causes an unbalanced runtime PM `disable_depth` due to conflict with `devm_pm_runtime_set_active_enabled()`, breaking power management on driver rebind.
--

--- Patch [5]: [PATCH V18 5/9] iio: imu: inv_icm42607: Add PM support for icm42607 ---
commit ab55ef85474a1fe3f2d09669c982ebc220a804ca
Author: Chris Morgan <macromorgan@hotmail.com>

iio: imu: inv_icm42607: Add PM support for icm42607

Add power management support for the ICM42607 device driver.

> diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> index 6ec1d730017e2..c127ea0a94c4c 100644
> --- a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c

[ ... ]

> @@ -275,10 +378,75 @@ int inv_icm42607_core_probe(struct regmap *regmap,
>  	if (ret)
>  		return ret;
>  
> +	ret = devm_pm_runtime_set_active_enabled(dev);
> +	if (ret)
> +		return ret;
> +
> +	pm_runtime_set_autosuspend_delay(dev, INV_ICM42607_SUSPEND_DELAY_MS);
> +	pm_runtime_use_autosuspend(dev);
> +
>  	return 0;
>  }

[ ... ]

> diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_i2c.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_i2c.c
> index f2b9067815b0e..04ad372917832 100644
> --- a/drivers/iio/imu/inv_icm42607/inv_icm42607_i2c.c
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_i2c.c

[ ... ]

> @@ -56,6 +57,11 @@ static int inv_icm42607_probe(struct i2c_client *client)
>  	return inv_icm42607_core_probe(regmap, hw, inv_icm42607_i2c_bus_setup);
>  }
>  
> +static void inv_icm42607_i2c_remove(struct i2c_client *client)
> +{
> +	pm_runtime_force_suspend(&client->dev);
> +}

[Severity: Medium]
Does calling pm_runtime_force_suspend() here cause an unbalanced
disable_depth counter?

Because devm_pm_runtime_set_active_enabled() is called during probe in
inv_icm42607_core_probe(), devres will automatically call
pm_runtime_disable() on device removal.

Since pm_runtime_force_suspend() also disables runtime PM internally,
it seems this results in the disable_depth counter being incremented twice.
If the driver is unbound and rebound later, will it fail to ever re-enable
runtime PM because the disable depth remains strictly greater than zero?

[ ... ]

> diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_spi.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_spi.c
> index eb04036a6712f..995393dce9429 100644
> --- a/drivers/iio/imu/inv_icm42607/inv_icm42607_spi.c
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_spi.c

[ ... ]

> @@ -65,6 +66,11 @@ static int inv_icm42607_probe(struct spi_device *spi)
>  	return inv_icm42607_core_probe(regmap, hw, inv_icm42607_spi_bus_setup);
>  }
>  
> +static void inv_icm42607_spi_remove(struct spi_device *spi)
> +{
> +	pm_runtime_force_suspend(&spi->dev);
> +}

[Severity: Medium]
Could this run into the same double-disable issue as the I2C remove function
due to the devres pm_runtime_disable() action?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260720202343.70138-1-macroalpha82@gmail.com?part=5

  reply	other threads:[~2026-07-20 20:40 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-20 20:23 [PATCH V18 0/9] Add Invensense ICM42607 Chris Morgan
2026-07-20 20:23 ` Chris Morgan
2026-07-20 20:23 ` [PATCH V18 1/9] dt-bindings: iio: imu: icm42600: Add mount-matrix Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:23 ` [PATCH V18 2/9] dt-bindings: iio: imu: icm42600: Add icm42607 Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:23 ` [PATCH V18 3/9] iio: imu: inv_icm42607: Add inv_icm42607 Core Driver Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:23 ` [PATCH V18 4/9] iio: imu: inv_icm42607: Add SPI For icm42607 Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:23 ` [PATCH V18 5/9] iio: imu: inv_icm42607: Add PM support for icm42607 Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:40   ` sashiko-bot [this message]
2026-07-20 20:23 ` [PATCH V18 6/9] iio: imu: inv_icm42607: Add Accelerometer " Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:23 ` [PATCH V18 7/9] iio: imu: inv_icm42607: Add Gyroscope to icm42607 Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:37   ` sashiko-bot
2026-07-20 20:23 ` [PATCH V18 8/9] iio: imu: inv_icm42607: Add Temp Support in icm42607 Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 20:39   ` sashiko-bot
2026-07-20 20:23 ` [PATCH V18 9/9] arm64: dts: rockchip: Add icm42607p IMU for RG-DS Chris Morgan
2026-07-20 20:23   ` Chris Morgan
2026-07-20 21:17 ` [PATCH V18 0/9] Add Invensense ICM42607 Chris Morgan
2026-07-20 21:17   ` Chris Morgan

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=20260720204008.3197C1F00A3A@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=macroalpha82@gmail.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.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.