public inbox for linux-hwmon@vger.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Akhil R" <akhilrajeev@nvidia.com>
Cc: linux-hwmon@vger.kernel.org
Subject: Re: [PATCH v2 04/13] i3c: master: Support ACPI enumeration of child devices
Date: Thu, 09 Apr 2026 11:43:11 +0000	[thread overview]
Message-ID: <20260409114312.7B44FC4CEF7@smtp.kernel.org> (raw)
In-Reply-To: <20260409105747.48158-5-akhilrajeev@nvidia.com>

Sashiko AI review found 2 potential issue(s):
- [High] Multiple `I2cSerialBus` resources in an ACPI device cause resource overwrite and flag accumulation.
- [High] I3C master bus registration aborts completely if an unrelated ACPI child node is encountered.
--

commit 7f83af82c694a0667ad1907d9e9d179bdad37ecb
Author: Akhil R <akhilrajeev@nvidia.com>

i3c: master: Support ACPI enumeration of child devices

This commit adds support for enumerating I3C and I2C child devices of an I3C
master controller via ACPI. It extracts static addresses, LVR, and PID
information from ACPI resources instead of relying exclusively on Device Tree
properties.

[ ... ]

> diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
> index 5e0e926f61f3d..08d0fcabd6f10 100644
> --- a/drivers/i3c/master.c
> +++ b/drivers/i3c/master.c

[ ... ]

> @@ -2403,6 +2404,53 @@ EXPORT_SYMBOL_GPL(i3c_master_add_i3c_dev_locked);
>  
>  #define OF_I3C_REG1_IS_I2C_DEV			BIT(31)
>  
> +#ifdef CONFIG_ACPI
> +static int i3c_acpi_get_i2c_resource(struct acpi_resource *ares, void *data)
> +{
> +	struct i2c_dev_boardinfo *boardinfo = data;
> +	struct acpi_resource_i2c_serialbus *sb;
> +
> +	if (!i2c_acpi_get_i2c_resource(ares, &sb))
> +		return 1;
> +
> +	boardinfo->base.addr = sb->slave_address;
> +	if (sb->access_mode == ACPI_I2C_10BIT_MODE)
> +		boardinfo->base.flags |= I2C_CLIENT_TEN;
> +
> +	boardinfo->lvr = sb->lvr;
> +
> +	return 0;
> +}

If an ACPI device defines multiple I2cSerialBus resources, will this callback
overwrite boardinfo->base.addr and lvr with the values from the last parsed
resource?

Also, since boardinfo->base.flags uses a bitwise OR without clearing, if any
of the parsed resources are 10-bit but the final one is 7-bit, could the final
device be registered with a 7-bit address but with the 10-bit flag incorrectly
set?

[ ... ]

> @@ -2526,7 +2639,13 @@ static int fwnode_populate_i3c_bus(struct i3c_master_controller *master)
>  		return 0;
>  
>  	fwnode_for_each_available_child_node_scoped(fwnode, child) {
> -		ret = i3c_master_add_dev(master, child);
> +		if (is_of_node(child))
> +			ret = i3c_master_add_of_dev(master, child);
> +		else if (is_acpi_device_node(child))
> +			ret = i3c_master_add_acpi_dev(master, child);
> +		else
> +			continue;
> +
>  		if (ret)
>  			return ret;
>  	}

If the ACPI child node happens to be a non-device companion node (like a
PowerResource or thermal zone) lacking an _ADR method and an I2cSerialBus
resource, i3c_master_add_acpi_dev() will return -ENODEV.

Will returning an error here cause the entire I3C master controller bus
registration to abort just because of an unrelated companion node in the
ACPI namespace?

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260409105747.48158-1-akhilrajeev@nvidia.com?part=4

  reply	other threads:[~2026-04-09 11:43 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-09 10:57 [PATCH v2 00/13] Support ACPI and SETAASA device discovery Akhil R
2026-04-09 10:57 ` [PATCH v2 01/13] dt-bindings: i3c: Add mipi-i3c-static-method to support SETAASA Akhil R
2026-04-09 11:14   ` sashiko-bot
2026-04-10  2:00   ` Frank Li
2026-04-10  4:30     ` Akhil R
2026-04-09 10:57 ` [PATCH v2 02/13] ACPICA: Read LVR from the I2C resource descriptor Akhil R
2026-04-09 11:07   ` Rafael J. Wysocki
2026-04-09 11:20   ` sashiko-bot
2026-04-10  2:04   ` Frank Li
2026-04-10  4:45     ` Akhil R
2026-04-10 10:59       ` Rafael J. Wysocki
2026-04-10 10:57     ` Rafael J. Wysocki
2026-04-09 10:57 ` [PATCH v2 03/13] i3c: master: Use unified device property interface Akhil R
2026-04-09 11:53   ` sashiko-bot
2026-04-09 10:57 ` [PATCH v2 04/13] i3c: master: Support ACPI enumeration of child devices Akhil R
2026-04-09 11:43   ` sashiko-bot [this message]
2026-04-10  2:17   ` Frank Li
2026-04-10  5:31     ` Akhil R
2026-04-09 10:57 ` [PATCH v2 05/13] i3c: master: Add support for devices using SETAASA Akhil R
2026-04-09 11:45   ` sashiko-bot
2026-04-10  2:25   ` Frank Li
2026-04-09 10:57 ` [PATCH v2 06/13] i3c: master: Add support for devices without PID Akhil R
2026-04-09 12:08   ` sashiko-bot
2026-04-10  2:37   ` Frank Li
2026-04-09 10:57 ` [PATCH v2 07/13] i3c: master: match I3C device through DT and ACPI Akhil R
2026-04-10  2:40   ` Frank Li
2026-04-09 10:57 ` [PATCH v2 08/13] i3c: dw-i3c-master: Add SETAASA as supported CCC Akhil R
2026-04-10  2:41   ` Frank Li
2026-04-09 10:57 ` [PATCH v2 09/13] i3c: dw-i3c-master: Add a quirk to skip clock and reset Akhil R
2026-04-09 11:51   ` sashiko-bot
2026-04-10  2:45   ` Frank Li
2026-04-10  6:07     ` Akhil R
2026-04-09 10:57 ` [PATCH v2 10/13] i3c: dw-i3c-master: Add ACPI ID for Tegra410 Akhil R
2026-04-10  2:47   ` Frank Li
2026-04-09 10:57 ` [PATCH v2 11/13] hwmon: spd5118: Remove 16-bit addressing Akhil R
2026-04-09 14:11   ` Guenter Roeck
2026-04-09 10:57 ` [PATCH v2 12/13] hwmon: spd5118: Add I3C support Akhil R
2026-04-09 12:36   ` sashiko-bot
2026-04-09 14:15     ` Guenter Roeck
2026-04-09 14:19   ` Guenter Roeck
2026-04-09 10:57 ` [PATCH v2 13/13] arm64: defconfig: Enable I3C and SPD5118 hwmon Akhil R
2026-04-10  6:39   ` Krzysztof Kozlowski
2026-04-10  6:57     ` Guenter Roeck
2026-04-10  7:18       ` Krzysztof Kozlowski
2026-04-10  8:37         ` Akhil R
2026-04-10  9:57           ` Krzysztof Kozlowski
2026-04-10  7:04     ` Akhil R

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=20260409114312.7B44FC4CEF7@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=akhilrajeev@nvidia.com \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=sashiko@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