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 V14 6/9] iio: imu: inv_icm42607: Add Accelerometer for icm42607
Date: Wed, 24 Jun 2026 18:50:27 +0000 [thread overview]
Message-ID: <20260624185027.949861F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260624182350.50467-7-macroalpha82@gmail.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Missing update of software cache for sensor power mode causes unintended hardware power-downs.
- [Medium] Use of non-monotonic `ktime_get_real()` for hardware delay tracking.
--
commit 99de30070cdb6e08bed49a3aac077583415f3f84
Author: Chris Morgan <macromorgan@hotmail.com>
Subject: iio: imu: inv_icm42607: Add Accelerometer for icm42607
This patch adds accelerometer sensor support for the icm42607 device.
It introduces the accelerometer IIO channel configurations and integrates
the sensor state management.
> diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> index ad23386a37b78..26cedec0c97ce 100644
> --- a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
[ ... ]
> @@ -106,6 +107,15 @@ const struct inv_icm42607_hw inv_icm42607p_hw_data = {
[ ... ]
> +static int inv_icm42607_set_pwr_mgmt0(struct inv_icm42607_state *st,
> + enum inv_icm42607_sensor_mode gyro,
> + enum inv_icm42607_sensor_mode accel)
> +{
[ ... ]
> + if (!gyro && oldgyro) {
> + disable_wait = ktime_us_delta(st->conf.gyro_stop,
> + ktime_get_real());
[Severity: Medium]
Is ktime_get_real() safe to use here for hardware delay tracking?
Because ktime_get_real() returns wall-clock time, it is susceptible to
time jumps, such as an NTP synchronization.
If the clock jumps forwards while the gyroscope is being powered off,
could the calculated disable_wait become negative and get clamped to 0,
thereby bypassing the 45ms minimum on-time requirement?
> + disable_wait = clamp(disable_wait, 0,
> + INV_ICM42607_GYRO_STOP_TIME_US);
> + fsleep(disable_wait);
> + }
[ ... ]
> + if (gyro && !oldgyro) {
> + sleepval_us = max(sleepval_us, INV_ICM42607_GYRO_STARTUP_TIME_US);
> + /* Track the earliest we can turn off the gyroscope. */
> + st->conf.gyro_stop = ktime_add_us(ktime_get_real(),
> + INV_ICM42607_GYRO_STOP_TIME_US);
[Severity: Medium]
Would using a monotonic time source like ktime_get() prevent potential
issues with time jumps during this delay calculation?
> + }
> +
> + fsleep(sleepval_us);
> +
> + return 0;
> +}
[ ... ]
> @@ -171,6 +181,160 @@ static int inv_icm42607_set_pwr_mgmt0(struct inv_icm42607_state *st,
[ ... ]
> +int inv_icm42607_set_sensor_conf(struct inv_icm42607_state *st,
> + struct inv_icm42607_sensor_conf *conf,
> + enum iio_chan_type chan_type)
> +{
[ ... ]
> + 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);
> +}
[Severity: High]
Does this code update the software state cache for the sensor mode?
It appears that inv_icm42607_set_sensor_conf() applies the new mode to
the hardware by calling inv_icm42607_set_pwr_mgmt0(), but returns without
saving conf->mode into oldconf->mode (or st->conf.accel.mode /
st->conf.gyro.mode).
If this cache remains at its initial OFF value, could a subsequent
configuration of the other sensor read this stale OFF state and
erroneously power down the currently active sensor?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260624182350.50467-1-macroalpha82@gmail.com?part=6
next prev parent reply other threads:[~2026-06-24 18:50 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-24 18:23 [PATCH V14 0/9] Add Invensense ICM42607 Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:23 ` [PATCH V14 1/9] dt-bindings: iio: imu: icm42600: Add mount-matrix Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:23 ` [PATCH V14 2/9] dt-bindings: iio: imu: icm42600: Add icm42607 Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:39 ` sashiko-bot
2026-06-24 18:23 ` [PATCH V14 3/9] iio: imu: inv_icm42607: Add inv_icm42607 Core Driver Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:23 ` [PATCH V14 4/9] iio: imu: inv_icm42607: Add SPI For icm42607 Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:23 ` [PATCH V14 5/9] iio: imu: inv_icm42607: Add PM support for icm42607 Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:54 ` sashiko-bot
2026-06-24 18:23 ` [PATCH V14 6/9] iio: imu: inv_icm42607: Add Accelerometer " Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:50 ` sashiko-bot [this message]
2026-06-24 18:23 ` [PATCH V14 7/9] iio: imu: inv_icm42607: Add Gyroscope to icm42607 Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:23 ` [PATCH V14 8/9] iio: imu: inv_icm42607: Add Temp Support in icm42607 Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 18:51 ` sashiko-bot
2026-06-24 18:23 ` [PATCH V14 9/9] arm64: dts: rockchip: Add icm42607p IMU for RG-DS Chris Morgan
2026-06-24 18:23 ` Chris Morgan
2026-06-24 21:18 ` [PATCH V14 0/9] Add Invensense ICM42607 Chris Morgan
2026-06-24 21:18 ` 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=20260624185027.949861F000E9@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.