From nobody Sun Feb 8 22:05:42 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E180EB64D7 for ; Wed, 21 Jun 2023 16:20:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231743AbjFUQUS (ORCPT ); Wed, 21 Jun 2023 12:20:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229718AbjFUQUP (ORCPT ); Wed, 21 Jun 2023 12:20:15 -0400 Received: from imap4.hz.codethink.co.uk (imap4.hz.codethink.co.uk [188.40.203.114]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E06510F1 for ; Wed, 21 Jun 2023 09:20:10 -0700 (PDT) Received: from [167.98.27.226] (helo=rainbowdash) by imap4.hz.codethink.co.uk with esmtpsa (Exim 4.94.2 #2 (Debian)) id 1qC0Yx-0016iZ-Av; Wed, 21 Jun 2023 17:20:07 +0100 Received: from ben by rainbowdash with local (Exim 4.96) (envelope-from ) id 1qC0Yx-001z4S-0H; Wed, 21 Jun 2023 17:20:07 +0100 From: Ben Dooks To: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, alexandre.belloni@bootlin.com Cc: Ben Dooks Subject: [RFC 1/5] i3c: show error with node for invalid reg property Date: Wed, 21 Jun 2023 17:20:01 +0100 Message-Id: <20230621162005.473049-2-ben.dooks@codethink.co.uk> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621162005.473049-1-ben.dooks@codethink.co.uk> References: <20230621162005.473049-1-ben.dooks@codethink.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When adding i3c devices via fdt, it is useful to get an error if the reg node is wrong (say, you thought it was an i2c device and only needed one value here) and have the error show the OF node which was the cause of the problem (in case of many devices in the system), Signed-off-by: Ben Dooks --- drivers/i3c/master.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 08aeb69a7800..559fc2781a81 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -2094,8 +2094,10 @@ static int of_i3c_master_add_dev(struct i3c_master_c= ontroller *master, return -EINVAL; =20 ret =3D of_property_read_u32_array(node, "reg", reg, ARRAY_SIZE(reg)); - if (ret) + if (ret) { + dev_err(&master->dev, "%pOF: invalid reg property", node); return ret; + } =20 /* * The manufacturer ID can't be 0. If reg[1] =3D=3D 0 that means we're --=20 2.40.1 From nobody Sun Feb 8 22:05:42 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FAEDEB64DC for ; Wed, 21 Jun 2023 16:20:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229600AbjFUQUV (ORCPT ); Wed, 21 Jun 2023 12:20:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229482AbjFUQUP (ORCPT ); Wed, 21 Jun 2023 12:20:15 -0400 Received: from imap5.colo.codethink.co.uk (imap5.colo.codethink.co.uk [78.40.148.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBE7EE41 for ; Wed, 21 Jun 2023 09:20:09 -0700 (PDT) Received: from [167.98.27.226] (helo=rainbowdash) by imap5.colo.codethink.co.uk with esmtpsa (Exim 4.94.2 #2 (Debian)) id 1qC0Yw-00CSap-Fg; Wed, 21 Jun 2023 17:20:07 +0100 Received: from ben by rainbowdash with local (Exim 4.96) (envelope-from ) id 1qC0Yx-001z4X-0O; Wed, 21 Jun 2023 17:20:07 +0100 From: Ben Dooks To: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, alexandre.belloni@bootlin.com Cc: Ben Dooks Subject: [RFC 2/5] i3c: add error print to show device failing during populate bus Date: Wed, 21 Jun 2023 17:20:02 +0100 Message-Id: <20230621162005.473049-3-ben.dooks@codethink.co.uk> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621162005.473049-1-ben.dooks@codethink.co.uk> References: <20230621162005.473049-1-ben.dooks@codethink.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The of_populate_i3c_bus() does not produce much helpful output when a device fails to add, so addd an explicit dev_err() showing the device node that failed and the error code it failed with. This should make finding bad device-tree entries easier. Signed-off-by: Ben Dooks --- drivers/i3c/master.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 559fc2781a81..6316f3fc914a 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -2125,6 +2125,8 @@ static int of_populate_i3c_bus(struct i3c_master_cont= roller *master) for_each_available_child_of_node(i3cbus_np, node) { ret =3D of_i3c_master_add_dev(master, node); if (ret) { + dev_err(dev, "%pOF: failed to add device (%d)\n", + node, ret); of_node_put(node); return ret; } --=20 2.40.1 From nobody Sun Feb 8 22:05:42 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9230EB64D7 for ; Wed, 21 Jun 2023 16:20:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232057AbjFUQUX (ORCPT ); Wed, 21 Jun 2023 12:20:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229796AbjFUQUP (ORCPT ); Wed, 21 Jun 2023 12:20:15 -0400 Received: from imap5.colo.codethink.co.uk (imap5.colo.codethink.co.uk [78.40.148.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC324E69 for ; Wed, 21 Jun 2023 09:20:09 -0700 (PDT) Received: from [167.98.27.226] (helo=rainbowdash) by imap5.colo.codethink.co.uk with esmtpsa (Exim 4.94.2 #2 (Debian)) id 1qC0Yw-00CSaq-JA; Wed, 21 Jun 2023 17:20:07 +0100 Received: from ben by rainbowdash with local (Exim 4.96) (envelope-from ) id 1qC0Yx-001z4c-0U; Wed, 21 Jun 2023 17:20:07 +0100 From: Ben Dooks To: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, alexandre.belloni@bootlin.com Cc: Ben Dooks Subject: [RFC 3/5] i3c: show node when printing unsupported 10-bit i2c dev Date: Wed, 21 Jun 2023 17:20:03 +0100 Message-Id: <20230621162005.473049-4-ben.dooks@codethink.co.uk> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621162005.473049-1-ben.dooks@codethink.co.uk> References: <20230621162005.473049-1-ben.dooks@codethink.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When an i2c device is errored due to not being supported, the OF node is not show (unlike errors from of_i2c_get_board_info). Make the failed node explict in the of_i3c_master_add_i2c_boardinfo() to aid in tracking down incorrect entries in the device tree. Signed-off-by: Ben Dooks --- drivers/i3c/master.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 6316f3fc914a..bc42669f5c6d 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -2023,7 +2023,7 @@ of_i3c_master_add_i2c_boardinfo(struct i3c_master_con= troller *master, * DEFSLVS command. */ if (boardinfo->base.flags & I2C_CLIENT_TEN) { - dev_err(dev, "I2C device with 10 bit address not supported."); + dev_err(dev, "%pOF: I2C device with 10 bit address not supported.", node= ); return -ENOTSUPP; } =20 --=20 2.40.1 From nobody Sun Feb 8 22:05:42 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4BC06EB64D8 for ; Wed, 21 Jun 2023 16:20:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232128AbjFUQU0 (ORCPT ); Wed, 21 Jun 2023 12:20:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230129AbjFUQUP (ORCPT ); Wed, 21 Jun 2023 12:20:15 -0400 Received: from imap4.hz.codethink.co.uk (imap4.hz.codethink.co.uk [188.40.203.114]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4DF3F10CE for ; Wed, 21 Jun 2023 09:20:10 -0700 (PDT) Received: from [167.98.27.226] (helo=rainbowdash) by imap4.hz.codethink.co.uk with esmtpsa (Exim 4.94.2 #2 (Debian)) id 1qC0Yx-0016ia-Dk; Wed, 21 Jun 2023 17:20:07 +0100 Received: from ben by rainbowdash with local (Exim 4.96) (envelope-from ) id 1qC0Yx-001z4h-0Y; Wed, 21 Jun 2023 17:20:07 +0100 From: Ben Dooks To: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, alexandre.belloni@bootlin.com Cc: Ben Dooks Subject: [RFC 4/5] i3c: show error messages in of_i3c_master_add_i3c_boardinfo Date: Wed, 21 Jun 2023 17:20:04 +0100 Message-Id: <20230621162005.473049-5-ben.dooks@codethink.co.uk> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621162005.473049-1-ben.dooks@codethink.co.uk> References: <20230621162005.473049-1-ben.dooks@codethink.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" If of_i3c_master_add_i3c_boardinfo() fails, then there's no much to say what the issue was (most of the error returns are -EINVAL), so add some printing of the errors using dev_err() showing the node that failed and what the issue was. This should help with finding which device-tree node was causing the issue and also mirrors the i2c case where it shows the node and the error. Signed-off-by: Ben Dooks --- drivers/i3c/master.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index bc42669f5c6d..2a9ebb1d9d57 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -2050,32 +2050,42 @@ of_i3c_master_add_i3c_boardinfo(struct i3c_master_c= ontroller *master, return -ENOMEM; =20 if (reg[0]) { - if (reg[0] > I3C_MAX_ADDR) + if (reg[0] > I3C_MAX_ADDR) { + dev_err(dev, "%pOF: address too big\n", node); return -EINVAL; + } =20 addrstatus =3D i3c_bus_get_addr_slot_status(&master->bus, reg[0]); - if (addrstatus !=3D I3C_ADDR_SLOT_FREE) + if (addrstatus !=3D I3C_ADDR_SLOT_FREE) { + dev_err(dev, "%pOF: slot in use\n", node); return -EINVAL; + } } =20 boardinfo->static_addr =3D reg[0]; =20 if (!of_property_read_u32(node, "assigned-address", &init_dyn_addr)) { - if (init_dyn_addr > I3C_MAX_ADDR) + if (init_dyn_addr > I3C_MAX_ADDR) { + dev_err(dev, "%pOF: cannot assign address\n", node); return -EINVAL; + } =20 addrstatus =3D i3c_bus_get_addr_slot_status(&master->bus, init_dyn_addr); - if (addrstatus !=3D I3C_ADDR_SLOT_FREE) + if (addrstatus !=3D I3C_ADDR_SLOT_FREE) { + dev_err(dev, "%pOF: slot in use\n", node); return -EINVAL; + } } =20 boardinfo->pid =3D ((u64)reg[1] << 32) | reg[2]; =20 if ((boardinfo->pid & GENMASK_ULL(63, 48)) || - I3C_PID_RND_LOWER_32BITS(boardinfo->pid)) + I3C_PID_RND_LOWER_32BITS(boardinfo->pid)) { + dev_err(dev, "%pOF: bad PID\n", node); return -EINVAL; + } =20 boardinfo->init_dyn_addr =3D init_dyn_addr; boardinfo->of_node =3D of_node_get(node); --=20 2.40.1 From nobody Sun Feb 8 22:05:42 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02754EB64D7 for ; Wed, 21 Jun 2023 16:20:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232190AbjFUQU2 (ORCPT ); Wed, 21 Jun 2023 12:20:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230038AbjFUQUP (ORCPT ); Wed, 21 Jun 2023 12:20:15 -0400 Received: from imap5.colo.codethink.co.uk (imap5.colo.codethink.co.uk [78.40.148.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC0EFE68 for ; Wed, 21 Jun 2023 09:20:09 -0700 (PDT) Received: from [167.98.27.226] (helo=rainbowdash) by imap5.colo.codethink.co.uk with esmtpsa (Exim 4.94.2 #2 (Debian)) id 1qC0Yw-00CSar-IB; Wed, 21 Jun 2023 17:20:07 +0100 Received: from ben by rainbowdash with local (Exim 4.96) (envelope-from ) id 1qC0Yx-001z4m-0c; Wed, 21 Jun 2023 17:20:07 +0100 From: Ben Dooks To: linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, alexandre.belloni@bootlin.com Cc: Ben Dooks Subject: [RFC 5/5] i3c: dw; add print if cannot get resources Date: Wed, 21 Jun 2023 17:20:05 +0100 Message-Id: <20230621162005.473049-6-ben.dooks@codethink.co.uk> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230621162005.473049-1-ben.dooks@codethink.co.uk> References: <20230621162005.473049-1-ben.dooks@codethink.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The devm_reset_control_get_optional_exclusive() call does not print any errors, neiterh does the clk_prepare_enable or devm_request_irq() call. Add some basic error printing to make the probe failures easier to debug. Signed-off-by: Ben Dooks --- drivers/i3c/master/dw-i3c-master.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i3c= -master.c index 9332ae5f6419..ffc84ff6225c 100644 --- a/drivers/i3c/master/dw-i3c-master.c +++ b/drivers/i3c/master/dw-i3c-master.c @@ -1429,12 +1429,16 @@ int dw_i3c_common_probe(struct dw_i3c_master *maste= r, =20 master->core_rst =3D devm_reset_control_get_optional_exclusive(&pdev->dev, "core_rst"); - if (IS_ERR(master->core_rst)) + if (IS_ERR(master->core_rst)) { + dev_err(&pdev->dev, "cannot get core_rst\n"); return PTR_ERR(master->core_rst); + } =20 ret =3D clk_prepare_enable(master->core_clk); - if (ret) + if (ret) { + dev_err(&pdev->dev, "cannot enable core_clk\n"); goto err_disable_core_clk; + } =20 reset_control_deassert(master->core_rst); =20 @@ -1446,8 +1450,10 @@ int dw_i3c_common_probe(struct dw_i3c_master *master, ret =3D devm_request_irq(&pdev->dev, irq, dw_i3c_master_irq_handler, 0, dev_name(&pdev->dev), master); - if (ret) + if (ret) { + dev_err(&pdev->dev, "cannot get irq\n"); goto err_assert_rst; + } =20 platform_set_drvdata(pdev, master); =20 --=20 2.40.1