From: sashiko-bot@kernel.org
To: "Maxwell Doose" <m32285159@gmail.com>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [RFC PATCH 2/3] iio: temperature: Add STS30 temperature sensor driver
Date: Sat, 20 Jun 2026 04:48:12 +0000 [thread overview]
Message-ID: <20260620044812.E13B31F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260620044010.1082621-3-m32285159@gmail.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The return value of `sts30_reset()` is ignored during probe, allowing phantom device registration on failure.
- [High] The driver implements a Clock Stretching Disabled I2C sequence but uses Clock Stretching Enabled command codes, resulting in a protocol mismatch.
--
commit 1a183c37bbba5fe87dfcc6019f964e51526fec2b
Author: Maxwell Doose <m32285159@gmail.com>
iio: temperature: Add STS30 temperature sensor driver
Add a driver for the Sensirion STS30 family of temperature sensor
drivers over I2C. The driver supports single-shot non-clock stretched
readings using a specified delay based on the repeatability/delay.
> diff --git a/drivers/iio/temperature/sts30.c b/drivers/iio/temperature/sts30.c
> new file mode 100644
> index 0000000000000..b49deb1d62c21
> --- /dev/null
> +++ b/drivers/iio/temperature/sts30.c
[ ... ]
> +#define STS30_MEAS_SIZE 3
> +
> +#define STS30_COMMAND_READ_HIGH_REPEAT 0x2C06
> +#define STS30_COMMAND_READ_MED_REPEAT 0x2C0D
> +#define STS30_COMMAND_READ_LOW_REPEAT 0x2C10
[Severity: High]
The commit message mentions using non-clock stretched readings, but are
these the correct commands? According to the STS3x datasheet, the 0x2Cxx
series commands are for "Clock Stretching Enabled", which require a
Repeated START condition between the write and read phases.
[ ... ]
> +static int sts30_read(struct sts30_data *data, u16 command, u16 *val)
> +{
> + u8 tmp[2];
> + u8 buf[STS30_MEAS_SIZE];
> + int ret;
> +
> + put_unaligned_be16(command, tmp);
> +
> + ret = i2c_master_send(data->client, tmp, sizeof(tmp));
> + if (ret < 0)
> + return ret;
> + if (ret != sizeof(tmp))
> + return -EIO;
> +
> + fsleep(data->delay);
[Severity: High]
Will sending a STOP condition here abort the measurement? Since
i2c_master_send() issues a STOP condition rather than a Repeated START,
this sequence violates the protocol for the Clock Stretching Enabled
commands (0x2Cxx) defined above.
Should this use the "Clock Stretching Disabled" commands (e.g., 0x2400)
instead, or alternatively use a single i2c_transfer() with a Repeated START?
[ ... ]
> +static int sts30_probe(struct i2c_client *client)
> +{
> + struct iio_dev *indio_dev;
> + struct sts30_data *data;
> + int ret;
[ ... ]
> + ret = sts30_reset(data);
> +
> + return devm_iio_device_register(&client->dev, indio_dev);
> +}
[Severity: High]
Is it intentional to ignore the return value of sts30_reset() here?
If the reset fails due to the hardware being missing or a broken I2C bus,
this will unconditionally register a phantom device to userspace. Should we
check 'ret' and return the error code instead?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260620044010.1082621-1-m32285159@gmail.com?part=2
next prev parent reply other threads:[~2026-06-20 4:48 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-20 4:40 [RFC PATCH 0/3] Add Sensirion STS30 temperature sensor driver Maxwell Doose
2026-06-20 4:40 ` [RFC PATCH 1/3] dt-bindings: iio: temperature: Add STS30 devicetree bindings Maxwell Doose
2026-06-20 4:52 ` sashiko-bot
2026-06-20 4:40 ` [RFC PATCH 2/3] iio: temperature: Add STS30 temperature sensor driver Maxwell Doose
2026-06-20 4:48 ` sashiko-bot [this message]
2026-06-20 7:43 ` Joshua Crofts
2026-06-20 15:15 ` Maxwell Doose
2026-06-20 4:40 ` [RFC PATCH 3/3] MAINTAINERS: Add entry for Sensirion STS30 driver Maxwell Doose
2026-06-20 7:00 ` Joshua Crofts
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=20260620044812.E13B31F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=m32285159@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox