[PATCH v4 0/5] iio: imu: inv_icm42600: pm_runtime fixes + various changes

Sean Nyekjaer posted 5 patches 3 weeks, 2 days ago
drivers/iio/imu/inv_icm42600/inv_icm42600.h        |   1 -
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c  |  24 ++---
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c |  41 ++++----
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c   | 117 +++++++--------------
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c   |  24 ++---
5 files changed, 70 insertions(+), 137 deletions(-)
[PATCH v4 0/5] iio: imu: inv_icm42600: pm_runtime fixes + various changes
Posted by Sean Nyekjaer 3 weeks, 2 days ago
This series was triggered by "Runtime PM usage count underflow!" when
unloading the module(s).
By testing the driver in various use cases and reading code it was
obvious that it could need some tiding up.

@Rafael:
Is checking pm_runtime_status_suspended() is a viable option?
To avoid calling regulator_disable 2x during remove()?

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
Changes in v4:
- Corrected review comments from David in PATCH 5/5
- Link to v3: https://lore.kernel.org/r/20250901-icm42pmreg-v3-0-ef1336246960@geanix.com

Changes in v3:
- Return early if pm_runtime_status_suspended() is set.
- Fixed various comments from Andy in "use guard() to release mutexes" 
- Link to v2: https://lore.kernel.org/r/20250808-icm42pmreg-v2-0-a480279e7721@geanix.com

Changes in v2:
- Removed patch iio: imu: inv_icm42600: Use inv_icm42600_disable_vddio_reg()
- Moved changes from patch iio: imu: inv_icm42600: Remove redundant
  error msg on regulator_disable() into iio: imu: inv_icm42600: Simplify
  pm_runtime setup.
- Move associated sleep close to enabling of vdd
- Pass regulator as the parameter to inv_icm42600_disable_vddio_reg()
- Use devm_pm_runtime_set_active_enabled() to simplify even more
- Added a new commit that uses guard() to release mutexes
- Link to v1: https://lore.kernel.org/r/20250709-icm42pmreg-v1-0-3d0e793c99b2@geanix.com

---
Sean Nyekjaer (5):
      iio: imu: inv_icm42600: Simplify pm_runtime setup
      iio: imu: inv_icm42600: Drop redundant pm_runtime reinitialization in resume
      iio: imu: inv_icm42600: Avoid configuring if already pm_runtime suspended
      iio: imu: inv_icm42600: Use devm_regulator_get_enable() for vdd regulator
      iio: imu: inv_icm42600: use guard() to release mutexes

 drivers/iio/imu/inv_icm42600/inv_icm42600.h        |   1 -
 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c  |  24 ++---
 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c |  41 ++++----
 drivers/iio/imu/inv_icm42600/inv_icm42600_core.c   | 117 +++++++--------------
 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c   |  24 ++---
 5 files changed, 70 insertions(+), 137 deletions(-)
---
base-commit: dfbbee0907fb30a1dd31ff1a84e1bd34bd824369
change-id: 20250708-icm42pmreg-24d824d978c4

Best regards,
-- 
Sean Nyekjaer <sean@geanix.com>