* [PATCH 0/5] gpio: nomadik: silence boot log
From: Théo Lebrun @ 2026-07-01 16:56 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Philipp Zabel
Cc: Vladimir Kondratiev, Gregory CLEMENT, Benoît Monin,
Tawfik Bayouk, Thomas Petazzoni, linux-arm-kernel, linux-gpio,
linux-kernel, Théo Lebrun
Currently, on EyeQ5, we might get those error logs:
[ 0.544230] nomadik-gpio 1400000.gpio: failed getting reset control: -EPROBE_DEFER
[ 0.544274] nomadik-gpio 1400000.gpio: could not populate nmk chip struct
Then on successful probe we get:
[ 0.976838] nomadik-gpio 1400000.gpio: chip registered
First line is because we don't use the appropriate dev_err_probe()
helper. Second line is redundant to populate chip dev_err() calls and
shall be dropped. Third line should be dropped.
That's done in patches 3+4+5. Patches 1+2 prepare the terrain.
Have a nice day,
Théo
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
Théo Lebrun (5):
gpio: nomadik: convert nmk_gpio_populate_chip() to goto cleanup
gpio: nomadik: add missing dev_err() call on chip populate failure
gpio: nomadik: drop duplicate probe error line
gpio: nomadik: use dev_err_probe()
gpio: nomadik: drop "chip registered" log on probe success
drivers/gpio/gpio-nomadik.c | 64 ++++++++++++++++++++++-----------------------
1 file changed, 32 insertions(+), 32 deletions(-)
---
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
change-id: 20260701-gpio-nomadik-silent-678abaee1e3e
Best regards,
--
Théo Lebrun <theo.lebrun@bootlin.com>
^ permalink raw reply
* [PATCH 1/5] gpio: nomadik: convert nmk_gpio_populate_chip() to goto cleanup
From: Théo Lebrun @ 2026-07-01 16:56 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Philipp Zabel
Cc: Vladimir Kondratiev, Gregory CLEMENT, Benoît Monin,
Tawfik Bayouk, Thomas Petazzoni, linux-arm-kernel, linux-gpio,
linux-kernel, Théo Lebrun
In-Reply-To: <20260701-gpio-nomadik-silent-v1-0-644d10316cef@bootlin.com>
Remove duplicate teardown code that is found in all error if
statements. Replace by goto-based cleanup labels.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
drivers/gpio/gpio-nomadik.c | 44 +++++++++++++++++++++++---------------------
1 file changed, 23 insertions(+), 21 deletions(-)
diff --git a/drivers/gpio/gpio-nomadik.c b/drivers/gpio/gpio-nomadik.c
index e22b713166d7..f25f251f4757 100644
--- a/drivers/gpio/gpio-nomadik.c
+++ b/drivers/gpio/gpio-nomadik.c
@@ -527,15 +527,15 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
if (device_property_read_u32(gpio_dev, "gpio-bank", &id)) {
dev_err(dev, "populate: gpio-bank property not found\n");
- platform_device_put(gpio_pdev);
- return ERR_PTR(-EINVAL);
+ ret = -EINVAL;
+ goto err_put_pdev;
}
#ifdef CONFIG_PINCTRL_NOMADIK
if (id >= ARRAY_SIZE(nmk_gpio_chips)) {
dev_err(dev, "populate: invalid id: %u\n", id);
- platform_device_put(gpio_pdev);
- return ERR_PTR(-EINVAL);
+ ret = -EINVAL;
+ goto err_put_pdev;
}
/* Already populated? */
nmk_chip = nmk_gpio_chips[id];
@@ -547,8 +547,8 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
nmk_chip = devm_kzalloc(dev, sizeof(*nmk_chip), GFP_KERNEL);
if (!nmk_chip) {
- platform_device_put(gpio_pdev);
- return ERR_PTR(-ENOMEM);
+ ret = -ENOMEM;
+ goto err_put_pdev;
}
if (device_property_read_u32(gpio_dev, "ngpios", &ngpio)) {
@@ -569,16 +569,16 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
res = platform_get_resource(gpio_pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(dev, res);
if (IS_ERR(base)) {
- platform_device_put(gpio_pdev);
- return ERR_CAST(base);
+ ret = PTR_ERR(base);
+ goto err_put_pdev;
}
nmk_chip->addr = base;
/* NOTE: do not use devm_ here! */
clk = clk_get_optional(gpio_dev, NULL);
if (IS_ERR(clk)) {
- platform_device_put(gpio_pdev);
- return ERR_CAST(clk);
+ ret = PTR_ERR(clk);
+ goto err_put_pdev;
}
clk_prepare(clk);
nmk_chip->clk = clk;
@@ -586,12 +586,9 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
/* NOTE: do not use devm_ here! */
reset = reset_control_get_optional_shared(gpio_dev, NULL);
if (IS_ERR(reset)) {
- clk_unprepare(clk);
- clk_put(clk);
- platform_device_put(gpio_pdev);
- dev_err(dev, "failed getting reset control: %pe\n",
- reset);
- return ERR_CAST(reset);
+ dev_err(dev, "failed getting reset control: %pe\n", reset);
+ ret = PTR_ERR(reset);
+ goto err_unprepare_clk;
}
/*
@@ -601,18 +598,23 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
*/
ret = reset_control_deassert(reset);
if (ret) {
- reset_control_put(reset);
- clk_unprepare(clk);
- clk_put(clk);
- platform_device_put(gpio_pdev);
dev_err(dev, "failed reset deassert: %d\n", ret);
- return ERR_PTR(ret);
+ goto err_put_reset;
}
#ifdef CONFIG_PINCTRL_NOMADIK
nmk_gpio_chips[id] = nmk_chip;
#endif
return nmk_chip;
+
+err_put_reset:
+ reset_control_put(reset);
+err_unprepare_clk:
+ clk_unprepare(clk);
+ clk_put(clk);
+err_put_pdev:
+ platform_device_put(gpio_pdev);
+ return ERR_PTR(ret);
}
static void nmk_gpio_irq_print_chip(struct irq_data *d, struct seq_file *p)
--
2.55.0
^ permalink raw reply related
* [PATCH 2/5] gpio: nomadik: add missing dev_err() call on chip populate failure
From: Théo Lebrun @ 2026-07-01 16:56 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Philipp Zabel
Cc: Vladimir Kondratiev, Gregory CLEMENT, Benoît Monin,
Tawfik Bayouk, Thomas Petazzoni, linux-arm-kernel, linux-gpio,
linux-kernel, Théo Lebrun
In-Reply-To: <20260701-gpio-nomadik-silent-v1-0-644d10316cef@bootlin.com>
All error paths of nmk_gpio_populate_chip() lead to logging errors but
this one (ignoring the alloc or ioremap failures that must not log).
Add the single missing dev_err() call.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
drivers/gpio/gpio-nomadik.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpio/gpio-nomadik.c b/drivers/gpio/gpio-nomadik.c
index f25f251f4757..4a7db282bad8 100644
--- a/drivers/gpio/gpio-nomadik.c
+++ b/drivers/gpio/gpio-nomadik.c
@@ -578,6 +578,7 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
clk = clk_get_optional(gpio_dev, NULL);
if (IS_ERR(clk)) {
ret = PTR_ERR(clk);
+ dev_err(dev, "failed getting clock: %d\n", ret);
goto err_put_pdev;
}
clk_prepare(clk);
--
2.55.0
^ permalink raw reply related
* [PATCH 3/5] gpio: nomadik: drop duplicate probe error line
From: Théo Lebrun @ 2026-07-01 16:57 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Philipp Zabel
Cc: Vladimir Kondratiev, Gregory CLEMENT, Benoît Monin,
Tawfik Bayouk, Thomas Petazzoni, linux-arm-kernel, linux-gpio,
linux-kernel, Théo Lebrun
In-Reply-To: <20260701-gpio-nomadik-silent-v1-0-644d10316cef@bootlin.com>
Now that all error codepaths in nmk_gpio_populate_chip() log an error,
drop dev_err() call that is made on nmk_gpio_populate_chip() failure.
Current boot log:
[ 0.544230] nomadik-gpio 1400000.gpio: failed getting reset control: -EPROBE_DEFER
[ 0.544274] nomadik-gpio 1400000.gpio: could not populate nmk chip struct
The second line is always redundant (or is logged when we shouldn't log,
like ioremap or alloc failures).
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
drivers/gpio/gpio-nomadik.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpio/gpio-nomadik.c b/drivers/gpio/gpio-nomadik.c
index 4a7db282bad8..eba095eeb3d6 100644
--- a/drivers/gpio/gpio-nomadik.c
+++ b/drivers/gpio/gpio-nomadik.c
@@ -651,10 +651,8 @@ static int nmk_gpio_probe(struct platform_device *pdev)
int ret;
nmk_chip = nmk_gpio_populate_chip(dev_fwnode(dev), pdev);
- if (IS_ERR(nmk_chip)) {
- dev_err(dev, "could not populate nmk chip struct\n");
+ if (IS_ERR(nmk_chip))
return PTR_ERR(nmk_chip);
- }
supports_sleepmode =
device_property_read_bool(dev, "st,supports-sleepmode");
--
2.55.0
^ permalink raw reply related
* [PATCH 4/5] gpio: nomadik: use dev_err_probe()
From: Théo Lebrun @ 2026-07-01 16:57 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Philipp Zabel
Cc: Vladimir Kondratiev, Gregory CLEMENT, Benoît Monin,
Tawfik Bayouk, Thomas Petazzoni, linux-arm-kernel, linux-gpio,
linux-kernel, Théo Lebrun
In-Reply-To: <20260701-gpio-nomadik-silent-v1-0-644d10316cef@bootlin.com>
gpio-nomadik depends on a few resources. In one case the reset is taking
time to show up leading to a boot log containing:
[ 0.544230] nomadik-gpio 1400000.gpio: failed getting reset control: -EPROBE_DEFER
Fix by replacing all dev_err() calls that might be made at probe with
dev_err_probe().
On nomadik platforms, the nmk_gpio_populate_chip() log calls might
attach their reasons to the gpio or pinctrl device depending on boot
order.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
drivers/gpio/gpio-nomadik.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/gpio/gpio-nomadik.c b/drivers/gpio/gpio-nomadik.c
index eba095eeb3d6..1ee46f59d708 100644
--- a/drivers/gpio/gpio-nomadik.c
+++ b/drivers/gpio/gpio-nomadik.c
@@ -520,21 +520,22 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
gpio_dev = bus_find_device_by_fwnode(&platform_bus_type, fwnode);
if (!gpio_dev) {
- dev_err(dev, "populate \"%pfwP\": device not found\n", fwnode);
- return ERR_PTR(-ENODEV);
+ ret = -ENODEV;
+ dev_err_probe(dev, ret, "populate \"%pfwP\": device not found\n", fwnode);
+ return ERR_PTR(ret);
}
gpio_pdev = to_platform_device(gpio_dev);
if (device_property_read_u32(gpio_dev, "gpio-bank", &id)) {
- dev_err(dev, "populate: gpio-bank property not found\n");
ret = -EINVAL;
+ dev_err_probe(dev, ret, "populate: gpio-bank property not found\n");
goto err_put_pdev;
}
#ifdef CONFIG_PINCTRL_NOMADIK
if (id >= ARRAY_SIZE(nmk_gpio_chips)) {
- dev_err(dev, "populate: invalid id: %u\n", id);
ret = -EINVAL;
+ dev_err_probe(dev, ret, "populate: invalid id: %u\n", id);
goto err_put_pdev;
}
/* Already populated? */
@@ -578,7 +579,7 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
clk = clk_get_optional(gpio_dev, NULL);
if (IS_ERR(clk)) {
ret = PTR_ERR(clk);
- dev_err(dev, "failed getting clock: %d\n", ret);
+ dev_err_probe(dev, ret, "failed getting clock\n");
goto err_put_pdev;
}
clk_prepare(clk);
@@ -587,8 +588,8 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
/* NOTE: do not use devm_ here! */
reset = reset_control_get_optional_shared(gpio_dev, NULL);
if (IS_ERR(reset)) {
- dev_err(dev, "failed getting reset control: %pe\n", reset);
ret = PTR_ERR(reset);
+ dev_err_probe(dev, ret, "failed getting reset control\n");
goto err_unprepare_clk;
}
@@ -599,7 +600,7 @@ struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
*/
ret = reset_control_deassert(reset);
if (ret) {
- dev_err(dev, "failed reset deassert: %d\n", ret);
+ dev_err_probe(dev, ret, "failed reset deassert\n");
goto err_put_reset;
}
@@ -695,7 +696,7 @@ static int nmk_gpio_probe(struct platform_device *pdev)
ret = devm_request_irq(dev, irq, nmk_gpio_irq_handler, IRQF_SHARED,
dev_name(dev), nmk_chip);
if (ret) {
- dev_err(dev, "failed requesting IRQ\n");
+ dev_err_probe(dev, ret, "failed requesting IRQ\n");
return ret;
}
--
2.55.0
^ permalink raw reply related
* [PATCH 5/5] gpio: nomadik: drop "chip registered" log on probe success
From: Théo Lebrun @ 2026-07-01 16:57 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Philipp Zabel
Cc: Vladimir Kondratiev, Gregory CLEMENT, Benoît Monin,
Tawfik Bayouk, Thomas Petazzoni, linux-arm-kernel, linux-gpio,
linux-kernel, Théo Lebrun
In-Reply-To: <20260701-gpio-nomadik-silent-v1-0-644d10316cef@bootlin.com>
Successful driver probing should be silent. Drop unconditional
dev_info() call that is done at nmk_gpio_probe() exit.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
drivers/gpio/gpio-nomadik.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpio/gpio-nomadik.c b/drivers/gpio/gpio-nomadik.c
index 1ee46f59d708..244331f468cc 100644
--- a/drivers/gpio/gpio-nomadik.c
+++ b/drivers/gpio/gpio-nomadik.c
@@ -712,8 +712,6 @@ static int nmk_gpio_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, nmk_chip);
- dev_info(dev, "chip registered\n");
-
return 0;
}
--
2.55.0
^ permalink raw reply related
* Re: [PATCH 1/8] dt-bindings: regulator: ROHM BD73800 regulators
From: Rob Herring @ 2026-07-01 19:25 UTC (permalink / raw)
To: Matti Vaittinen
Cc: Matti Vaittinen, Matti Vaittinen, Lee Jones, Krzysztof Kozlowski,
Conor Dooley, Liam Girdwood, Mark Brown, Michael Turquette,
Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski,
Alexandre Belloni, devicetree, linux-kernel, linux-clk,
linux-gpio, linux-rtc
In-Reply-To: <67b42b5363533f11c22a6421417c3345f9872aec.1782909323.git.mazziesaccount@gmail.com>
On Wed, Jul 01, 2026 at 03:41:11PM +0300, Matti Vaittinen wrote:
> From: Matti Vaittinen <mazziesaccount@gmail.com>
>
> Add bindings for the BUCKs and LDOs on ROHM BD73800. The PMIC state
> specific voltages can be set in same fashion as with a few other ROHM
> PMICs (for example with BD718[15,28,37,47,50,79]). Same properties are
> recycled :)
>
> The LDOs 1 and 4 can use different voltage ranges depending on the OTP
> configuration.
>
> Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
> ---
> .../regulator/rohm,bd73800-regulator.yaml | 119 ++++++++++++++++++
> 1 file changed, 119 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml
>
> diff --git a/Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml b/Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml
> new file mode 100644
> index 000000000000..c427a04098ec
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml
> + rohm,dvs-run-voltage:
> + description:
> + PMIC default "RUN" state voltage in uV. 0 means disabled. See the
> + explanation below for regulator specific details.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 3500000
[...]
> + rohm,dvs-run-voltage:
> + description:
> + Set the default output state at PMIC's "RUN" state.
> + 0 is disabled, 1 is enabled.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 1
Same property name with 2 different meanings. Not a good design pattern.
Also, if these properties are copied from other schemas, don't duplicate
them. Put them in a common schema and reference it here.
Rob
^ permalink raw reply
* [brgl:pinctrl-qcom/for-current] BUILD SUCCESS 437a8d2aa1aa442c4a176fdf4700a9b3bb0c8794
From: kernel test robot @ 2026-07-01 19:56 UTC (permalink / raw)
To: Bartosz Golaszewski; +Cc: linux-gpio
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git pinctrl-qcom/for-current
branch HEAD: 437a8d2aa1aa442c4a176fdf4700a9b3bb0c8794 pinctrl: qcom: sc8280xp: Add missing wakeup entries for GPIO143/151
elapsed time: 721m
configs tested: 371
configs skipped: 2
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
alpha allnoconfig gcc-16.1.0
alpha allyesconfig gcc-16.1.0
alpha defconfig gcc-16.1.0
arc allmodconfig clang-23
arc allmodconfig gcc-16.1.0
arc allnoconfig gcc-16.1.0
arc allyesconfig clang-23
arc allyesconfig gcc-16.1.0
arc defconfig gcc-16.1.0
arc haps_hs_defconfig gcc-16.1.0
arc randconfig-001 gcc-16.1.0
arc randconfig-001-20260701 gcc-12.5.0
arc randconfig-001-20260701 gcc-16.1.0
arc randconfig-001-20260702 gcc-8.5.0
arc randconfig-002 gcc-16.1.0
arc randconfig-002-20260701 gcc-12.5.0
arc randconfig-002-20260701 gcc-16.1.0
arc randconfig-002-20260702 gcc-8.5.0
arm allnoconfig clang-17
arm allnoconfig gcc-16.1.0
arm allyesconfig clang-23
arm allyesconfig gcc-16.1.0
arm defconfig gcc-16.1.0
arm randconfig-001 gcc-16.1.0
arm randconfig-001-20260701 gcc-12.5.0
arm randconfig-001-20260701 gcc-16.1.0
arm randconfig-001-20260702 gcc-8.5.0
arm randconfig-002 gcc-16.1.0
arm randconfig-002-20260701 gcc-12.5.0
arm randconfig-002-20260701 gcc-16.1.0
arm randconfig-002-20260702 gcc-8.5.0
arm randconfig-003 gcc-16.1.0
arm randconfig-003-20260701 gcc-12.5.0
arm randconfig-003-20260701 gcc-16.1.0
arm randconfig-003-20260702 gcc-8.5.0
arm randconfig-004 gcc-16.1.0
arm randconfig-004-20260701 gcc-12.5.0
arm randconfig-004-20260701 gcc-16.1.0
arm randconfig-004-20260702 gcc-8.5.0
arm64 allmodconfig clang-23
arm64 allnoconfig gcc-16.1.0
arm64 defconfig gcc-16.1.0
arm64 randconfig-001 gcc-12.5.0
arm64 randconfig-001-20260701 gcc-12.5.0
arm64 randconfig-001-20260702 gcc-15.2.0
arm64 randconfig-002 gcc-12.5.0
arm64 randconfig-002-20260701 gcc-12.5.0
arm64 randconfig-002-20260702 gcc-15.2.0
arm64 randconfig-003 gcc-12.5.0
arm64 randconfig-003-20260701 gcc-12.5.0
arm64 randconfig-003-20260702 gcc-15.2.0
arm64 randconfig-004 gcc-12.5.0
arm64 randconfig-004-20260701 gcc-12.5.0
arm64 randconfig-004-20260702 gcc-15.2.0
csky allmodconfig gcc-16.1.0
csky allnoconfig gcc-16.1.0
csky defconfig gcc-16.1.0
csky randconfig-001 gcc-12.5.0
csky randconfig-001-20260701 gcc-12.5.0
csky randconfig-001-20260702 gcc-15.2.0
csky randconfig-002 gcc-12.5.0
csky randconfig-002-20260701 gcc-12.5.0
csky randconfig-002-20260702 gcc-15.2.0
hexagon allmodconfig clang-23
hexagon allmodconfig gcc-16.1.0
hexagon allnoconfig clang-23
hexagon allnoconfig gcc-16.1.0
hexagon defconfig gcc-16.1.0
hexagon randconfig-001 gcc-11.5.0
hexagon randconfig-001-20260701 clang-23
hexagon randconfig-001-20260701 gcc-11.5.0
hexagon randconfig-001-20260702 clang-23
hexagon randconfig-002 gcc-11.5.0
hexagon randconfig-002-20260701 clang-23
hexagon randconfig-002-20260701 gcc-11.5.0
hexagon randconfig-002-20260702 clang-23
i386 allmodconfig clang-22
i386 allnoconfig gcc-14
i386 allnoconfig gcc-16.1.0
i386 allyesconfig clang-22
i386 buildonly-randconfig-001-20260701 clang-22
i386 buildonly-randconfig-001-20260702 clang-22
i386 buildonly-randconfig-002-20260701 clang-22
i386 buildonly-randconfig-002-20260702 clang-22
i386 buildonly-randconfig-003-20260701 clang-22
i386 buildonly-randconfig-003-20260702 clang-22
i386 buildonly-randconfig-004-20260701 clang-22
i386 buildonly-randconfig-004-20260702 clang-22
i386 buildonly-randconfig-005-20260701 clang-22
i386 buildonly-randconfig-005-20260702 clang-22
i386 buildonly-randconfig-006-20260701 clang-22
i386 buildonly-randconfig-006-20260702 clang-22
i386 defconfig gcc-16.1.0
i386 randconfig-001 clang-22
i386 randconfig-001-20260701 clang-22
i386 randconfig-001-20260702 gcc-14
i386 randconfig-002 clang-22
i386 randconfig-002-20260701 clang-22
i386 randconfig-002-20260702 gcc-14
i386 randconfig-003 clang-22
i386 randconfig-003-20260701 clang-22
i386 randconfig-003-20260702 gcc-14
i386 randconfig-004 clang-22
i386 randconfig-004-20260701 clang-22
i386 randconfig-004-20260702 gcc-14
i386 randconfig-005 clang-22
i386 randconfig-005-20260701 clang-22
i386 randconfig-005-20260702 gcc-14
i386 randconfig-006 clang-22
i386 randconfig-006-20260701 clang-22
i386 randconfig-006-20260702 gcc-14
i386 randconfig-007 clang-22
i386 randconfig-007-20260701 clang-22
i386 randconfig-007-20260702 gcc-14
i386 randconfig-011 gcc-14
i386 randconfig-011-20260701 gcc-14
i386 randconfig-011-20260702 clang-22
i386 randconfig-012 gcc-14
i386 randconfig-012-20260701 gcc-14
i386 randconfig-012-20260702 clang-22
i386 randconfig-013 gcc-14
i386 randconfig-013-20260701 gcc-14
i386 randconfig-013-20260702 clang-22
i386 randconfig-014 gcc-14
i386 randconfig-014-20260701 gcc-14
i386 randconfig-014-20260702 clang-22
i386 randconfig-015 gcc-14
i386 randconfig-015-20260701 gcc-14
i386 randconfig-015-20260702 clang-22
i386 randconfig-016 gcc-14
i386 randconfig-016-20260701 gcc-14
i386 randconfig-016-20260702 clang-22
i386 randconfig-017 gcc-14
i386 randconfig-017-20260701 gcc-14
i386 randconfig-017-20260702 clang-22
loongarch allmodconfig clang-19
loongarch allmodconfig clang-23
loongarch allnoconfig clang-20
loongarch allnoconfig gcc-16.1.0
loongarch defconfig clang-23
loongarch randconfig-001 gcc-11.5.0
loongarch randconfig-001-20260701 clang-23
loongarch randconfig-001-20260701 gcc-11.5.0
loongarch randconfig-001-20260702 clang-23
loongarch randconfig-002 gcc-11.5.0
loongarch randconfig-002-20260701 clang-23
loongarch randconfig-002-20260701 gcc-11.5.0
loongarch randconfig-002-20260702 clang-23
m68k allmodconfig gcc-16.1.0
m68k allnoconfig gcc-16.1.0
m68k allyesconfig clang-23
m68k allyesconfig gcc-16.1.0
m68k defconfig clang-23
m68k m5329evb_defconfig gcc-16.1.0
microblaze allnoconfig gcc-16.1.0
microblaze allyesconfig gcc-16.1.0
microblaze defconfig clang-23
mips allmodconfig gcc-16.1.0
mips allnoconfig gcc-16.1.0
mips allyesconfig gcc-16.1.0
mips omega2p_defconfig clang-17
nios2 allmodconfig clang-20
nios2 allmodconfig gcc-11.5.0
nios2 allnoconfig clang-23
nios2 allnoconfig gcc-11.5.0
nios2 defconfig clang-23
nios2 randconfig-001 gcc-11.5.0
nios2 randconfig-001-20260701 clang-23
nios2 randconfig-001-20260701 gcc-11.5.0
nios2 randconfig-001-20260702 clang-23
nios2 randconfig-002 gcc-11.5.0
nios2 randconfig-002-20260701 clang-23
nios2 randconfig-002-20260701 gcc-11.5.0
nios2 randconfig-002-20260702 clang-23
openrisc allmodconfig clang-20
openrisc allmodconfig gcc-16.1.0
openrisc allnoconfig clang-23
openrisc allnoconfig gcc-16.1.0
openrisc defconfig gcc-16.1.0
parisc allmodconfig gcc-16.1.0
parisc allnoconfig clang-23
parisc allnoconfig gcc-16.1.0
parisc allyesconfig clang-17
parisc allyesconfig gcc-16.1.0
parisc defconfig gcc-16.1.0
parisc randconfig-001 clang-17
parisc randconfig-001-20260701 clang-17
parisc randconfig-001-20260702 clang-17
parisc randconfig-002 clang-17
parisc randconfig-002-20260701 clang-17
parisc randconfig-002-20260702 clang-17
parisc64 defconfig clang-23
powerpc allmodconfig gcc-16.1.0
powerpc allnoconfig clang-23
powerpc allnoconfig gcc-16.1.0
powerpc mpc512x_defconfig clang-23
powerpc randconfig-001 clang-17
powerpc randconfig-001-20260701 clang-17
powerpc randconfig-001-20260702 clang-17
powerpc randconfig-002 clang-17
powerpc randconfig-002-20260701 clang-17
powerpc randconfig-002-20260702 clang-17
powerpc redwood_defconfig clang-23
powerpc64 randconfig-001 clang-17
powerpc64 randconfig-001-20260701 clang-17
powerpc64 randconfig-001-20260702 clang-17
powerpc64 randconfig-002 clang-17
powerpc64 randconfig-002-20260701 clang-17
powerpc64 randconfig-002-20260702 clang-17
riscv allmodconfig clang-23
riscv allnoconfig clang-23
riscv allnoconfig gcc-16.1.0
riscv allyesconfig clang-23
riscv defconfig gcc-16.1.0
riscv randconfig-001-20260701 clang-23
riscv randconfig-001-20260702 gcc-12.5.0
riscv randconfig-002-20260701 clang-23
riscv randconfig-002-20260702 gcc-12.5.0
s390 allmodconfig clang-17
s390 allmodconfig clang-23
s390 allnoconfig clang-23
s390 allyesconfig gcc-16.1.0
s390 defconfig gcc-16.1.0
s390 randconfig-001-20260701 clang-23
s390 randconfig-001-20260702 gcc-12.5.0
s390 randconfig-002-20260701 clang-23
s390 randconfig-002-20260702 gcc-12.5.0
sh allmodconfig gcc-16.1.0
sh allnoconfig clang-23
sh allnoconfig gcc-16.1.0
sh allyesconfig clang-17
sh allyesconfig gcc-16.1.0
sh defconfig gcc-14
sh randconfig-001-20260701 clang-23
sh randconfig-001-20260702 gcc-12.5.0
sh randconfig-002-20260701 clang-23
sh randconfig-002-20260702 gcc-12.5.0
sh se7206_defconfig gcc-16.1.0
sh se7750_defconfig gcc-16.1.0
sparc allnoconfig clang-23
sparc allnoconfig gcc-16.1.0
sparc defconfig gcc-16.1.0
sparc randconfig-001 gcc-13.4.0
sparc randconfig-001-20260701 gcc-13.4.0
sparc randconfig-001-20260702 gcc-16.1.0
sparc randconfig-002 gcc-13.4.0
sparc randconfig-002-20260701 gcc-13.4.0
sparc randconfig-002-20260702 gcc-16.1.0
sparc64 allmodconfig clang-20
sparc64 defconfig gcc-14
sparc64 randconfig-001 gcc-13.4.0
sparc64 randconfig-001-20260701 gcc-13.4.0
sparc64 randconfig-001-20260702 gcc-16.1.0
sparc64 randconfig-002 gcc-13.4.0
sparc64 randconfig-002-20260701 gcc-13.4.0
sparc64 randconfig-002-20260702 gcc-16.1.0
um allmodconfig clang-17
um allnoconfig clang-17
um allnoconfig clang-23
um allyesconfig gcc-14
um allyesconfig gcc-16.1.0
um defconfig gcc-14
um i386_defconfig gcc-14
um randconfig-001 gcc-13.4.0
um randconfig-001-20260701 gcc-13.4.0
um randconfig-001-20260702 gcc-16.1.0
um randconfig-002 gcc-13.4.0
um randconfig-002-20260701 gcc-13.4.0
um randconfig-002-20260702 gcc-16.1.0
um x86_64_defconfig gcc-14
x86_64 allmodconfig clang-22
x86_64 allnoconfig clang-22
x86_64 allnoconfig clang-23
x86_64 allyesconfig clang-22
x86_64 buildonly-randconfig-001 clang-22
x86_64 buildonly-randconfig-001-20260701 clang-22
x86_64 buildonly-randconfig-001-20260702 clang-22
x86_64 buildonly-randconfig-002 clang-22
x86_64 buildonly-randconfig-002-20260701 clang-22
x86_64 buildonly-randconfig-002-20260702 clang-22
x86_64 buildonly-randconfig-003 clang-22
x86_64 buildonly-randconfig-003-20260701 clang-22
x86_64 buildonly-randconfig-003-20260702 clang-22
x86_64 buildonly-randconfig-004 clang-22
x86_64 buildonly-randconfig-004-20260701 clang-22
x86_64 buildonly-randconfig-004-20260702 clang-22
x86_64 buildonly-randconfig-005 clang-22
x86_64 buildonly-randconfig-005-20260701 clang-22
x86_64 buildonly-randconfig-005-20260702 clang-22
x86_64 buildonly-randconfig-006 clang-22
x86_64 buildonly-randconfig-006-20260701 clang-22
x86_64 buildonly-randconfig-006-20260702 clang-22
x86_64 defconfig gcc-14
x86_64 kexec clang-22
x86_64 randconfig-001 clang-22
x86_64 randconfig-001-20260701 clang-22
x86_64 randconfig-001-20260701 gcc-14
x86_64 randconfig-001-20260702 clang-22
x86_64 randconfig-002 clang-22
x86_64 randconfig-002-20260701 clang-22
x86_64 randconfig-002-20260701 gcc-14
x86_64 randconfig-002-20260702 clang-22
x86_64 randconfig-003 clang-22
x86_64 randconfig-003-20260701 clang-22
x86_64 randconfig-003-20260701 gcc-14
x86_64 randconfig-003-20260702 clang-22
x86_64 randconfig-004 clang-22
x86_64 randconfig-004-20260701 clang-22
x86_64 randconfig-004-20260701 gcc-14
x86_64 randconfig-004-20260702 clang-22
x86_64 randconfig-005 clang-22
x86_64 randconfig-005-20260701 clang-22
x86_64 randconfig-005-20260701 gcc-14
x86_64 randconfig-005-20260702 clang-22
x86_64 randconfig-006 clang-22
x86_64 randconfig-006-20260701 clang-22
x86_64 randconfig-006-20260701 gcc-14
x86_64 randconfig-006-20260702 clang-22
x86_64 randconfig-011 gcc-14
x86_64 randconfig-011-20260701 gcc-14
x86_64 randconfig-011-20260702 clang-22
x86_64 randconfig-012 gcc-14
x86_64 randconfig-012-20260701 gcc-14
x86_64 randconfig-012-20260702 clang-22
x86_64 randconfig-013 gcc-14
x86_64 randconfig-013-20260701 gcc-14
x86_64 randconfig-013-20260702 clang-22
x86_64 randconfig-014 gcc-14
x86_64 randconfig-014-20260701 gcc-14
x86_64 randconfig-014-20260702 clang-22
x86_64 randconfig-015 gcc-14
x86_64 randconfig-015-20260701 gcc-14
x86_64 randconfig-015-20260702 clang-22
x86_64 randconfig-016 gcc-14
x86_64 randconfig-016-20260701 gcc-14
x86_64 randconfig-016-20260702 clang-22
x86_64 randconfig-071 gcc-14
x86_64 randconfig-071-20260701 gcc-14
x86_64 randconfig-071-20260702 clang-22
x86_64 randconfig-072 gcc-14
x86_64 randconfig-072-20260701 gcc-14
x86_64 randconfig-072-20260702 clang-22
x86_64 randconfig-073 gcc-14
x86_64 randconfig-073-20260701 gcc-14
x86_64 randconfig-073-20260702 clang-22
x86_64 randconfig-074 gcc-14
x86_64 randconfig-074-20260701 gcc-14
x86_64 randconfig-074-20260702 clang-22
x86_64 randconfig-075 gcc-14
x86_64 randconfig-075-20260701 gcc-14
x86_64 randconfig-075-20260702 clang-22
x86_64 randconfig-076 gcc-14
x86_64 randconfig-076-20260701 gcc-14
x86_64 randconfig-076-20260702 clang-22
x86_64 rhel-9.4 clang-22
x86_64 rhel-9.4-bpf gcc-14
x86_64 rhel-9.4-func clang-22
x86_64 rhel-9.4-kselftests clang-22
x86_64 rhel-9.4-kunit gcc-14
x86_64 rhel-9.4-ltp gcc-14
x86_64 rhel-9.4-rust clang-22
xtensa allnoconfig clang-23
xtensa allnoconfig gcc-16.1.0
xtensa allyesconfig clang-20
xtensa allyesconfig gcc-16.1.0
xtensa randconfig-001 gcc-13.4.0
xtensa randconfig-001-20260701 gcc-13.4.0
xtensa randconfig-001-20260702 gcc-16.1.0
xtensa randconfig-002 gcc-13.4.0
xtensa randconfig-002-20260701 gcc-13.4.0
xtensa randconfig-002-20260702 gcc-16.1.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* Re: [PATCH v2 0/5] scmi: Log client subsystem entity counts
From: Alex Tran @ 2026-07-01 20:15 UTC (permalink / raw)
To: Sudeep Holla
Cc: Jonathan Cameron, Jyoti Bhayana, David Lechner, Nuno Sá,
Andy Shevchenko, Cristian Marussi, Linus Walleij,
Rafael J. Wysocki, Philipp Zabel, Viresh Kumar, Guenter Roeck,
linux-iio, linux-kernel, arm-scmi, linux-arm-kernel, linux-gpio,
linux-pm, linux-hwmon
In-Reply-To: <20260515-strong-lionfish-of-effort-f74c7a@sudeepholla>
On 5/15/2026 1:29 AM, Sudeep Holla wrote:
> On Thu, May 14, 2026 at 02:23:56PM -0700, Alex Tran wrote:
>> On 5/14/2026 8:44 AM, Jonathan Cameron wrote:
>>
>>> On Wed, 13 May 2026 10:16:53 -0700
>>> Alex Tran <alex.tran@oss.qualcomm.com> wrote:
>>>
>>>> SCMI client drivers do not consistently log the number of supported
>>>> entities discovered from firmware. This information is useful during
>>>> debugging because it shows which domains or resources were exposed by
>>>> firmware during probe.
>>>>
>>>> Add logging of the number of supported entities to the SCMI cpufreq,
>>>> pinctrl, reset, hwmon, and powercap client drivers after a successful
>>>> probe. This aligns these drivers with the existing logging in the SCMI
>>>> power and performance domain drivers.
>>>>
>>>> Signed-off-by: Alex Tran <alex.tran@oss.qualcomm.com>
>>> Hi Alex,
>>>
>>> Just curious but why +CC linux-iio and IIO folk?
>>>
>>> May be you had a false suggestion to add them from get maintainers.
>>> If so be sure to check it's suggestions make sense!
>>>
>>> Not to worry - we can all hit the delete button ;)
>>>
>>> Jonathan
>> Hi Jonathan,
>>
>> Originally, there was another patch in this series to add the same
>> functionality to scmi_iio probe but it was dropped. Apparently running b4
>> prep --auto-to-cc does not prune stale entries from the cover letter. Will
>> manually remove all entries and rerun the command in the future.
>>
> I guessed so, but why was it dropped ? I don't agree to adding them elsewhere
> just curious about why it was dropped in this case.
>
We could not determine whether to log the sensor count provided by SCMI or the number of sensors that were registered in probe since the driver appears to only support 3-axis accel and gyro sensors, skipping the rest.
^ permalink raw reply
* [brgl:gpio/for-current] BUILD SUCCESS 9777530157e7b82fd994327ff878c4245dadc931
From: kernel test robot @ 2026-07-01 20:56 UTC (permalink / raw)
To: Bartosz Golaszewski; +Cc: linux-gpio
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git gpio/for-current
branch HEAD: 9777530157e7b82fd994327ff878c4245dadc931 pinctrl: meson: restore non-sleeping GPIO access
elapsed time: 782m
configs tested: 288
configs skipped: 4
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
alpha allnoconfig gcc-16.1.0
alpha allyesconfig gcc-16.1.0
alpha defconfig gcc-16.1.0
arc allmodconfig clang-23
arc allmodconfig gcc-16.1.0
arc allnoconfig gcc-16.1.0
arc allyesconfig clang-23
arc allyesconfig gcc-16.1.0
arc defconfig gcc-16.1.0
arc haps_hs_defconfig gcc-16.1.0
arc randconfig-001 gcc-16.1.0
arc randconfig-001-20260701 gcc-12.5.0
arc randconfig-001-20260701 gcc-16.1.0
arc randconfig-002 gcc-16.1.0
arc randconfig-002-20260701 gcc-12.5.0
arc randconfig-002-20260701 gcc-16.1.0
arm allnoconfig clang-17
arm allnoconfig gcc-16.1.0
arm allyesconfig clang-23
arm allyesconfig gcc-16.1.0
arm defconfig gcc-16.1.0
arm randconfig-001 gcc-16.1.0
arm randconfig-001-20260701 gcc-12.5.0
arm randconfig-001-20260701 gcc-16.1.0
arm randconfig-002 gcc-16.1.0
arm randconfig-002-20260701 gcc-12.5.0
arm randconfig-002-20260701 gcc-16.1.0
arm randconfig-003 gcc-16.1.0
arm randconfig-003-20260701 gcc-12.5.0
arm randconfig-003-20260701 gcc-16.1.0
arm randconfig-004 gcc-16.1.0
arm randconfig-004-20260701 gcc-12.5.0
arm randconfig-004-20260701 gcc-16.1.0
arm64 allmodconfig clang-23
arm64 allnoconfig gcc-16.1.0
arm64 defconfig gcc-16.1.0
arm64 randconfig-001 gcc-12.5.0
arm64 randconfig-001-20260701 gcc-12.5.0
arm64 randconfig-002 gcc-12.5.0
arm64 randconfig-002-20260701 gcc-12.5.0
arm64 randconfig-003 gcc-12.5.0
arm64 randconfig-003-20260701 gcc-12.5.0
arm64 randconfig-004 gcc-12.5.0
arm64 randconfig-004-20260701 gcc-12.5.0
csky allmodconfig gcc-16.1.0
csky allnoconfig gcc-16.1.0
csky defconfig gcc-16.1.0
csky randconfig-001 gcc-12.5.0
csky randconfig-001-20260701 gcc-12.5.0
csky randconfig-002 gcc-12.5.0
csky randconfig-002-20260701 gcc-12.5.0
hexagon allmodconfig clang-23
hexagon allmodconfig gcc-16.1.0
hexagon allnoconfig clang-23
hexagon allnoconfig gcc-16.1.0
hexagon defconfig gcc-16.1.0
hexagon randconfig-001 gcc-11.5.0
hexagon randconfig-001-20260701 clang-23
hexagon randconfig-001-20260701 gcc-11.5.0
hexagon randconfig-002 gcc-11.5.0
hexagon randconfig-002-20260701 clang-23
hexagon randconfig-002-20260701 gcc-11.5.0
i386 allmodconfig clang-22
i386 allnoconfig gcc-14
i386 allnoconfig gcc-16.1.0
i386 allyesconfig clang-22
i386 buildonly-randconfig-001-20260701 clang-22
i386 buildonly-randconfig-002-20260701 clang-22
i386 buildonly-randconfig-003-20260701 clang-22
i386 buildonly-randconfig-004-20260701 clang-22
i386 buildonly-randconfig-005-20260701 clang-22
i386 buildonly-randconfig-006-20260701 clang-22
i386 defconfig gcc-16.1.0
i386 randconfig-001 clang-22
i386 randconfig-001-20260701 clang-22
i386 randconfig-002 clang-22
i386 randconfig-002-20260701 clang-22
i386 randconfig-003 clang-22
i386 randconfig-003-20260701 clang-22
i386 randconfig-004 clang-22
i386 randconfig-004-20260701 clang-22
i386 randconfig-005 clang-22
i386 randconfig-005-20260701 clang-22
i386 randconfig-006 clang-22
i386 randconfig-006-20260701 clang-22
i386 randconfig-007 clang-22
i386 randconfig-007-20260701 clang-22
i386 randconfig-011 gcc-14
i386 randconfig-011-20260701 gcc-14
i386 randconfig-012 gcc-14
i386 randconfig-012-20260701 gcc-14
i386 randconfig-013 gcc-14
i386 randconfig-013-20260701 gcc-14
i386 randconfig-014 gcc-14
i386 randconfig-014-20260701 gcc-14
i386 randconfig-015 gcc-14
i386 randconfig-015-20260701 gcc-14
i386 randconfig-016 gcc-14
i386 randconfig-016-20260701 gcc-14
i386 randconfig-017 gcc-14
i386 randconfig-017-20260701 gcc-14
loongarch allmodconfig clang-19
loongarch allmodconfig clang-23
loongarch allnoconfig clang-20
loongarch allnoconfig gcc-16.1.0
loongarch defconfig clang-23
loongarch randconfig-001 gcc-11.5.0
loongarch randconfig-001-20260701 clang-23
loongarch randconfig-001-20260701 gcc-11.5.0
loongarch randconfig-002 gcc-11.5.0
loongarch randconfig-002-20260701 clang-23
loongarch randconfig-002-20260701 gcc-11.5.0
m68k allmodconfig gcc-16.1.0
m68k allnoconfig gcc-16.1.0
m68k allyesconfig clang-23
m68k allyesconfig gcc-16.1.0
m68k defconfig clang-23
microblaze allnoconfig gcc-16.1.0
microblaze allyesconfig gcc-16.1.0
microblaze defconfig clang-23
mips allmodconfig gcc-16.1.0
mips allnoconfig gcc-16.1.0
mips allyesconfig gcc-16.1.0
nios2 allmodconfig clang-20
nios2 allmodconfig gcc-11.5.0
nios2 allnoconfig clang-23
nios2 allnoconfig gcc-11.5.0
nios2 defconfig clang-23
nios2 randconfig-001 gcc-11.5.0
nios2 randconfig-001-20260701 clang-23
nios2 randconfig-001-20260701 gcc-11.5.0
nios2 randconfig-002 gcc-11.5.0
nios2 randconfig-002-20260701 clang-23
nios2 randconfig-002-20260701 gcc-11.5.0
openrisc allmodconfig clang-20
openrisc allmodconfig gcc-16.1.0
openrisc allnoconfig clang-23
openrisc allnoconfig gcc-16.1.0
openrisc defconfig gcc-16.1.0
parisc allmodconfig gcc-16.1.0
parisc allnoconfig clang-23
parisc allnoconfig gcc-16.1.0
parisc allyesconfig clang-17
parisc allyesconfig gcc-16.1.0
parisc defconfig gcc-16.1.0
parisc randconfig-001-20260701 clang-17
parisc randconfig-002-20260701 clang-17
parisc64 defconfig clang-23
powerpc allmodconfig gcc-16.1.0
powerpc allnoconfig clang-23
powerpc allnoconfig gcc-16.1.0
powerpc mpc512x_defconfig clang-23
powerpc randconfig-001-20260701 clang-17
powerpc randconfig-002-20260701 clang-17
powerpc redwood_defconfig clang-23
powerpc64 randconfig-001-20260701 clang-17
powerpc64 randconfig-002-20260701 clang-17
riscv allmodconfig clang-23
riscv allnoconfig clang-23
riscv allnoconfig gcc-16.1.0
riscv allyesconfig clang-23
riscv defconfig gcc-16.1.0
riscv randconfig-001-20260701 clang-23
riscv randconfig-002-20260701 clang-23
s390 allmodconfig clang-17
s390 allmodconfig clang-23
s390 allnoconfig clang-23
s390 allyesconfig gcc-16.1.0
s390 defconfig gcc-16.1.0
s390 randconfig-001-20260701 clang-23
s390 randconfig-002-20260701 clang-23
sh allmodconfig gcc-16.1.0
sh allnoconfig clang-23
sh allnoconfig gcc-16.1.0
sh allyesconfig clang-17
sh allyesconfig gcc-16.1.0
sh defconfig gcc-14
sh randconfig-001-20260701 clang-23
sh randconfig-002-20260701 clang-23
sh se7206_defconfig gcc-16.1.0
sh se7619_defconfig gcc-16.1.0
sh se7750_defconfig gcc-16.1.0
sparc allnoconfig clang-23
sparc allnoconfig gcc-16.1.0
sparc defconfig gcc-16.1.0
sparc randconfig-001 gcc-13.4.0
sparc randconfig-001-20260701 gcc-13.4.0
sparc randconfig-002 gcc-13.4.0
sparc randconfig-002-20260701 gcc-13.4.0
sparc64 allmodconfig clang-20
sparc64 defconfig gcc-14
sparc64 randconfig-001 gcc-13.4.0
sparc64 randconfig-001-20260701 gcc-13.4.0
sparc64 randconfig-002 gcc-13.4.0
sparc64 randconfig-002-20260701 gcc-13.4.0
um allmodconfig clang-17
um allnoconfig clang-17
um allnoconfig clang-23
um allyesconfig gcc-14
um allyesconfig gcc-16.1.0
um defconfig gcc-14
um i386_defconfig gcc-14
um randconfig-001 gcc-13.4.0
um randconfig-001-20260701 gcc-13.4.0
um randconfig-002 gcc-13.4.0
um randconfig-002-20260701 gcc-13.4.0
um x86_64_defconfig gcc-14
x86_64 allmodconfig clang-22
x86_64 allnoconfig clang-22
x86_64 allnoconfig clang-23
x86_64 allyesconfig clang-22
x86_64 buildonly-randconfig-001 clang-22
x86_64 buildonly-randconfig-001-20260701 clang-22
x86_64 buildonly-randconfig-001-20260702 clang-22
x86_64 buildonly-randconfig-002 clang-22
x86_64 buildonly-randconfig-002-20260701 clang-22
x86_64 buildonly-randconfig-002-20260702 clang-22
x86_64 buildonly-randconfig-003 clang-22
x86_64 buildonly-randconfig-003-20260701 clang-22
x86_64 buildonly-randconfig-003-20260702 clang-22
x86_64 buildonly-randconfig-004 clang-22
x86_64 buildonly-randconfig-004-20260701 clang-22
x86_64 buildonly-randconfig-004-20260702 clang-22
x86_64 buildonly-randconfig-005 clang-22
x86_64 buildonly-randconfig-005-20260701 clang-22
x86_64 buildonly-randconfig-005-20260702 clang-22
x86_64 buildonly-randconfig-006 clang-22
x86_64 buildonly-randconfig-006-20260701 clang-22
x86_64 buildonly-randconfig-006-20260702 clang-22
x86_64 defconfig gcc-14
x86_64 kexec clang-22
x86_64 randconfig-001 clang-22
x86_64 randconfig-001-20260701 clang-22
x86_64 randconfig-002 clang-22
x86_64 randconfig-002-20260701 clang-22
x86_64 randconfig-003 clang-22
x86_64 randconfig-003-20260701 clang-22
x86_64 randconfig-004 clang-22
x86_64 randconfig-004-20260701 clang-22
x86_64 randconfig-005 clang-22
x86_64 randconfig-005-20260701 clang-22
x86_64 randconfig-006 clang-22
x86_64 randconfig-006-20260701 clang-22
x86_64 randconfig-011 gcc-14
x86_64 randconfig-011-20260701 gcc-14
x86_64 randconfig-011-20260702 clang-22
x86_64 randconfig-012 gcc-14
x86_64 randconfig-012-20260701 gcc-14
x86_64 randconfig-012-20260702 clang-22
x86_64 randconfig-013 gcc-14
x86_64 randconfig-013-20260701 gcc-14
x86_64 randconfig-013-20260702 clang-22
x86_64 randconfig-014 gcc-14
x86_64 randconfig-014-20260701 gcc-14
x86_64 randconfig-014-20260702 clang-22
x86_64 randconfig-015 gcc-14
x86_64 randconfig-015-20260701 gcc-14
x86_64 randconfig-015-20260702 clang-22
x86_64 randconfig-016 gcc-14
x86_64 randconfig-016-20260701 gcc-14
x86_64 randconfig-016-20260702 clang-22
x86_64 randconfig-071 gcc-14
x86_64 randconfig-071-20260701 gcc-14
x86_64 randconfig-072 gcc-14
x86_64 randconfig-072-20260701 gcc-14
x86_64 randconfig-073 gcc-14
x86_64 randconfig-073-20260701 gcc-14
x86_64 randconfig-074 gcc-14
x86_64 randconfig-074-20260701 gcc-14
x86_64 randconfig-075 gcc-14
x86_64 randconfig-075-20260701 gcc-14
x86_64 randconfig-076 gcc-14
x86_64 randconfig-076-20260701 gcc-14
x86_64 rhel-9.4 clang-22
x86_64 rhel-9.4-bpf gcc-14
x86_64 rhel-9.4-func clang-22
x86_64 rhel-9.4-kselftests clang-22
x86_64 rhel-9.4-kunit gcc-14
x86_64 rhel-9.4-ltp gcc-14
x86_64 rhel-9.4-rust clang-22
xtensa allnoconfig clang-23
xtensa allnoconfig gcc-16.1.0
xtensa allyesconfig clang-20
xtensa allyesconfig gcc-16.1.0
xtensa randconfig-001 gcc-13.4.0
xtensa randconfig-001-20260701 gcc-13.4.0
xtensa randconfig-002 gcc-13.4.0
xtensa randconfig-002-20260701 gcc-13.4.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* [brgl:pinctrl-qcom/for-next] BUILD SUCCESS 251b53103a2e5770658ae106c490cdd2b7512c3a
From: kernel test robot @ 2026-07-01 21:19 UTC (permalink / raw)
To: Bartosz Golaszewski; +Cc: linux-gpio
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git pinctrl-qcom/for-next
branch HEAD: 251b53103a2e5770658ae106c490cdd2b7512c3a pinctrl: qcom: Add the tlmm driver for Maili platform
elapsed time: 804m
configs tested: 373
configs skipped: 5
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
alpha allnoconfig gcc-16.1.0
alpha allyesconfig gcc-16.1.0
alpha defconfig gcc-16.1.0
arc allmodconfig clang-23
arc allmodconfig gcc-16.1.0
arc allnoconfig gcc-16.1.0
arc allyesconfig clang-23
arc allyesconfig gcc-16.1.0
arc defconfig gcc-16.1.0
arc haps_hs_defconfig gcc-16.1.0
arc randconfig-001 gcc-16.1.0
arc randconfig-001-20260701 gcc-12.5.0
arc randconfig-001-20260701 gcc-16.1.0
arc randconfig-001-20260702 gcc-8.5.0
arc randconfig-002 gcc-16.1.0
arc randconfig-002-20260701 gcc-12.5.0
arc randconfig-002-20260701 gcc-16.1.0
arc randconfig-002-20260702 gcc-8.5.0
arm allnoconfig clang-17
arm allnoconfig gcc-16.1.0
arm allyesconfig clang-23
arm allyesconfig gcc-16.1.0
arm defconfig gcc-16.1.0
arm randconfig-001 gcc-16.1.0
arm randconfig-001-20260701 gcc-12.5.0
arm randconfig-001-20260701 gcc-16.1.0
arm randconfig-001-20260702 gcc-8.5.0
arm randconfig-002 gcc-16.1.0
arm randconfig-002-20260701 gcc-12.5.0
arm randconfig-002-20260701 gcc-16.1.0
arm randconfig-002-20260702 gcc-8.5.0
arm randconfig-003 gcc-16.1.0
arm randconfig-003-20260701 gcc-12.5.0
arm randconfig-003-20260701 gcc-16.1.0
arm randconfig-003-20260702 gcc-8.5.0
arm randconfig-004 gcc-16.1.0
arm randconfig-004-20260701 gcc-12.5.0
arm randconfig-004-20260701 gcc-16.1.0
arm randconfig-004-20260702 gcc-8.5.0
arm64 allmodconfig clang-23
arm64 allnoconfig gcc-16.1.0
arm64 defconfig gcc-16.1.0
arm64 randconfig-001 gcc-12.5.0
arm64 randconfig-001-20260701 gcc-12.5.0
arm64 randconfig-001-20260702 gcc-15.2.0
arm64 randconfig-002 gcc-12.5.0
arm64 randconfig-002-20260701 gcc-12.5.0
arm64 randconfig-002-20260702 gcc-15.2.0
arm64 randconfig-003 gcc-12.5.0
arm64 randconfig-003-20260701 gcc-12.5.0
arm64 randconfig-003-20260702 gcc-15.2.0
arm64 randconfig-004 gcc-12.5.0
arm64 randconfig-004-20260701 gcc-12.5.0
arm64 randconfig-004-20260702 gcc-15.2.0
csky allmodconfig gcc-16.1.0
csky allnoconfig gcc-16.1.0
csky defconfig gcc-16.1.0
csky randconfig-001 gcc-12.5.0
csky randconfig-001-20260701 gcc-12.5.0
csky randconfig-001-20260702 gcc-15.2.0
csky randconfig-002 gcc-12.5.0
csky randconfig-002-20260701 gcc-12.5.0
csky randconfig-002-20260702 gcc-15.2.0
hexagon allmodconfig gcc-16.1.0
hexagon allnoconfig clang-23
hexagon allnoconfig gcc-16.1.0
hexagon defconfig gcc-16.1.0
hexagon randconfig-001 gcc-11.5.0
hexagon randconfig-001-20260701 clang-23
hexagon randconfig-001-20260701 gcc-11.5.0
hexagon randconfig-001-20260702 clang-23
hexagon randconfig-002 gcc-11.5.0
hexagon randconfig-002-20260701 clang-23
hexagon randconfig-002-20260701 gcc-11.5.0
hexagon randconfig-002-20260702 clang-23
i386 allmodconfig clang-22
i386 allmodconfig gcc-14
i386 allnoconfig gcc-14
i386 allnoconfig gcc-16.1.0
i386 allyesconfig clang-22
i386 allyesconfig gcc-14
i386 buildonly-randconfig-001-20260701 clang-22
i386 buildonly-randconfig-001-20260702 clang-22
i386 buildonly-randconfig-002-20260701 clang-22
i386 buildonly-randconfig-002-20260702 clang-22
i386 buildonly-randconfig-003-20260701 clang-22
i386 buildonly-randconfig-003-20260702 clang-22
i386 buildonly-randconfig-004-20260701 clang-22
i386 buildonly-randconfig-004-20260702 clang-22
i386 buildonly-randconfig-005-20260701 clang-22
i386 buildonly-randconfig-005-20260702 clang-22
i386 buildonly-randconfig-006-20260701 clang-22
i386 buildonly-randconfig-006-20260702 clang-22
i386 defconfig gcc-16.1.0
i386 randconfig-001 clang-22
i386 randconfig-001-20260701 clang-22
i386 randconfig-001-20260702 gcc-14
i386 randconfig-002 clang-22
i386 randconfig-002-20260701 clang-22
i386 randconfig-002-20260702 gcc-14
i386 randconfig-003 clang-22
i386 randconfig-003-20260701 clang-22
i386 randconfig-003-20260702 gcc-14
i386 randconfig-004 clang-22
i386 randconfig-004-20260701 clang-22
i386 randconfig-004-20260702 gcc-14
i386 randconfig-005 clang-22
i386 randconfig-005-20260701 clang-22
i386 randconfig-005-20260702 gcc-14
i386 randconfig-006 clang-22
i386 randconfig-006-20260701 clang-22
i386 randconfig-006-20260702 gcc-14
i386 randconfig-007 clang-22
i386 randconfig-007-20260701 clang-22
i386 randconfig-007-20260702 gcc-14
i386 randconfig-011 gcc-14
i386 randconfig-011-20260701 gcc-14
i386 randconfig-011-20260702 clang-22
i386 randconfig-012 gcc-14
i386 randconfig-012-20260701 gcc-14
i386 randconfig-012-20260702 clang-22
i386 randconfig-013 gcc-14
i386 randconfig-013-20260701 gcc-14
i386 randconfig-013-20260702 clang-22
i386 randconfig-014 gcc-14
i386 randconfig-014-20260701 gcc-14
i386 randconfig-014-20260702 clang-22
i386 randconfig-015 gcc-14
i386 randconfig-015-20260701 gcc-14
i386 randconfig-015-20260702 clang-22
i386 randconfig-016 gcc-14
i386 randconfig-016-20260701 gcc-14
i386 randconfig-016-20260702 clang-22
i386 randconfig-017 gcc-14
i386 randconfig-017-20260701 gcc-14
i386 randconfig-017-20260702 clang-22
loongarch allmodconfig clang-23
loongarch allnoconfig clang-20
loongarch allnoconfig gcc-16.1.0
loongarch defconfig clang-23
loongarch randconfig-001 gcc-11.5.0
loongarch randconfig-001-20260701 clang-23
loongarch randconfig-001-20260701 gcc-11.5.0
loongarch randconfig-001-20260702 clang-23
loongarch randconfig-002 gcc-11.5.0
loongarch randconfig-002-20260701 clang-23
loongarch randconfig-002-20260701 gcc-11.5.0
loongarch randconfig-002-20260702 clang-23
m68k allmodconfig gcc-16.1.0
m68k allnoconfig gcc-16.1.0
m68k allyesconfig clang-23
m68k allyesconfig gcc-16.1.0
m68k defconfig clang-23
m68k m5329evb_defconfig gcc-16.1.0
microblaze allnoconfig gcc-16.1.0
microblaze allyesconfig gcc-16.1.0
microblaze defconfig clang-23
mips allmodconfig gcc-16.1.0
mips allnoconfig gcc-16.1.0
mips allyesconfig gcc-16.1.0
mips omega2p_defconfig clang-17
nios2 allmodconfig clang-20
nios2 allmodconfig gcc-11.5.0
nios2 allnoconfig clang-23
nios2 allnoconfig gcc-11.5.0
nios2 defconfig clang-23
nios2 randconfig-001 gcc-11.5.0
nios2 randconfig-001-20260701 clang-23
nios2 randconfig-001-20260701 gcc-11.5.0
nios2 randconfig-001-20260702 clang-23
nios2 randconfig-002 gcc-11.5.0
nios2 randconfig-002-20260701 clang-23
nios2 randconfig-002-20260701 gcc-11.5.0
nios2 randconfig-002-20260702 clang-23
openrisc allmodconfig clang-20
openrisc allmodconfig gcc-16.1.0
openrisc allnoconfig clang-23
openrisc allnoconfig gcc-16.1.0
openrisc defconfig gcc-16.1.0
parisc allmodconfig gcc-16.1.0
parisc allnoconfig clang-23
parisc allnoconfig gcc-16.1.0
parisc allyesconfig clang-17
parisc allyesconfig gcc-16.1.0
parisc defconfig gcc-16.1.0
parisc randconfig-001 clang-17
parisc randconfig-001-20260701 clang-17
parisc randconfig-001-20260702 clang-17
parisc randconfig-002 clang-17
parisc randconfig-002-20260701 clang-17
parisc randconfig-002-20260702 clang-17
parisc64 defconfig clang-23
powerpc allmodconfig gcc-16.1.0
powerpc allnoconfig clang-23
powerpc allnoconfig gcc-16.1.0
powerpc mpc512x_defconfig clang-23
powerpc randconfig-001 clang-17
powerpc randconfig-001-20260701 clang-17
powerpc randconfig-001-20260702 clang-17
powerpc randconfig-002 clang-17
powerpc randconfig-002-20260701 clang-17
powerpc randconfig-002-20260702 clang-17
powerpc redwood_defconfig clang-23
powerpc wii_defconfig gcc-16.1.0
powerpc64 randconfig-001 clang-17
powerpc64 randconfig-001-20260701 clang-17
powerpc64 randconfig-001-20260702 clang-17
powerpc64 randconfig-002 clang-17
powerpc64 randconfig-002-20260701 clang-17
powerpc64 randconfig-002-20260702 clang-17
riscv allmodconfig clang-23
riscv allnoconfig clang-23
riscv allnoconfig gcc-16.1.0
riscv allyesconfig clang-23
riscv defconfig gcc-16.1.0
riscv randconfig-001-20260701 clang-23
riscv randconfig-001-20260702 gcc-12.5.0
riscv randconfig-002-20260701 clang-23
riscv randconfig-002-20260702 gcc-12.5.0
s390 allmodconfig clang-17
s390 allmodconfig clang-23
s390 allnoconfig clang-23
s390 allyesconfig gcc-16.1.0
s390 defconfig gcc-16.1.0
s390 randconfig-001-20260701 clang-23
s390 randconfig-001-20260702 gcc-12.5.0
s390 randconfig-002-20260701 clang-23
s390 randconfig-002-20260702 gcc-12.5.0
sh allmodconfig gcc-16.1.0
sh allnoconfig clang-23
sh allnoconfig gcc-16.1.0
sh allyesconfig clang-17
sh allyesconfig gcc-16.1.0
sh defconfig gcc-14
sh randconfig-001-20260701 clang-23
sh randconfig-001-20260702 gcc-12.5.0
sh randconfig-002-20260701 clang-23
sh randconfig-002-20260702 gcc-12.5.0
sh se7206_defconfig gcc-16.1.0
sh se7619_defconfig gcc-16.1.0
sh se7750_defconfig gcc-16.1.0
sparc allnoconfig clang-23
sparc allnoconfig gcc-16.1.0
sparc defconfig gcc-16.1.0
sparc randconfig-001 gcc-13.4.0
sparc randconfig-001-20260701 gcc-13.4.0
sparc randconfig-001-20260702 gcc-16.1.0
sparc randconfig-002 gcc-13.4.0
sparc randconfig-002-20260701 gcc-13.4.0
sparc randconfig-002-20260702 gcc-16.1.0
sparc64 allmodconfig clang-20
sparc64 defconfig gcc-14
sparc64 randconfig-001 gcc-13.4.0
sparc64 randconfig-001-20260701 gcc-13.4.0
sparc64 randconfig-001-20260702 gcc-16.1.0
sparc64 randconfig-002 gcc-13.4.0
sparc64 randconfig-002-20260701 gcc-13.4.0
sparc64 randconfig-002-20260702 gcc-16.1.0
um allmodconfig clang-17
um allnoconfig clang-17
um allnoconfig clang-23
um allyesconfig gcc-14
um allyesconfig gcc-16.1.0
um defconfig gcc-14
um i386_defconfig gcc-14
um randconfig-001 gcc-13.4.0
um randconfig-001-20260701 gcc-13.4.0
um randconfig-001-20260702 gcc-16.1.0
um randconfig-002 gcc-13.4.0
um randconfig-002-20260701 gcc-13.4.0
um randconfig-002-20260702 gcc-16.1.0
um x86_64_defconfig gcc-14
x86_64 allmodconfig clang-22
x86_64 allnoconfig clang-22
x86_64 allnoconfig clang-23
x86_64 allyesconfig clang-22
x86_64 buildonly-randconfig-001 clang-22
x86_64 buildonly-randconfig-001-20260701 clang-22
x86_64 buildonly-randconfig-001-20260702 clang-22
x86_64 buildonly-randconfig-002 clang-22
x86_64 buildonly-randconfig-002-20260701 clang-22
x86_64 buildonly-randconfig-002-20260702 clang-22
x86_64 buildonly-randconfig-003 clang-22
x86_64 buildonly-randconfig-003-20260701 clang-22
x86_64 buildonly-randconfig-003-20260702 clang-22
x86_64 buildonly-randconfig-004 clang-22
x86_64 buildonly-randconfig-004-20260701 clang-22
x86_64 buildonly-randconfig-004-20260702 clang-22
x86_64 buildonly-randconfig-005 clang-22
x86_64 buildonly-randconfig-005-20260701 clang-22
x86_64 buildonly-randconfig-005-20260702 clang-22
x86_64 buildonly-randconfig-006 clang-22
x86_64 buildonly-randconfig-006-20260701 clang-22
x86_64 buildonly-randconfig-006-20260702 clang-22
x86_64 defconfig gcc-14
x86_64 kexec clang-22
x86_64 randconfig-001 clang-22
x86_64 randconfig-001-20260701 clang-22
x86_64 randconfig-001-20260701 gcc-14
x86_64 randconfig-001-20260702 clang-22
x86_64 randconfig-002 clang-22
x86_64 randconfig-002-20260701 clang-22
x86_64 randconfig-002-20260701 gcc-14
x86_64 randconfig-002-20260702 clang-22
x86_64 randconfig-003 clang-22
x86_64 randconfig-003-20260701 clang-22
x86_64 randconfig-003-20260701 gcc-14
x86_64 randconfig-003-20260702 clang-22
x86_64 randconfig-004 clang-22
x86_64 randconfig-004-20260701 clang-22
x86_64 randconfig-004-20260701 gcc-14
x86_64 randconfig-004-20260702 clang-22
x86_64 randconfig-005 clang-22
x86_64 randconfig-005-20260701 clang-22
x86_64 randconfig-005-20260701 gcc-14
x86_64 randconfig-005-20260702 clang-22
x86_64 randconfig-006 clang-22
x86_64 randconfig-006-20260701 clang-22
x86_64 randconfig-006-20260701 gcc-14
x86_64 randconfig-006-20260702 clang-22
x86_64 randconfig-011 gcc-14
x86_64 randconfig-011-20260701 gcc-14
x86_64 randconfig-011-20260702 clang-22
x86_64 randconfig-012 gcc-14
x86_64 randconfig-012-20260701 gcc-14
x86_64 randconfig-012-20260702 clang-22
x86_64 randconfig-013 gcc-14
x86_64 randconfig-013-20260701 gcc-14
x86_64 randconfig-013-20260702 clang-22
x86_64 randconfig-014 gcc-14
x86_64 randconfig-014-20260701 gcc-14
x86_64 randconfig-014-20260702 clang-22
x86_64 randconfig-015 gcc-14
x86_64 randconfig-015-20260701 gcc-14
x86_64 randconfig-015-20260702 clang-22
x86_64 randconfig-016 gcc-14
x86_64 randconfig-016-20260701 gcc-14
x86_64 randconfig-016-20260702 clang-22
x86_64 randconfig-071 gcc-14
x86_64 randconfig-071-20260701 gcc-14
x86_64 randconfig-071-20260702 clang-22
x86_64 randconfig-072 gcc-14
x86_64 randconfig-072-20260701 gcc-14
x86_64 randconfig-072-20260702 clang-22
x86_64 randconfig-073 gcc-14
x86_64 randconfig-073-20260701 gcc-14
x86_64 randconfig-073-20260702 clang-22
x86_64 randconfig-074 gcc-14
x86_64 randconfig-074-20260701 gcc-14
x86_64 randconfig-074-20260702 clang-22
x86_64 randconfig-075 gcc-14
x86_64 randconfig-075-20260701 gcc-14
x86_64 randconfig-075-20260702 clang-22
x86_64 randconfig-076 gcc-14
x86_64 randconfig-076-20260701 gcc-14
x86_64 randconfig-076-20260702 clang-22
x86_64 rhel-9.4 clang-22
x86_64 rhel-9.4-bpf gcc-14
x86_64 rhel-9.4-func clang-22
x86_64 rhel-9.4-kselftests clang-22
x86_64 rhel-9.4-kunit gcc-14
x86_64 rhel-9.4-ltp gcc-14
x86_64 rhel-9.4-rust clang-22
xtensa allnoconfig clang-23
xtensa allnoconfig gcc-16.1.0
xtensa allyesconfig clang-20
xtensa allyesconfig gcc-16.1.0
xtensa randconfig-001 gcc-13.4.0
xtensa randconfig-001-20260701 gcc-13.4.0
xtensa randconfig-001-20260702 gcc-16.1.0
xtensa randconfig-002 gcc-13.4.0
xtensa randconfig-002-20260701 gcc-13.4.0
xtensa randconfig-002-20260702 gcc-16.1.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* Re: [PATCH v8 7/8] PCI: of: Set fwnode device of newly created PCI device nodes
From: Richard Cheng @ 2026-07-02 4:02 UTC (permalink / raw)
To: Herve Codina
Cc: Andrew Lunn, Rob Herring, Saravana Kannan, Greg Kroah-Hartman,
Rafael J. Wysocki, Danilo Krummrich, Bjorn Helgaas, David Rhodes,
Richard Fitzgerald, Charles Keepax, Linus Walleij, Len Brown,
Andy Shevchenko, Daniel Scally, Heikki Krogerus, Sakari Ailus,
Davidlohr Bueso, Jonathan Cameron, Dave Jiang, Alison Schofield,
Vishal Verma, Dan Williams, Ira Weiny, Li Ming, Lizhi Hou,
driver-core, linux-kernel, linux-pci, linux-sound, patches,
linux-gpio, linux-acpi, linux-cxl, Allan Nielsen, Horatiu Vultur,
Daniel Machon, Steen Hegelund, Luca Ceresoli, Thomas Petazzoni,
stable
In-Reply-To: <20260630102804.413563-8-herve.codina@bootlin.com>
On Tue, Jun 30, 2026 at 12:28:01PM +0800, Herve Codina wrote:
> Device-tree node can be created when CONFIG_PCI_DYNAMIC_OF_NODES. Those
> nodes are created and filled based on PCI core information but the
> fwnode device field is not set.
>
> When later an overlay is applied, this confuses fw_devlink. Indeed,
> without any device attached to the node, fw_devlink considers that this
> node will never become a device. When this node is pointed as a
> supplier, devlink looks at its ancestors in order to find a node with a
> device that could be used as the supplier.
>
> In the PCI use case, this leads to links that wrongly use the PCI root
> bridge device as the supplier instead of the expected PCI device.
>
> Setting the fwnode device to the device of the PCI device allows devlink
> to use this device as a supplier and so, correct links are created.
>
> Fixes: 407d1a51921e ("PCI: Create device tree node for bridge")
> Cc: stable@vger.kernel.org
> Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
> drivers/pci/of.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/pci/of.c b/drivers/pci/of.c
> index ee9eb384b377..eda14cefca5e 100644
> --- a/drivers/pci/of.c
> +++ b/drivers/pci/of.c
> @@ -709,6 +709,13 @@ void of_pci_make_dev_node(struct pci_dev *pdev)
> if (ret)
> goto out_free_node;
>
> + /*
> + * Set the fwnode device in order to have fw_devlink creating links
> + * pointing to this PCI device instead of walking up to the PCI host
> + * bridge.
> + */
> + fw_devlink_set_device(&np->fwnode, &pdev->dev);
> +
> ret = of_changeset_apply(cset);
> if (ret)
> goto out_free_node;
> --
> 2.54.0
>
>
Hi Herve,
I wonder if this part has some issue, it sets np->fwnode.dev = &pdev->dev,
but I don't see am matching clear on removal path, I doubt the back-pointer
can outlive the pci_dev.
device_del() do the check
"""
if (dev->fwnode && dev->fwnode->dev == dev)
fw_devlink_set_device(dev->fwnode, NULL);
"""
On removal, pci_stop_dev() calls of_pci_remove_node() before pci_destroy_dev()
calls device_del(), and of_pci_remove_node() -> device_remove_of_node() has already NULLed pdev->dev.fwnode by then, so the "dev->fwnode" guard is false, and
of_pci_remove_node() itself never clears np->fwnode.dev
If something holds an extra ref on np past removal, e.g. a DT overlay applied via configfs that pins np through its gragment targets,
np survives, the pci_dev is freed, and np->fwnode.dev dnalges into freed memory.
Then fw_devlink walker that resolve it via get_dev_from_fwnode() -> get_device() would hit a use-after-free .
I think of_pci_remove_node() should cleaer the back-pointer it set,
before dropping the node's ref, e.g.
"""
np = pci_device_to_OF_node(pdev);
if (!np || !of_node_check_flag(np, OF_DYNAMIC))
return;
fw_devlink_set_device(&np->fwnode, NULL);
device_remove_of_node(&pdev->dev);
of_changeset_revert(np->data);
"""
Does that make sense to you ?
Best regards,
Richard Cheng.
^ permalink raw reply
* Re: [PATCH 1/8] dt-bindings: regulator: ROHM BD73800 regulators
From: Matti Vaittinen @ 2026-07-02 4:45 UTC (permalink / raw)
To: Rob Herring
Cc: Matti Vaittinen, Matti Vaittinen, Lee Jones, Krzysztof Kozlowski,
Conor Dooley, Liam Girdwood, Mark Brown, Michael Turquette,
Stephen Boyd, Brian Masney, Linus Walleij, Bartosz Golaszewski,
Alexandre Belloni, devicetree, linux-kernel, linux-clk,
linux-gpio, linux-rtc
In-Reply-To: <20260701192559.GA1313239-robh@kernel.org>
Hi Rob,
Thanks (again) for the review!
On 01/07/2026 22:25, Rob Herring wrote:
> On Wed, Jul 01, 2026 at 03:41:11PM +0300, Matti Vaittinen wrote:
>> From: Matti Vaittinen <mazziesaccount@gmail.com>
>>
>> Add bindings for the BUCKs and LDOs on ROHM BD73800. The PMIC state
>> specific voltages can be set in same fashion as with a few other ROHM
>> PMICs (for example with BD718[15,28,37,47,50,79]). Same properties are
>> recycled :)
>>
>> The LDOs 1 and 4 can use different voltage ranges depending on the OTP
>> configuration.
>>
>> Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
>> ---
>> .../regulator/rohm,bd73800-regulator.yaml | 119 ++++++++++++++++++
>> 1 file changed, 119 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml b/Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml
>> new file mode 100644
>> index 000000000000..c427a04098ec
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/regulator/rohm,bd73800-regulator.yaml
>
>
>> + rohm,dvs-run-voltage:
>> + description:
>> + PMIC default "RUN" state voltage in uV. 0 means disabled. See the
>> + explanation below for regulator specific details.
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + minimum: 0
>> + maximum: 3500000
>
> [...]
>
>> + rohm,dvs-run-voltage:
>> + description:
>> + Set the default output state at PMIC's "RUN" state.
>> + 0 is disabled, 1 is enabled.
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + minimum: 0
>> + maximum: 1
>
> Same property name with 2 different meanings. Not a good design pattern.
Hmm. They do actually have the same meaning. Setting the "RUN" -state
voltage. Values '0' and '1' have special meaning "disable" and "enable"
- also for BUCKs.
For LDOs on this PMIC, only the enable/disable configuration can be set
for each hardware-state as the LDO voltage is same for all hardware
states. Hence only subset of the property values (1/0) are supported for
the LDOs.
> Also, if these properties are copied from other schemas, don't duplicate
> them. Put them in a common schema and reference it here.
Ah. I think this is a great idea, and I should've thought that already a
few PMICs ago :) We have been reviewing and discussing these properties
with you since ... maybe 2018, as I've added new PMICs re-using them... ;)
Thanks! I'll rework this but v2 is likely to be out only at August.
Yours,
-- Matti
--
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland
~~ When things go utterly wrong vim users can always type :help! ~~
^ permalink raw reply
* Re: [PATCH 5/8] regulator: bd71828: Support ROHM BD73800
From: Matti Vaittinen @ 2026-07-02 4:55 UTC (permalink / raw)
To: Mark Brown
Cc: Matti Vaittinen, Matti Vaittinen, Lee Jones, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liam Girdwood,
Michael Turquette, Stephen Boyd, Brian Masney, Linus Walleij,
Bartosz Golaszewski, Alexandre Belloni, devicetree, linux-kernel,
linux-clk, linux-gpio, linux-rtc
In-Reply-To: <bf744d4f-eabe-48e7-92e4-b147b8d79d91@sirena.org.uk>
On 01/07/2026 16:01, Mark Brown wrote:
> On Wed, Jul 01, 2026 at 03:42:35PM +0300, Matti Vaittinen wrote:
>> From: Matti Vaittinen <mazziesaccount@gmail.com>
>
>> + nproot = of_get_child_by_name(nproot, "regulators");
>> + if (!nproot) {
>> + dev_err(dev, "failed to find regulators node\n");
>> + return -ENODEV;
>> + }
>> + for_each_child_of_node(nproot, np) {
>> + if (of_node_name_eq(np, LDO1_NODE_NAME))
>> + ldo1_use_high_range = of_property_read_bool(np,
>> + "rohm,ldo-range-high");
>> + if (of_node_name_eq(np, LDO3_NODE_NAME))
>> + ldo3_use_high_range = of_property_read_bool(np,
>> + "rohm,ldo-range-high");
>> + }
>
> Why do we iterate over all nodes rather than doing additional
> of_get_child_by_name()s?
This series has been sitting in my "TODO" -folder for quite a while - so
I am not anymore 100% sure as to why. I believe I've thought that the
of_get_child_by_name() does (internally) iterate all the child nodes, so
using it twice would cause code to loop through the nodes twice. So,
looping through all child nodes in a single loop probably felt like the
right thing to do. Furthermore, I've probably written the first version
before I found out the cleanup.h...
But yes. I think you're right. This can be made much leaner.
>> + if (ldo1_use_high_range) {
>> + d[BD73800_LDO1].desc.linear_ranges = bd73800_ldo13_high_volts;
>> + d[BD73800_LDO1].desc.n_linear_ranges =
>> + ARRAY_SIZE(bd73800_ldo13_high_volts);
>> + }
>> + if (ldo3_use_high_range) {
>> + d[BD73800_LDO3].desc.linear_ranges = bd73800_ldo13_high_volts;
>> + d[BD73800_LDO3].desc.n_linear_ranges =
>> + ARRAY_SIZE(bd73800_ldo13_high_volts);
>> + }
>
> You could just do these updates without the intermediate variables.
Yes.
Thanks for the suggestions! I will fix these for the v2, but it will
probably be out only during August.
Yours,
-- Matti
--
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland
~~ When things go utterly wrong vim users can always type :help! ~~
^ permalink raw reply
* Re: [PATCH] gpio: dwapb: Defer clock gating until noirq
From: Jia Wang @ 2026-07-02 6:26 UTC (permalink / raw)
To: kernel test robot
Cc: Jia Wang via B4 Relay, Hoan Tran, Linus Walleij,
Bartosz Golaszewski, oe-kbuild-all, linux-gpio, linux-kernel,
Jia Wang
In-Reply-To: <202606291736.mAgOeA65-lkp@intel.com>
On 2026-06-29 18:04 +0800, kernel test robot wrote:
> Hi Jia,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on dc59e4fea9d83f03bad6bddf3fa2e52491777482]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Jia-Wang-via-B4-Relay/gpio-dwapb-Defer-clock-gating-until-noirq/20260629-135404
> base: dc59e4fea9d83f03bad6bddf3fa2e52491777482
> patch link: https://lore.kernel.org/r/20260629-gpio-dwapb-wakeup-v1-1-3394f02317da%40ultrarisc.com
> patch subject: [PATCH] gpio: dwapb: Defer clock gating until noirq
> config: sparc64-randconfig-001-20260629 (https://download.01.org/0day-ci/archive/20260629/202606291736.mAgOeA65-lkp@intel.com/config)
> compiler: sparc64-linux-gcc (GCC) 8.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260629/202606291736.mAgOeA65-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202606291736.mAgOeA65-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> drivers/gpio/gpio-dwapb.c: In function 'dwapb_irq_set_wake':
> >> drivers/gpio/gpio-dwapb.c:377:7: error: 'struct irq_data' has no member named 'parent_data'
> if (d->parent_data && !!ctx->wake_en != !!wake_en) {
> ^~
> >> drivers/gpio/gpio-dwapb.c:378:9: error: implicit declaration of function 'irq_chip_set_wake_parent'; did you mean 'irq_set_parent'? [-Werror=implicit-function-declaration]
> err = irq_chip_set_wake_parent(d, enable);
> ^~~~~~~~~~~~~~~~~~~~~~~~
> irq_set_parent
> cc1: some warnings being treated as errors
>
>
> vim +377 drivers/gpio/gpio-dwapb.c
>
> 362
> 363 static int dwapb_irq_set_wake(struct irq_data *d, unsigned int enable)
> 364 {
> 365 struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> 366 struct dwapb_gpio *gpio = to_dwapb_gpio(gc);
> 367 struct dwapb_context *ctx = gpio->ports[0].ctx;
> 368 irq_hw_number_t bit = irqd_to_hwirq(d);
> 369 u32 wake_en = ctx->wake_en;
> 370 int err;
> 371
> 372 if (enable)
> 373 wake_en |= BIT(bit);
> 374 else
> 375 wake_en &= ~BIT(bit);
> 376
> > 377 if (d->parent_data && !!ctx->wake_en != !!wake_en) {
> > 378 err = irq_chip_set_wake_parent(d, enable);
> 379 if (err)
> 380 return err;
> 381 }
> 382
> 383 ctx->wake_en = wake_en;
> 384
> 385 return 0;
> 386 }
> 387
>
Thanks for the report. This is caused by using hierarchical IRQ helpers
without guarding them with CONFIG_IRQ_DOMAIN_HIERARCHY.
I'll fix this in the next version of the patch.
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>
^ permalink raw reply
* [PATCH v3 0/2] upboard pinctrl support for device id INTC1055
From: GaryWang @ 2026-07-02 7:10 UTC (permalink / raw)
To: Mika Westerberg, Andy Shevchenko, Linus Walleij, Thomas Richard
Cc: Daniele Cleri, JunYingLai, Louis Chen, linux-gpio, linux-kernel,
GaryWang
Add missing groups and functions in Tigerlake's pinctrl driver for INTC1055.
Add support "UP Xtreme i12" board.
The pinctrl-upboard is provide additional driving power & pin mux function
through native SOC pins -> FPGA/CPLD -> hat pins for flexable board level
applications. it's probe from ACPI device id AANT0F01 & AANT0F04.
Signed-off-by: GaryWang <is0124@gmail.com>
---
Changes in v3:
- Correction pwm & uart pin mode in INTC1055.
- Remove unsupport up boards.
- Update cover letter.
- Link to v2: https://lore.kernel.org/r/20260612-upboard-pinctrl-add-upboard-intc1055-support-v2-0-4111b256c840@gmail.com
Changes in v2:
- Add brief introduction pinctrl-upboard architecture in cover content.
- Add more detail explaining for pinctrl-tigerlake commit message.
- Link to v1: https://lore.kernel.org/r/20260610-upboard-pinctrl-add-upboard-intc1055-support-v1-0-8185d2abbfb1@gmail.com
---
GaryWang (2):
pinctrl: tigerlake: add some pin groups and functions for INTC1055
pinctrl: upboard: add device id INTC1055 based UP boards support
drivers/pinctrl/intel/pinctrl-tigerlake.c | 32 +++++++++++++++++++++++++++++++
drivers/pinctrl/pinctrl-upboard.c | 21 ++++++++++++++++++++
2 files changed, 53 insertions(+)
---
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
change-id: 20260609-upboard-pinctrl-add-upboard-intc1055-support-bd1d81311b7a
Best regards,
--
GaryWang <is0124@gmail.com>
^ permalink raw reply
* [PATCH v3 1/2] pinctrl: tigerlake: add some pin groups and functions for INTC1055
From: GaryWang @ 2026-07-02 7:10 UTC (permalink / raw)
To: Mika Westerberg, Andy Shevchenko, Linus Walleij, Thomas Richard
Cc: Daniele Cleri, JunYingLai, Louis Chen, linux-gpio, linux-kernel,
GaryWang
In-Reply-To: <20260702-upboard-pinctrl-add-upboard-intc1055-support-v3-0-e6bda3032914@gmail.com>
Add i2c0, i2c1, pwm0, uart1, ssp2 pin groups & functions in tgllp_soc_data
for device id INTC1055.
The pinctrl-upboard driver set the correct pin function corresponding to
these data.
Signed-off-by: GaryWang <is0124@gmail.com>
---
drivers/pinctrl/intel/pinctrl-tigerlake.c | 32 +++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/drivers/pinctrl/intel/pinctrl-tigerlake.c b/drivers/pinctrl/intel/pinctrl-tigerlake.c
index ae231f7fba49..0a11b9dac3dd 100644
--- a/drivers/pinctrl/intel/pinctrl-tigerlake.c
+++ b/drivers/pinctrl/intel/pinctrl-tigerlake.c
@@ -330,6 +330,34 @@ static const struct pinctrl_pin_desc tgllp_pins[] = {
PINCTRL_PIN(276, "SPI0_CLK_LOOPBK"),
};
+static const unsigned int tgllp_i2c0_pins[] = { 5, 6 };
+static const unsigned int tgllp_i2c1_pins[] = { 7, 8 };
+static const unsigned int tgllp_pwm0_pins[] = { 99 };
+static const unsigned int tgllp_uart1_pins[] = { 85, 86, 87, 88 };
+static const unsigned int tgllp_ssp2_pins[] = { 108, 109, 110, 111 };
+
+static const struct intel_pingroup tgllp_groups[] = {
+ PIN_GROUP("i2c0_grp", tgllp_i2c0_pins, 2),
+ PIN_GROUP("i2c1_grp", tgllp_i2c1_pins, 2),
+ PIN_GROUP("pwm0_grp", tgllp_pwm0_pins, 2),
+ PIN_GROUP("uart1_grp", tgllp_uart1_pins, 2),
+ PIN_GROUP("ssp2_grp", tgllp_ssp2_pins, 7),
+};
+
+static const char * const tgllp_i2c0_groups[] = { "i2c0_grp" };
+static const char * const tgllp_i2c1_groups[] = { "i2c1_grp" };
+static const char * const tgllp_pwm0_groups[] = { "pwm0_grp" };
+static const char * const tgllp_uart1_groups[] = { "uart1_grp" };
+static const char * const tgllp_ssp2_groups[] = { "ssp2_grp" };
+
+static const struct intel_function tgllp_functions[] = {
+ FUNCTION("i2c0", tgllp_i2c0_groups),
+ FUNCTION("i2c1", tgllp_i2c1_groups),
+ FUNCTION("pwm0", tgllp_pwm0_groups),
+ FUNCTION("uart1", tgllp_uart1_groups),
+ FUNCTION("ssp2", tgllp_ssp2_groups),
+};
+
static const struct intel_padgroup tgllp_community0_gpps[] = {
INTEL_GPP(0, 0, 25, 0), /* GPP_B */
INTEL_GPP(1, 26, 41, 32), /* GPP_T */
@@ -367,6 +395,10 @@ static const struct intel_community tgllp_communities[] = {
static const struct intel_pinctrl_soc_data tgllp_soc_data = {
.pins = tgllp_pins,
.npins = ARRAY_SIZE(tgllp_pins),
+ .groups = tgllp_groups,
+ .ngroups = ARRAY_SIZE(tgllp_groups),
+ .functions = tgllp_functions,
+ .nfunctions = ARRAY_SIZE(tgllp_functions),
.communities = tgllp_communities,
.ncommunities = ARRAY_SIZE(tgllp_communities),
};
--
2.43.0
^ permalink raw reply related
* [PATCH v3 2/2] pinctrl: upboard: add device id INTC1055 based UP boards support
From: GaryWang @ 2026-07-02 7:10 UTC (permalink / raw)
To: Mika Westerberg, Andy Shevchenko, Linus Walleij, Thomas Richard
Cc: Daniele Cleri, JunYingLai, Louis Chen, linux-gpio, linux-kernel,
GaryWang
In-Reply-To: <20260702-upboard-pinctrl-add-upboard-intc1055-support-v3-0-e6bda3032914@gmail.com>
Add support "UP Xtreme i12" and I2C/PWM/UART/SPI pins mapping data.
Signed-off-by: GaryWang <is0124@gmail.com>
---
drivers/pinctrl/pinctrl-upboard.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/drivers/pinctrl/pinctrl-upboard.c b/drivers/pinctrl/pinctrl-upboard.c
index f8c8b9d84990..de1920a3387d 100644
--- a/drivers/pinctrl/pinctrl-upboard.c
+++ b/drivers/pinctrl/pinctrl-upboard.c
@@ -912,6 +912,19 @@ static const struct upboard_pinctrl_map upboard_pinctrl_map_apl01 = {
.nmaps = ARRAY_SIZE(pinctrl_map_apl01),
};
+static const struct pinctrl_map pinctrl_map_adl[] = {
+ PIN_MAP_MUX_GROUP_DEFAULT("upboard-pinctrl", "INTC1055:00", "i2c0_grp", "i2c0"),
+ PIN_MAP_MUX_GROUP_DEFAULT("upboard-pinctrl", "INTC1055:00", "i2c1_grp", "i2c1"),
+ PIN_MAP_MUX_GROUP_DEFAULT("upboard-pinctrl", "INTC1055:00", "pwm0_grp", "pwm0"),
+ PIN_MAP_MUX_GROUP_DEFAULT("upboard-pinctrl", "INTC1055:00", "uart1_grp", "uart1"),
+ PIN_MAP_MUX_GROUP_DEFAULT("upboard-pinctrl", "INTC1055:00", "ssp2_grp", "ssp2"),
+};
+
+static const struct upboard_pinctrl_map upboard_pinctrl_map_adl = {
+ .maps = &pinctrl_map_adl[0],
+ .nmaps = ARRAY_SIZE(pinctrl_map_adl),
+};
+
static const struct dmi_system_id dmi_platform_info[] = {
{
/* UP Squared */
@@ -921,6 +934,14 @@ static const struct dmi_system_id dmi_platform_info[] = {
},
.driver_data = (void *)&upboard_pinctrl_map_apl01,
},
+ {
+ /* UP Xtreme i12 */
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AAEON"),
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "UPX-ADLP01"),
+ },
+ .driver_data = (void *)&upboard_pinctrl_map_adl,
+ },
{ }
};
--
2.43.0
^ permalink raw reply related
* [PATCH v2] gpio: swnode: remove deprecated lookup mechanism
From: Bartosz Golaszewski @ 2026-07-02 7:51 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Dmitry Torokhov,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, Andy Shevchenko, Bartosz Golaszewski
GPIO software node lookup should rely exclusively on matching the
addresses of the referenced firmware nodes. Commit e5d527be7e69 ("gpio:
swnode: don't use the swnode's name as the key for GPIO lookup") tried to
enforce this but had to be reverted: it broke existing users who abused
the software node mechanism by creating "dummy" software nodes named
after the device they want to get GPIOs from, without ever attaching them
to the actual GPIO devices. Those users relied on GPIOLIB matching the
label of the GPIO controller against the name of the software node rather
than on a real firmware node link.
All such users have now been coverted to using attached software nodes
via the fwnode address lookup path and the kernel documentation has been
updated to recommend it as the correct approach. This allows us to remove
the old behavior.
This will allow us to leverage the upcoming support for fw_devlink for
software nodes in GPIO core.
Reviewed-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
Changes in v2:
- Remove unused gdev variable (kernel bot)
- Link to v1: https://patch.msgid.link/20260629-gpio-swnode-drop-label-matching-v1-1-db1af36cf883@oss.qualcomm.com
---
drivers/gpio/gpiolib-swnode.c | 23 +----------------------
1 file changed, 1 insertion(+), 22 deletions(-)
diff --git a/drivers/gpio/gpiolib-swnode.c b/drivers/gpio/gpiolib-swnode.c
index 8d9591aa9304d1eac931d1cb19597ae4b99c40a2..304994c5c7d02d5e366becf02ad99ff6f1c9028f 100644
--- a/drivers/gpio/gpiolib-swnode.c
+++ b/drivers/gpio/gpiolib-swnode.c
@@ -26,7 +26,6 @@
static struct gpio_device *swnode_get_gpio_device(struct fwnode_handle *fwnode)
{
const struct software_node *gdev_node;
- struct gpio_device *gdev;
gdev_node = to_software_node(fwnode);
if (!gdev_node)
@@ -41,27 +40,7 @@ static struct gpio_device *swnode_get_gpio_device(struct fwnode_handle *fwnode)
return ERR_PTR(-ENOENT);
fwnode_lookup:
- gdev = gpio_device_find_by_fwnode(fwnode);
- if (!gdev && gdev_node && gdev_node->name)
- /*
- * FIXME: We shouldn't need to compare the GPIO controller's
- * label against the software node that is supposedly attached
- * to it. However there are currently GPIO users that - knowing
- * the expected label of the GPIO chip whose pins they want to
- * control - set up dummy software nodes named after those GPIO
- * controllers, which aren't actually attached to them. In this
- * case gpio_device_find_by_fwnode() will fail as no device on
- * the GPIO bus is actually associated with the fwnode we're
- * looking for.
- *
- * As a fallback: continue checking the label if we have no
- * match. However, the situation described above is an abuse
- * of the software node API and should be phased out and the
- * following line - eventually removed.
- */
- gdev = gpio_device_find_by_label(gdev_node->name);
-
- return gdev ?: ERR_PTR(-EPROBE_DEFER);
+ return gpio_device_find_by_fwnode(fwnode) ?: ERR_PTR(-EPROBE_DEFER);
}
static int swnode_gpio_get_reference(const struct fwnode_handle *fwnode,
---
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
change-id: 20260625-gpio-swnode-drop-label-matching-a975ad5f0e40
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply related
* Re: [PATCH 1/5] gpio: nomadik: convert nmk_gpio_populate_chip() to goto cleanup
From: Linus Walleij @ 2026-07-02 7:58 UTC (permalink / raw)
To: Théo Lebrun
Cc: Bartosz Golaszewski, Philipp Zabel, Vladimir Kondratiev,
Gregory CLEMENT, Benoît Monin, Tawfik Bayouk,
Thomas Petazzoni, linux-arm-kernel, linux-gpio, linux-kernel
In-Reply-To: <20260701-gpio-nomadik-silent-v1-1-644d10316cef@bootlin.com>
On Wed, Jul 1, 2026 at 6:57 PM Théo Lebrun <theo.lebrun@bootlin.com> wrote:
> Remove duplicate teardown code that is found in all error if
> statements. Replace by goto-based cleanup labels.
>
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Yours,
Linus Walleij
^ permalink raw reply
* Re: [PATCH 2/5] gpio: nomadik: add missing dev_err() call on chip populate failure
From: Linus Walleij @ 2026-07-02 7:58 UTC (permalink / raw)
To: Théo Lebrun
Cc: Bartosz Golaszewski, Philipp Zabel, Vladimir Kondratiev,
Gregory CLEMENT, Benoît Monin, Tawfik Bayouk,
Thomas Petazzoni, linux-arm-kernel, linux-gpio, linux-kernel
In-Reply-To: <20260701-gpio-nomadik-silent-v1-2-644d10316cef@bootlin.com>
On Wed, Jul 1, 2026 at 6:57 PM Théo Lebrun <theo.lebrun@bootlin.com> wrote:
> All error paths of nmk_gpio_populate_chip() lead to logging errors but
> this one (ignoring the alloc or ioremap failures that must not log).
>
> Add the single missing dev_err() call.
>
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Yours,
Linus Walleij
^ permalink raw reply
* Re: [PATCH 3/5] gpio: nomadik: drop duplicate probe error line
From: Linus Walleij @ 2026-07-02 7:59 UTC (permalink / raw)
To: Théo Lebrun
Cc: Bartosz Golaszewski, Philipp Zabel, Vladimir Kondratiev,
Gregory CLEMENT, Benoît Monin, Tawfik Bayouk,
Thomas Petazzoni, linux-arm-kernel, linux-gpio, linux-kernel
In-Reply-To: <20260701-gpio-nomadik-silent-v1-3-644d10316cef@bootlin.com>
On Wed, Jul 1, 2026 at 6:57 PM Théo Lebrun <theo.lebrun@bootlin.com> wrote:
> Now that all error codepaths in nmk_gpio_populate_chip() log an error,
> drop dev_err() call that is made on nmk_gpio_populate_chip() failure.
>
> Current boot log:
>
> [ 0.544230] nomadik-gpio 1400000.gpio: failed getting reset control: -EPROBE_DEFER
> [ 0.544274] nomadik-gpio 1400000.gpio: could not populate nmk chip struct
>
> The second line is always redundant (or is logged when we shouldn't log,
> like ioremap or alloc failures).
>
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Yours,
Linus Walleij
^ permalink raw reply
* Re: [PATCH 4/5] gpio: nomadik: use dev_err_probe()
From: Linus Walleij @ 2026-07-02 7:59 UTC (permalink / raw)
To: Théo Lebrun
Cc: Bartosz Golaszewski, Philipp Zabel, Vladimir Kondratiev,
Gregory CLEMENT, Benoît Monin, Tawfik Bayouk,
Thomas Petazzoni, linux-arm-kernel, linux-gpio, linux-kernel
In-Reply-To: <20260701-gpio-nomadik-silent-v1-4-644d10316cef@bootlin.com>
On Wed, Jul 1, 2026 at 6:57 PM Théo Lebrun <theo.lebrun@bootlin.com> wrote:
> gpio-nomadik depends on a few resources. In one case the reset is taking
> time to show up leading to a boot log containing:
>
> [ 0.544230] nomadik-gpio 1400000.gpio: failed getting reset control: -EPROBE_DEFER
>
> Fix by replacing all dev_err() calls that might be made at probe with
> dev_err_probe().
>
> On nomadik platforms, the nmk_gpio_populate_chip() log calls might
> attach their reasons to the gpio or pinctrl device depending on boot
> order.
>
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Yours,
Linus Walleij
^ permalink raw reply
* Re: [PATCH 5/5] gpio: nomadik: drop "chip registered" log on probe success
From: Linus Walleij @ 2026-07-02 8:00 UTC (permalink / raw)
To: Théo Lebrun
Cc: Bartosz Golaszewski, Philipp Zabel, Vladimir Kondratiev,
Gregory CLEMENT, Benoît Monin, Tawfik Bayouk,
Thomas Petazzoni, linux-arm-kernel, linux-gpio, linux-kernel
In-Reply-To: <20260701-gpio-nomadik-silent-v1-5-644d10316cef@bootlin.com>
On Wed, Jul 1, 2026 at 6:57 PM Théo Lebrun <theo.lebrun@bootlin.com> wrote:
> Successful driver probing should be silent. Drop unconditional
> dev_info() call that is done at nmk_gpio_probe() exit.
>
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
I actually don't generally agree, but you are using this driver more than
me now so let's go with your minimalist dmesg style for this driver.
Reviewed-by: Linus Walleij <linusw@kernel.org>
Yours,
Linus Walleij
^ permalink raw reply
* Re: [PATCH 2/8] dt-bindings: mfd: ROHM BD73800 PMIC
From: Krzysztof Kozlowski @ 2026-07-02 8:05 UTC (permalink / raw)
To: Matti Vaittinen
Cc: Matti Vaittinen, Matti Vaittinen, Lee Jones, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Liam Girdwood, Mark Brown,
Michael Turquette, Stephen Boyd, Brian Masney, Linus Walleij,
Bartosz Golaszewski, Alexandre Belloni, devicetree, linux-kernel,
linux-clk, linux-gpio, linux-rtc
In-Reply-To: <3e700a3fa7872a96257ff25a77670ec05cfd239c.1782909323.git.mazziesaccount@gmail.com>
On Wed, Jul 01, 2026 at 03:41:34PM +0300, Matti Vaittinen wrote:
> +description:
> + BD73800GW is a single-chip power management IC for battery-powered
> + portable devices. It integrates 8 buck converters, 4 LDOs and a current
> + sense amplifier with ADC. Also included is a Real Time Clock (RTC) and a
> + 32.768 kHz clock gate. Depending on the OTP configuration the BD73800
> + may also have interrupt controller and GPIOs.
> +
> + There are also different variants called BD71851 and BD71885 which are
> + almost identical from the software point of view.
> +
> +properties:
> + compatible:
> + oneOf:
> + - const: rohm,bd73800
> +
> + - items:
> + - const: rohm,bd71851
> + - const: rohm,bd73800
> +
> + - items:
> + - const: rohm,bd71885
items:
- enum:
-
-
- const: rohm,bd73800
> + - const: rohm,bd73800
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + # The GPIO1, CLKOUT (GPIO2), FAULT_B and EXTEN_OUT pins can be
> + # configured to interrupt pins by OTP.
> + interrupt-controller: true
> +
> + "#interrupt-cells":
> + const: 1
> + description:
> + The IRQ number. 0 is GPIO1, 1 CLKOUT (GPIO2), 2 FAULT_B and 3 EXTEN_OUT.
> + NOTE, A pin can operate as IRQ source only when the OTP
> + configuration for it has been set to GPI.
> +
> + gpio-controller: true
> +
> + "#gpio-cells":
> + const: 2
> +
> +# The GPIO1, CLKOUT, FAULT_B and EXTEN_OUT pins may be configured for a
Missing two spaces (indent) before the comment, although this should be
put into description. I understand it applies to each description - it
is fine to add to the first one. Descriptions might be used to generate
user-friendly representation of bindings (PDF). Comments won't, so
comments are only to explain the binding/schema syntax choices.
> +# specific purpose (like ADC input, 32.768 clk output, fault indicator or
> +# delivering power sequence to a companion PMIC when multiple PMICs are
> +# used) - but also to be either a GPO or GPI. (When used as a GPI the pin
> +# can also be used as an IRQ source). The pin purpose is determined by
> +# OTP (One Time Programmable memory), typically during device manufacturing.
> +# The OTP can't be read at runtime so device-tree should describe the pins.
> + rohm,pin-gpio1:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Indicate if the GPIO1 pin has been set to GPI or GPO at manufacturing.
> + enum: [gpi, gpo]
> +
> + rohm,pin-clkout:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Indicate if the CLKOUT pin has been set to GPI or GPO at manufacturing.
> + enum: [gpi, gpo]
> +
> + rohm,pin-fault-b:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Indicate if the FAULT_B pin has been set to GPI or GPO at manufacturing.
> + enum: [gpi, gpo]
> +
> + rohm,pin-exten:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Indicate if the EXTEN_OUT pin has been set to GPI or GPO at
> + manufacturing.
> + enum: [gpi, gpo]
> +
> + # The CLKOUT pin may have its purpose overridden by OTP configuration. It is
> + # possible the BD73800 does not output a clock signal. Hence the optional clk
> + # properties.
Same here
items:
- description: foo bar
> + clocks:
> + maxItems: 1
> +
> + "#clock-cells":
> + const: 0
> +
> + clock-output-names:
> + const: bd73800-32k-out
If this is fixed, then drop clock-output-names. Otherwise should be just
maxItems: 1
> +
> + rohm,clkout-open-drain:
> + description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 1
Best regards,
Krzysztof
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox