From: sashiko-bot@kernel.org
To: "Ariana Lazar" <ariana.lazar@microchip.com>
Cc: conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org
Subject: Re: [PATCH v5 07/10] iio: dac: mcp47feb02: rename command mask define
Date: Wed, 09 Sep 2026 14:39:07 +0000 [thread overview]
Message-ID: <20260909143908.0E9971F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260909-mcp47feb02_refactor-v5-7-8b67bcab93d1@microchip.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
Pre-existing issues:
- [High] The driver fails to correctly parse the powerdown state during initialization, causing it to lose the distinction between 'Normal Operation' and '1 kOhm to GND' powerdown mode.
- [High] The driver's suspend/resume PM callbacks permanently clobber the user-configured logical powerdown state.
--
commit 0d81d552cabc3f0d9820a2ed59353c19dc69d754
Author: Ariana Lazar <ariana.lazar@microchip.com>
iio: dac: mcp47feb02: rename command mask define
This commit replaces the initial mask define with two new macros.
These new macros explicitly select the corresponding bits for each channel
in the VREF and Power Down registers.
> diff --git a/drivers/iio/dac/mcp47feb02.c b/drivers/iio/dac/mcp47feb02.c
> index c054711a55ca0..fb66bd2664a9e 100644
> --- a/drivers/iio/dac/mcp47feb02.c
> +++ b/drivers/iio/dac/mcp47feb02.c
[ ... ]
> @@ -1069,7 +1070,7 @@ static int mcp47feb02_init_ctrl_regs(struct mcp47feb02_data *data)
> break;
> }
>
> - pd_tmp = (pd_ch >> (2 * i)) & MCP47FEB02_DAC_CTRL_MASK;
> + pd_tmp = MCP47FEB02_GET_POWER_DOWN_MODE(pd_ch, i);
> data->chdata[i].powerdown_mode = pd_tmp ? (pd_tmp - 1) : pd_tmp;
> data->chdata[i].powerdown = !!(data->chdata[i].powerdown_mode);
[Severity: High]
This isn't a bug introduced by this patch, but is it possible this logic
incorrectly parses the powerdown state during initialization?
When pd_tmp is 1 (1 kOhm to GND), powerdown_mode is calculated as 1 - 1 = 0.
When pd_tmp is 0 (Normal Operation), powerdown_mode is also 0.
Since the driver then sets powerdown to !!powerdown_mode (which evaluates to
false in both cases), it seems the driver loses the hardware's true powerdown
state if it booted in the '1 kOhm to GND' mode, misreporting it as normal
operation.
> }
[Severity: High]
This is a pre-existing issue, but I wanted to ask about the suspend and
resume behavior in this driver.
drivers/iio/dac/mcp47feb02.c:mcp47feb02_suspend() {
...
for_each_set_bit(ch, &data->active_channels_mask, data->phys_channels) {
u8 pd_mode;
data->chdata[ch].powerdown = true;
...
}
drivers/iio/dac/mcp47feb02.c:mcp47feb02_resume() {
...
for_each_set_bit(ch, &data->active_channels_mask, data->phys_channels) {
u8 pd_mode;
int ret;
data->chdata[ch].powerdown = false;
...
}
If a DAC channel is explicitly placed in powerdown by the user via sysfs,
would it unexpectedly wake up fully powered on after a system resume because
the user's requested powerdown configuration is permanently overwritten?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260909-mcp47feb02_refactor-v5-0-8b67bcab93d1@microchip.com?part=7
next prev parent reply other threads:[~2026-09-09 14:39 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-09 14:18 [PATCH v5 00/10] Refactor Microchip MCP47FEB02 I2C driver in separate modules to add support for MCP48FEB02 SPI driver Ariana Lazar
2026-09-09 14:18 ` [PATCH v5 01/10] iio: dac: mcp47feb02: initialize dac_data field in channel data struct at probe Ariana Lazar
2026-09-09 14:32 ` sashiko-bot
2026-09-09 14:18 ` [PATCH v5 02/10] iio: dac: mcp47feb02: Fix gain field initialization for active channels Ariana Lazar
2026-09-13 21:43 ` Jonathan Cameron
2026-09-09 14:18 ` [PATCH v5 03/10] iio: dac: mcp47feb02: Return len when disabling EEPROM store Ariana Lazar
2026-09-09 14:33 ` sashiko-bot
2026-09-09 14:18 ` [PATCH v5 04/10] iio: dac: mcp47feb02: Increase EEPROM Programming Write Cycle Time Ariana Lazar
2026-09-09 14:31 ` sashiko-bot
2026-09-10 6:11 ` Andy Shevchenko
2026-09-09 14:18 ` [PATCH v5 05/10] iio: dac: mcp47feb02: Avoid unjustified probe failure on missing label Ariana Lazar
2026-09-09 14:40 ` sashiko-bot
2026-09-10 6:12 ` Andy Shevchenko
2026-09-09 14:18 ` [PATCH v5 06/10] iio: dac: mcp47feb02: correct typo from a comment Ariana Lazar
2026-09-09 14:18 ` [PATCH v5 07/10] iio: dac: mcp47feb02: rename command mask define Ariana Lazar
2026-09-09 14:39 ` sashiko-bot [this message]
2026-09-09 14:18 ` [PATCH v5 08/10] iio: dac: mcp47feb02: refactor MCP47FEB02 I2C driver into two modules Ariana Lazar
2026-09-09 14:47 ` sashiko-bot
2026-09-10 6:16 ` Andy Shevchenko
2026-09-13 21:51 ` Jonathan Cameron
2026-09-09 14:18 ` [PATCH v5 09/10] dt-bindings: iio: dac: add support for MCP48FEB02 SPI Ariana Lazar
2026-09-09 14:48 ` sashiko-bot
2026-09-09 14:18 ` [PATCH v5 10/10] iio: dac: add support for Microchip MCP48FEB02 Ariana Lazar
2026-09-09 14:51 ` sashiko-bot
2026-09-10 6:17 ` Andy Shevchenko
2026-09-10 6:18 ` [PATCH v5 00/10] Refactor Microchip MCP47FEB02 I2C driver in separate modules to add support for MCP48FEB02 SPI driver Andy Shevchenko
2026-09-13 21:55 ` Jonathan Cameron
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=20260909143908.0E9971F00A3A@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=ariana.lazar@microchip.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--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