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, robh@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH V15 6/9] iio: imu: inv_icm42607: Add Accelerometer for icm42607
Date: Fri, 26 Jun 2026 16:29:34 +0000	[thread overview]
Message-ID: <20260626162935.2FD321F00A3D@smtp.kernel.org> (raw)
In-Reply-To: <20260626161230.93069-7-macroalpha82@gmail.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The driver fails to update the cached sensor mode (`st->conf.accel.mode` and `st->conf.gyro.mode`) in `inv_icm42607_set_sensor_conf()`, causing active sensors to be inadvertently powered down during subsequent operations on other channels.
- [Low] Comment mismatch regarding reserved values in ODR arrays.
--

commit 21180a0d12af14de0e8d6f0ad4323cd153c83b4d
Author: Chris Morgan <macromorgan@hotmail.com>

iio: imu: inv_icm42607: Add Accelerometer for icm42607
    
Add icm42607 accelerometer sensor for icm42607.

> diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_accel.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_accel.c
> new file mode 100644
> index 0000000000000..8ef9fdae1bc84
> --- /dev/null
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_accel.c

[ ... ]

> +static int inv_icm42607_accel_write_scale(struct iio_dev *indio_dev,
> +					  int val, int val2)
> +{

[ ... ]

> +	return inv_icm42607_set_sensor_conf(st, &conf, IIO_ACCEL);
> +}
> +
> +/* IIO format int + micro , values 0-5 reserved. */
> +static const int inv_icm42607_accel_odr[][2] = {
> +	[INV_ICM42607_ODR_1600HZ] = { 1600, 0 },
> +	[INV_ICM42607_ODR_800HZ] = { 800, 0 },

[Severity: Low]
This isn't a bug, but the comment states values 0-5 are reserved.
However, the array defines index 5 (INV_ICM42607_ODR_1600HZ) and the iteration
logic later starts at index 5. Should this say values 0-4 are reserved
instead?

[ ... ]

> diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> index 738970ed5c66f..300c583aba81d 100644
> --- a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c

[ ... ]

> +int inv_icm42607_set_sensor_conf(struct inv_icm42607_state *st,
> +				 struct inv_icm42607_sensor_conf *conf,
> +				 enum iio_chan_type chan_type)
> +{
> +	struct inv_icm42607_sensor_conf *oldconf;
> +	bool config0, config1;
> +	unsigned int val;
> +	int ret;

[ ... ]

> +	if (config1) {
> +		if (chan_type == IIO_ANGL_VEL) {
> +			val = FIELD_PREP(INV_ICM42607_GYRO_CONFIG1_FILTER_MASK,
> +					 conf->filter);
> +			ret = regmap_update_bits(st->map, INV_ICM42607_REG_GYRO_CONFIG1,
> +						 INV_ICM42607_GYRO_CONFIG1_FILTER_MASK, val);
> +		} else {
> +			val = FIELD_PREP(INV_ICM42607_ACCEL_CONFIG1_FILTER_MASK,
> +					 conf->filter);
> +			ret = regmap_update_bits(st->map, INV_ICM42607_REG_ACCEL_CONFIG1,
> +						 INV_ICM42607_ACCEL_CONFIG1_FILTER_MASK, val);
> +		}
> +		if (ret)
> +			return ret;
> +
> +		oldconf->filter = conf->filter;
> +	}
> +

[Severity: High]
Should conf->mode be saved to oldconf->mode before updating the power
management state?

Since oldconf->mode is never updated here, the software state permanently
tracks both sensors as OFF. When reading one sensor, the stale OFF state
for the other sensor is passed to inv_icm42607_set_pwr_mgmt0(), which
inadvertently powers it down. This can cause the driver to ping-pong power
states and incur 45ms delays on alternating reads.

> +	if (chan_type == IIO_ANGL_VEL)
> +		return inv_icm42607_set_pwr_mgmt0(st, conf->mode, st->conf.accel.mode);
> +
> +	return inv_icm42607_set_pwr_mgmt0(st, st->conf.gyro.mode, conf->mode);
> +}

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

  reply	other threads:[~2026-06-26 16:29 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-26 16:12 [PATCH V15 0/9] Add Invensense ICM42607 Chris Morgan
2026-06-26 16:12 ` Chris Morgan
2026-06-26 16:12 ` [PATCH V15 1/9] dt-bindings: iio: imu: icm42600: Add mount-matrix Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:12 ` [PATCH V15 2/9] dt-bindings: iio: imu: icm42600: Add icm42607 Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:12 ` [PATCH V15 3/9] iio: imu: inv_icm42607: Add inv_icm42607 Core Driver Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:12 ` [PATCH V15 4/9] iio: imu: inv_icm42607: Add SPI For icm42607 Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:12 ` [PATCH V15 5/9] iio: imu: inv_icm42607: Add PM support for icm42607 Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:12 ` [PATCH V15 6/9] iio: imu: inv_icm42607: Add Accelerometer " Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:29   ` sashiko-bot [this message]
2026-06-26 16:12 ` [PATCH V15 7/9] iio: imu: inv_icm42607: Add Gyroscope to icm42607 Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:28   ` sashiko-bot
2026-06-26 16:12 ` [PATCH V15 8/9] iio: imu: inv_icm42607: Add Temp Support in icm42607 Chris Morgan
2026-06-26 16:12   ` Chris Morgan
2026-06-26 16:29   ` sashiko-bot
2026-06-26 16:12 ` [PATCH V15 9/9] arm64: dts: rockchip: Add icm42607p IMU for RG-DS Chris Morgan
2026-06-26 16:12   ` 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=20260626162935.2FD321F00A3D@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.