* Re: [PATCH] fix: net: ti: cpsw_probe_dt: fix phy_node reference leak on error paths
From: Andrew Lunn @ 2026-06-26 16:12 UTC (permalink / raw)
To: WenTao Liang
Cc: Siddharth Vadapalli, Roger Quadros, netdev, Andrew Lunn,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
linux-omap, stable, linux-kernel
In-Reply-To: <20260626152906.52112-1-vulab@iscas.ac.cn>
On Fri, Jun 26, 2026 at 11:29:06PM +0800, WenTao Liang wrote:
> After slave_data->phy_node is assigned (via of_node_get or
> of_parse_phandle), if subsequent calls like of_get_phy_mode or
> ti_cm_get_macid fail, the error path jumps to err_node_put which only
> releases the loop's port_np reference but not the phy_node reference.
> This causes a device_node reference leak.
>
> Release slave_data->phy_node via of_node_put before jumping to
> err_node_put on error paths after phy_node has been acquired.
>
> Cc: stable@vger.kernel.org
> Fixes: ed3525eda4c4 ("net: ethernet: ti: introduce cpsw switchdev based driver part 1 - dual-emac")
> Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
Andrew
---
pw-bot: cr
^ permalink raw reply
* Re: [PATCH] fix: net: ti: cpsw_init_common: fix excess of_node_put on parent node when cpts child not found
From: Andrew Lunn @ 2026-06-26 16:12 UTC (permalink / raw)
To: WenTao Liang
Cc: Siddharth Vadapalli, Roger Quadros, netdev, Andrew Lunn,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
linux-omap, stable, linux-kernel
In-Reply-To: <20260626152945.52192-1-vulab@iscas.ac.cn>
On Fri, Jun 26, 2026 at 11:29:45PM +0800, WenTao Liang wrote:
> When no "cpts" child node exists in the device tree, cpts_node is
> assigned cpsw->dev->of_node without taking a reference via of_node_get.
> The function then unconditionally calls of_node_put(cpts_node) at the
> end, causing an excess put on the parent device node which can lead to a
> refcount underflow.
>
> Use of_node_get when falling back to the parent node to ensure the
> reference count is properly balanced with the subsequent of_node_put.
>
> Cc: stable@vger.kernel.org
> Fixes: ed3525eda4c4 ("net: ethernet: ti: introduce cpsw switchdev based driver part 1 - dual-emac")
> Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
Andrew
---
pw-bot: cr
^ permalink raw reply
* Re: [PATCH] fix: net: ti: cpts_of_mux_clk_setup: fix device_node reference leak on success path
From: Andrew Lunn @ 2026-06-26 16:11 UTC (permalink / raw)
To: WenTao Liang
Cc: Andrew Lunn, netdev, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Grygorii Strashko, linux-omap,
stable, linux-kernel
In-Reply-To: <20260626153148.52612-1-vulab@iscas.ac.cn>
On Fri, Jun 26, 2026 at 11:31:48PM +0800, WenTao Liang wrote:
> of_get_child_by_name acquires a device_node reference for refclk_np, and
> of_clk_add_hw_provider additionally takes an extra reference internally.
> On the success path, the function returns 0 without calling
> of_node_put(refclk_np), leaking the initial reference.
>
> Add of_node_put(refclk_np) before returning success to properly release
> the acquired reference.
>
> Cc: stable@vger.kernel.org
> Fixes: a3047a81ba13 ("net: ethernet: ti: cpts: add support for ext rftclk selection")
> Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
Andrew
---
pw-bot: cr
^ permalink raw reply
* [PATCH] fix: net: ti: cpts_of_mux_clk_setup: fix device_node reference leak on success path
From: WenTao Liang @ 2026-06-26 15:31 UTC (permalink / raw)
To: Andrew Lunn, netdev
Cc: David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Grygorii Strashko, linux-omap, stable, linux-kernel, WenTao Liang
of_get_child_by_name acquires a device_node reference for refclk_np, and
of_clk_add_hw_provider additionally takes an extra reference internally.
On the success path, the function returns 0 without calling
of_node_put(refclk_np), leaking the initial reference.
Add of_node_put(refclk_np) before returning success to properly release
the acquired reference.
Cc: stable@vger.kernel.org
Fixes: a3047a81ba13 ("net: ethernet: ti: cpts: add support for ext rftclk selection")
Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
---
drivers/net/ethernet/ti/cpts.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/ti/cpts.c b/drivers/net/ethernet/ti/cpts.c
index 2ba4c8795d60..d6e6d074747e 100644
--- a/drivers/net/ethernet/ti/cpts.c
+++ b/drivers/net/ethernet/ti/cpts.c
@@ -714,7 +714,8 @@ static int cpts_of_mux_clk_setup(struct cpts *cpts, struct device_node *node)
goto mux_fail;
}
- return ret;
+ of_node_put(refclk_np);
+ return 0;
mux_fail:
of_node_put(refclk_np);
--
2.39.5 (Apple Git-154)
^ permalink raw reply related
* [PATCH] fix: net: ti: cpsw_init_common: fix excess of_node_put on parent node when cpts child not found
From: WenTao Liang @ 2026-06-26 15:29 UTC (permalink / raw)
To: Siddharth Vadapalli, Roger Quadros, netdev
Cc: Andrew Lunn, David S . Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, linux-omap, stable, linux-kernel, WenTao Liang
When no "cpts" child node exists in the device tree, cpts_node is
assigned cpsw->dev->of_node without taking a reference via of_node_get.
The function then unconditionally calls of_node_put(cpts_node) at the
end, causing an excess put on the parent device node which can lead to a
refcount underflow.
Use of_node_get when falling back to the parent node to ensure the
reference count is properly balanced with the subsequent of_node_put.
Cc: stable@vger.kernel.org
Fixes: ed3525eda4c4 ("net: ethernet: ti: introduce cpsw switchdev based driver part 1 - dual-emac")
Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
---
drivers/net/ethernet/ti/cpsw_priv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/ti/cpsw_priv.c b/drivers/net/ethernet/ti/cpsw_priv.c
index 1f6f374551cb..b20567f96d78 100644
--- a/drivers/net/ethernet/ti/cpsw_priv.c
+++ b/drivers/net/ethernet/ti/cpsw_priv.c
@@ -553,7 +553,7 @@ int cpsw_init_common(struct cpsw_common *cpsw, void __iomem *ss_regs,
cpts_node = of_get_child_by_name(cpsw->dev->of_node, "cpts");
if (!cpts_node)
- cpts_node = cpsw->dev->of_node;
+ cpts_node = of_node_get(cpsw->dev->of_node);
cpsw->cpts = cpts_create(cpsw->dev, cpts_regs, cpts_node,
CPTS_N_ETX_TS);
--
2.39.5 (Apple Git-154)
^ permalink raw reply related
* [PATCH] fix: net: ti: cpsw_probe_dt: fix phy_node reference leak on error paths
From: WenTao Liang @ 2026-06-26 15:29 UTC (permalink / raw)
To: Siddharth Vadapalli, Roger Quadros, netdev
Cc: Andrew Lunn, David S . Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, linux-omap, stable, linux-kernel, WenTao Liang
After slave_data->phy_node is assigned (via of_node_get or
of_parse_phandle), if subsequent calls like of_get_phy_mode or
ti_cm_get_macid fail, the error path jumps to err_node_put which only
releases the loop's port_np reference but not the phy_node reference.
This causes a device_node reference leak.
Release slave_data->phy_node via of_node_put before jumping to
err_node_put on error paths after phy_node has been acquired.
Cc: stable@vger.kernel.org
Fixes: ed3525eda4c4 ("net: ethernet: ti: introduce cpsw switchdev based driver part 1 - dual-emac")
Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
---
drivers/net/ethernet/ti/cpsw_new.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/ti/cpsw_new.c b/drivers/net/ethernet/ti/cpsw_new.c
index c5be359f3c66..9f90d5a9d39f 100644
--- a/drivers/net/ethernet/ti/cpsw_new.c
+++ b/drivers/net/ethernet/ti/cpsw_new.c
@@ -1337,6 +1337,7 @@ static int cpsw_probe_dt(struct cpsw_common *cpsw)
if (ret) {
dev_err(dev, "%pOF read phy-mode err %d\n",
port_np, ret);
+ of_node_put(slave_data->phy_node);
goto err_node_put;
}
@@ -1344,8 +1345,10 @@ static int cpsw_probe_dt(struct cpsw_common *cpsw)
if (ret) {
ret = ti_cm_get_macid(dev, port_id - 1,
slave_data->mac_addr);
- if (ret)
+ if (ret) {
+ of_node_put(slave_data->phy_node);
goto err_node_put;
+ }
}
if (of_property_read_u32(port_np, "ti,dual-emac-pvid",
--
2.39.5 (Apple Git-154)
^ permalink raw reply related
* [PATCH] ARM: dts: ti: Fix typos in comments
From: Vidhu Sarwal @ 2026-06-26 11:17 UTC (permalink / raw)
To: Bartosz Golaszewski, Tony Lindgren, Aaro Koskinen,
Andreas Kemnade, Kevin Hilman, Roger Quadros
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-omap,
linux-arm-kernel, devicetree, linux-kernel, skhan, Vidhu Sarwal
Fix comment typos found with codespell across DaVinci and OMAP
board files:
limitaion -> limitation
swithes -> switches
converstion -> conversion
differnet -> different
Signed-off-by: Vidhu Sarwal <vidhu.linux@gmail.com>
---
arch/arm/boot/dts/ti/davinci/da850-lcdk.dts | 2 +-
arch/arm/boot/dts/ti/omap/am3517-evm.dts | 2 +-
arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts | 2 +-
arch/arm/boot/dts/ti/omap/omap4-panda-es.dts | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/ti/davinci/da850-lcdk.dts b/arch/arm/boot/dts/ti/davinci/da850-lcdk.dts
index 8390d71b000a..e70edd5274fe 100644
--- a/arch/arm/boot/dts/ti/davinci/da850-lcdk.dts
+++ b/arch/arm/boot/dts/ti/davinci/da850-lcdk.dts
@@ -366,7 +366,7 @@ nand@2000000,0 {
* to NAND block 1 (NAND block 0 is not used by default)".
* The same doc mentions that for ROM "Silicon Revision 2.1",
* "Updated NAND boot mode to offer boot from block 0 or block 1".
- * However the limitaion is left here by default for compatibility
+ * However the limitation is left here by default for compatibility
* with older silicon and because it needs new boot pin settings
* not possible in stock LCDK.
*/
diff --git a/arch/arm/boot/dts/ti/omap/am3517-evm.dts b/arch/arm/boot/dts/ti/omap/am3517-evm.dts
index 40f15da81043..a4357fa9f006 100644
--- a/arch/arm/boot/dts/ti/omap/am3517-evm.dts
+++ b/arch/arm/boot/dts/ti/omap/am3517-evm.dts
@@ -213,7 +213,7 @@ &i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
clock-frequency = <400000>;
- /* User DIP swithes [1:8] / User LEDS [1:2] */
+ /* User DIP switches [1:8] / User LEDS [1:2] */
tca6416: gpio@21 {
compatible = "ti,tca6416";
reg = <0x21>;
diff --git a/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts b/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts
index 43cf4ade950b..76bfb364777e 100644
--- a/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts
+++ b/arch/arm/boot/dts/ti/omap/am5729-beagleboneai.dts
@@ -420,7 +420,7 @@ stmpe811@41 {
st,mod-12b = <1>; /* 12-bit ADC */
st,ref-sel = <0>; /* internal ADC reference */
st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */
- st,sample-time = <4>; /* ADC converstion time: 80 clocks */
+ st,sample-time = <4>; /* ADC conversion time: 80 clocks */
stmpe_adc {
compatible = "st,stmpe-adc";
diff --git a/arch/arm/boot/dts/ti/omap/omap4-panda-es.dts b/arch/arm/boot/dts/ti/omap/omap4-panda-es.dts
index a933fe560834..70c609811d11 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-panda-es.dts
+++ b/arch/arm/boot/dts/ti/omap/omap4-panda-es.dts
@@ -12,7 +12,7 @@ / {
compatible = "ti,omap4-panda-es", "ti,omap4-panda", "ti,omap4460", "ti,omap4430", "ti,omap4";
};
-/* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
+/* Audio routing is different between PandaBoard4430 and PandaBoardES */
&sound {
ti,model = "PandaBoardES";
--
2.53.0
^ permalink raw reply related
* [PATCH] clk: ti: adpll: unregister OF clock provider on remove
From: Myeonghun Pak @ 2026-06-26 9:41 UTC (permalink / raw)
To: Tero Kristo, Michael Turquette, Stephen Boyd
Cc: linux-omap, linux-clk, linux-kernel, Myeonghun Pak, Ijae Kim
ti_adpll_probe() registers the driver's onecell clock provider with
of_clk_add_provider(). The remove path only frees the clock resources,
leaving the provider registered after the backing data has been torn
down.
Unregister the OF clock provider before freeing the ADPLL resources so
the provider no longer points at released driver data after device
removal.
Fixes: 21330497f303 ("clk: ti: Add support for dm814x ADPLL")
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
---
drivers/clk/ti/adpll.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/clk/ti/adpll.c b/drivers/clk/ti/adpll.c
index e305fcb..0c22e33 100644
--- a/drivers/clk/ti/adpll.c
+++ b/drivers/clk/ti/adpll.c
@@ -925,6 +925,7 @@ static void ti_adpll_remove(struct platform_device *pdev)
{
struct ti_adpll_data *d = dev_get_drvdata(&pdev->dev);
+ of_clk_del_provider(d->np);
ti_adpll_free_resources(d);
}
--
2.53.0
^ permalink raw reply related
* [PATCH] ARM: dts: am33xx: avoid invalid OCP device-link for timers
From: Wagner Popov dos Santos @ 2026-06-25 12:55 UTC (permalink / raw)
To: AaroKoskinenaaro.koskinen
Cc: AndreasKemnadeandreas, KevinHilmankhilman, RogerQuadrosrogerq,
TonyLindgrentony, RobHerringrobh, KrzysztofKozlowskikrzk+dt,
ConorDooleyconor+dt, linux-omap, devicetree, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 0 bytes --]
[-- Attachment #2: 0001-ARM-dts-am33xx-avoid-invalid-OCP-device-link-for-tim.patch --]
[-- Type: text/x-diff, Size: 1829 bytes --]
From 6d482ff72d1a11a5851602717a48eb3e059946d4 Mon Sep 17 00:00:00 2001
From: Wagner Popov dos Santos <wpopov@gmail.com>
Date: Wed, 24 Jun 2026 13:28:02 -0300
Subject: [PATCH] ARM: dts: am33xx: avoid invalid OCP device-link for timers
This patch fixes boot-time fw_devlink errors on AM335x/UCC3 caused
by invalid device-link creation attempts involving timer1/timer2
and supplier ocp.
Observed kernel log messages:
ti-sysc 44e31000.target-module: Failed to create device link (0x180)
with supplier ocp for
/ocp/interconnect@44c00000/segment@200000/target-module@31000/timer@0
ti-sysc 48040000.target-module: Failed to create device link (0x180)
with supplier ocp for
/ocp/interconnect@48000000/segment@0/target-module@40000/timer@0
The change updates dependency handling for timer1 and timer2 so the
kernel no longer attempts this invalid link-creation path during
initialization of supplier ocp.
Impact:
- Removes the two ti-sysc/fw_devlink error messages at boot
- Preserves current timer and clock assignment behavior
- No functional regression observed in boot and timer operation tests
Signed-off-by: Wagner Popov dos Santos <wpopov@gmail.com>
---
arch/arm/boot/dts/ti/omap/am33xx.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/boot/dts/ti/omap/am33xx.dtsi b/arch/arm/boot/dts/ti/omap/am33xx.dtsi
index ca3e7f5d7d0d..760598d5ae1c 100644
--- a/arch/arm/boot/dts/ti/omap/am33xx.dtsi
+++ b/arch/arm/boot/dts/ti/omap/am33xx.dtsi
@@ -708,6 +708,7 @@ &timer1_target {
timer@0 {
assigned-clocks = <&timer1_fck>;
assigned-clock-parents = <&sys_clkin_ck>;
+ post-init-providers = <&ocp>;
};
};
@@ -721,5 +722,6 @@ &timer2_target {
timer@0 {
assigned-clocks = <&timer2_fck>;
assigned-clock-parents = <&sys_clkin_ck>;
+ post-init-providers = <&ocp>;
};
};
--
2.43.0
^ permalink raw reply related
* [PATCH] ARM: dts: omap3: fix #ssize-cells typo in omap34xx-omap36xx-clocks.dtsi
From: Rasmus Villemoes @ 2026-06-25 7:30 UTC (permalink / raw)
To: Tony Lindgren, Aaro Koskinen; +Cc: linux-omap, Rasmus Villemoes
One of the '#size-cells = <0>' lines added in commit
808e65304d18 ("ARM: dts: omap3: Update clksel clocks to use reg
instead of ti,bit-shift") had a trivial typo.
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
arch/arm/boot/dts/ti/omap/omap34xx-omap36xx-clocks.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/ti/omap/omap34xx-omap36xx-clocks.dtsi b/arch/arm/boot/dts/ti/omap/omap34xx-omap36xx-clocks.dtsi
index ca6372711baf..a5ec71b00e57 100644
--- a/arch/arm/boot/dts/ti/omap/omap34xx-omap36xx-clocks.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap34xx-omap36xx-clocks.dtsi
@@ -258,7 +258,7 @@ clock@a18 {
reg = <0xa18>;
#clock-cells = <2>;
#address-cells = <1>;
- #ssize-cells = <0>;
+ #size-cells = <0>;
mad2d_ick: clock-mad2d-ick@3 {
reg = <3>;
--
2.54.0
^ permalink raw reply related
* [PATCH] ARM: OMAP2+: Fix a reference leak bug in omap_hwmod_fix_mpu_rt_idx()
From: Haoxiang Li @ 2026-06-23 7:25 UTC (permalink / raw)
To: paul, aaro.koskinen, andreas, khilman, rogerq, tony, linux
Cc: linux-omap, linux-arm-kernel, linux-kernel, Haoxiang Li, stable
omap_hwmod_fix_mpu_rt_idx() gets the first child node with
of_get_next_child(), which returns a node with its reference count
incremented. The function uses the child node to translate the MPU
runtime register resource, but never drops the reference afterwards.
Add the missing of_node_put() after of_address_to_resource().
Fixes: 1dbcb97c656e ("ARM: OMAP2+: Fix module address for modules using mpu_rt_idx")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
---
arch/arm/mach-omap2/omap_hwmod.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 974107ff18b4..1d7677ca3802 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2176,6 +2176,7 @@ static void omap_hwmod_fix_mpu_rt_idx(struct omap_hwmod *oh,
if (error)
pr_err("%s: error mapping mpu_rt_idx: %i\n",
__func__, error);
+ of_node_put(child);
}
/**
--
2.25.1
^ permalink raw reply related
* Re: [PATCH 2/4] ASoC: ti: omap3pandora: remove
From: H. Nikolaus Schaller @ 2026-06-19 5:12 UTC (permalink / raw)
To: Sascha Hauer
Cc: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Sen Wang, Jarkko Nikula, linux-sound, linux-kernel, linux-omap,
Andreas Kemnade
In-Reply-To: <20260603-asoc-remove-mach-types-h-v1-2-2b9446dff0c1@pengutronix.de>
I found out that the already applied patch
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20260618&id=45efb8fbdae303539e7fb5562e147583d4ed63ad
has the same effect of removing the machine_is_omap3_pandora() dependency with less harm to the code base.
For all others: a modernized rework of the openpandora sound driver based on the existing code is currently being worked on.
> Am 03.06.2026 um 14:09 schrieb Sascha Hauer <s.hauer@pengutronix.de>:
>
> The omap3pandora driver entirely depends on().
> Pandora has been converted to device tree:
>
> 7fcf7e061edd3 ("ARM: OMAP2+: Remove legacy booting support for Pandora")
>
> Since then machine_is_omap3_pandora() always expands to 0. Remove the
> long unused driver.
>
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> sound/soc/ti/Kconfig | 9 --
> sound/soc/ti/Makefile | 2 -
> sound/soc/ti/omap3pandora.c | 290 --------------------------------------------
> 3 files changed, 301 deletions(-)
>
> diff --git a/sound/soc/ti/Kconfig b/sound/soc/ti/Kconfig
> index 3323cf96e3095..e5b165e0fc6cc 100644
> --- a/sound/soc/ti/Kconfig
> +++ b/sound/soc/ti/Kconfig
> @@ -83,15 +83,6 @@ config SND_SOC_NOKIA_RX51
> Say Y or M if you want to add support for SoC audio on Nokia RX-51
> hardware. This is also known as Nokia N900 product.
>
> -config SND_SOC_OMAP3_PANDORA
> - tristate "SoC Audio support for OMAP3 Pandora"
> - depends on ARCH_OMAP3
> - depends on TWL4030_CORE
> - select SND_SOC_OMAP_MCBSP
> - select SND_SOC_TWL4030
> - help
> - Say Y or M if you want to add support for SoC audio on the OMAP3 Pandora.
> -
> config SND_SOC_OMAP3_TWL4030
> tristate "SoC Audio support for OMAP3 based boards with twl4030 codec"
> depends on ARCH_OMAP3 || COMPILE_TEST && COMMON_CLK
> diff --git a/sound/soc/ti/Makefile b/sound/soc/ti/Makefile
> index 421e13bc04dbb..a5f5b284c0e28 100644
> --- a/sound/soc/ti/Makefile
> +++ b/sound/soc/ti/Makefile
> @@ -26,7 +26,6 @@ obj-$(CONFIG_SND_SOC_OMAP_MCPDM) += snd-soc-omap-mcpdm.o
> snd-soc-davinci-evm-y := davinci-evm.o
> snd-soc-n810-y := n810.o
> snd-soc-rx51-y := rx51.o
> -snd-soc-omap3pandora-y := omap3pandora.o
> snd-soc-omap-twl4030-y := omap-twl4030.o
> snd-soc-omap-abe-twl6040-y := omap-abe-twl6040.o
> snd-soc-ams-delta-y := ams-delta.o
> @@ -37,7 +36,6 @@ snd-soc-j721e-evm-y := j721e-evm.o
> obj-$(CONFIG_SND_SOC_DAVINCI_EVM) += snd-soc-davinci-evm.o
> obj-$(CONFIG_SND_SOC_NOKIA_N810) += snd-soc-n810.o
> obj-$(CONFIG_SND_SOC_NOKIA_RX51) += snd-soc-rx51.o
> -obj-$(CONFIG_SND_SOC_OMAP3_PANDORA) += snd-soc-omap3pandora.o
> obj-$(CONFIG_SND_SOC_OMAP3_TWL4030) += snd-soc-omap-twl4030.o
> obj-$(CONFIG_SND_SOC_OMAP_ABE_TWL6040) += snd-soc-omap-abe-twl6040.o
> obj-$(CONFIG_SND_SOC_OMAP_AMS_DELTA) += snd-soc-ams-delta.o
> diff --git a/sound/soc/ti/omap3pandora.c b/sound/soc/ti/omap3pandora.c
> deleted file mode 100644
> index f11b1d8a1306c..0000000000000
> --- a/sound/soc/ti/omap3pandora.c
> +++ /dev/null
> @@ -1,290 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-only
> -/*
> - * omap3pandora.c -- SoC audio for Pandora Handheld Console
> - *
> - * Author: Gražvydas Ignotas <notasas@gmail.com>
> - */
> -
> -#include <linux/clk.h>
> -#include <linux/platform_device.h>
> -#include <linux/gpio/consumer.h>
> -#include <linux/delay.h>
> -#include <linux/regulator/consumer.h>
> -#include <linux/module.h>
> -
> -#include <sound/core.h>
> -#include <sound/pcm.h>
> -#include <sound/soc.h>
> -
> -#include <asm/mach-types.h>
> -#include <linux/platform_data/asoc-ti-mcbsp.h>
> -
> -#include "omap-mcbsp.h"
> -
> -#define PREFIX "ASoC omap3pandora: "
> -
> -static struct regulator *omap3pandora_dac_reg;
> -static struct gpio_desc *dac_power_gpio;
> -static struct gpio_desc *amp_power_gpio;
> -
> -static int omap3pandora_hw_params(struct snd_pcm_substream *substream,
> - struct snd_pcm_hw_params *params)
> -{
> - struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
> - struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, 0);
> - struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);
> - int ret;
> -
> - /* Set the codec system clock for DAC and ADC */
> - ret = snd_soc_dai_set_sysclk(codec_dai, 0, 26000000,
> - SND_SOC_CLOCK_IN);
> - if (ret < 0) {
> - pr_err(PREFIX "can't set codec system clock\n");
> - return ret;
> - }
> -
> - /* Set McBSP clock to external */
> - ret = snd_soc_dai_set_sysclk(cpu_dai, OMAP_MCBSP_SYSCLK_CLKS_EXT,
> - 256 * params_rate(params),
> - SND_SOC_CLOCK_IN);
> - if (ret < 0) {
> - pr_err(PREFIX "can't set cpu system clock\n");
> - return ret;
> - }
> -
> - ret = snd_soc_dai_set_clkdiv(cpu_dai, OMAP_MCBSP_CLKGDV, 8);
> - if (ret < 0) {
> - pr_err(PREFIX "can't set SRG clock divider\n");
> - return ret;
> - }
> -
> - return 0;
> -}
> -
> -static int omap3pandora_dac_event(struct snd_soc_dapm_widget *w,
> - struct snd_kcontrol *k, int event)
> -{
> - int ret;
> -
> - /*
> - * The PCM1773 DAC datasheet requires 1ms delay between switching
> - * VCC power on/off and /PD pin high/low
> - */
> - if (SND_SOC_DAPM_EVENT_ON(event)) {
> - struct device *dev = snd_soc_dapm_to_dev(w->dapm);
> -
> - ret = regulator_enable(omap3pandora_dac_reg);
> - if (ret) {
> - dev_err(dev, "Failed to power DAC: %d\n", ret);
> - return ret;
> - }
> - mdelay(1);
> - gpiod_set_value(dac_power_gpio, 1);
> - } else {
> - gpiod_set_value(dac_power_gpio, 0);
> - mdelay(1);
> - regulator_disable(omap3pandora_dac_reg);
> - }
> -
> - return 0;
> -}
> -
> -static int omap3pandora_hp_event(struct snd_soc_dapm_widget *w,
> - struct snd_kcontrol *k, int event)
> -{
> - if (SND_SOC_DAPM_EVENT_ON(event))
> - gpiod_set_value(amp_power_gpio, 1);
> - else
> - gpiod_set_value(amp_power_gpio, 0);
> -
> - return 0;
> -}
> -
> -/*
> - * Audio paths on Pandora board:
> - *
> - * |O| ---> PCM DAC +-> AMP -> Headphone Jack
> - * |M| A +--------> Line Out
> - * |A| <~~clk~~+
> - * |P| <--- TWL4030 <--------- Line In and MICs
> - */
> -static const struct snd_soc_dapm_widget omap3pandora_dapm_widgets[] = {
> - SND_SOC_DAPM_DAC_E("PCM DAC", "HiFi Playback", SND_SOC_NOPM,
> - 0, 0, omap3pandora_dac_event,
> - SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
> - SND_SOC_DAPM_PGA_E("Headphone Amplifier", SND_SOC_NOPM,
> - 0, 0, NULL, 0, omap3pandora_hp_event,
> - SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
> - SND_SOC_DAPM_HP("Headphone Jack", NULL),
> - SND_SOC_DAPM_LINE("Line Out", NULL),
> -
> - SND_SOC_DAPM_MIC("Mic (internal)", NULL),
> - SND_SOC_DAPM_MIC("Mic (external)", NULL),
> - SND_SOC_DAPM_LINE("Line In", NULL),
> -};
> -
> -static const struct snd_soc_dapm_route omap3pandora_map[] = {
> - {"PCM DAC", NULL, "APLL Enable"},
> - {"Headphone Amplifier", NULL, "PCM DAC"},
> - {"Line Out", NULL, "PCM DAC"},
> - {"Headphone Jack", NULL, "Headphone Amplifier"},
> -
> - {"AUXL", NULL, "Line In"},
> - {"AUXR", NULL, "Line In"},
> -
> - {"MAINMIC", NULL, "Mic (internal)"},
> - {"Mic (internal)", NULL, "Mic Bias 1"},
> -
> - {"SUBMIC", NULL, "Mic (external)"},
> - {"Mic (external)", NULL, "Mic Bias 2"},
> -};
> -
> -static int omap3pandora_out_init(struct snd_soc_pcm_runtime *rtd)
> -{
> - struct snd_soc_dapm_context *dapm = snd_soc_card_to_dapm(rtd->card);
> -
> - /* All TWL4030 output pins are floating */
> - snd_soc_dapm_disable_pin(dapm, "EARPIECE");
> - snd_soc_dapm_disable_pin(dapm, "PREDRIVEL");
> - snd_soc_dapm_disable_pin(dapm, "PREDRIVER");
> - snd_soc_dapm_disable_pin(dapm, "HSOL");
> - snd_soc_dapm_disable_pin(dapm, "HSOR");
> - snd_soc_dapm_disable_pin(dapm, "CARKITL");
> - snd_soc_dapm_disable_pin(dapm, "CARKITR");
> - snd_soc_dapm_disable_pin(dapm, "HFL");
> - snd_soc_dapm_disable_pin(dapm, "HFR");
> - snd_soc_dapm_disable_pin(dapm, "VIBRA");
> -
> - return 0;
> -}
> -
> -static int omap3pandora_in_init(struct snd_soc_pcm_runtime *rtd)
> -{
> - struct snd_soc_dapm_context *dapm = snd_soc_card_to_dapm(rtd->card);
> -
> - /* Not comnnected */
> - snd_soc_dapm_disable_pin(dapm, "HSMIC");
> - snd_soc_dapm_disable_pin(dapm, "CARKITMIC");
> - snd_soc_dapm_disable_pin(dapm, "DIGIMIC0");
> - snd_soc_dapm_disable_pin(dapm, "DIGIMIC1");
> -
> - return 0;
> -}
> -
> -static const struct snd_soc_ops omap3pandora_ops = {
> - .hw_params = omap3pandora_hw_params,
> -};
> -
> -/* Digital audio interface glue - connects codec <--> CPU */
> -SND_SOC_DAILINK_DEFS(out,
> - DAILINK_COMP_ARRAY(COMP_CPU("omap-mcbsp.2")),
> - DAILINK_COMP_ARRAY(COMP_CODEC("twl4030-codec", "twl4030-hifi")),
> - DAILINK_COMP_ARRAY(COMP_PLATFORM("omap-mcbsp.2")));
> -
> -SND_SOC_DAILINK_DEFS(in,
> - DAILINK_COMP_ARRAY(COMP_CPU("omap-mcbsp.4")),
> - DAILINK_COMP_ARRAY(COMP_CODEC("twl4030-codec", "twl4030-hifi")),
> - DAILINK_COMP_ARRAY(COMP_PLATFORM("omap-mcbsp.4")));
> -
> -static struct snd_soc_dai_link omap3pandora_dai[] = {
> - {
> - .name = "PCM1773",
> - .stream_name = "HiFi Out",
> - .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
> - SND_SOC_DAIFMT_CBC_CFC,
> - .ops = &omap3pandora_ops,
> - .init = omap3pandora_out_init,
> - SND_SOC_DAILINK_REG(out),
> - }, {
> - .name = "TWL4030",
> - .stream_name = "Line/Mic In",
> - .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
> - SND_SOC_DAIFMT_CBC_CFC,
> - .ops = &omap3pandora_ops,
> - .init = omap3pandora_in_init,
> - SND_SOC_DAILINK_REG(in),
> - }
> -};
> -
> -/* SoC card */
> -static struct snd_soc_card snd_soc_card_omap3pandora = {
> - .name = "omap3pandora",
> - .owner = THIS_MODULE,
> - .dai_link = omap3pandora_dai,
> - .num_links = ARRAY_SIZE(omap3pandora_dai),
> -
> - .dapm_widgets = omap3pandora_dapm_widgets,
> - .num_dapm_widgets = ARRAY_SIZE(omap3pandora_dapm_widgets),
> - .dapm_routes = omap3pandora_map,
> - .num_dapm_routes = ARRAY_SIZE(omap3pandora_map),
> -};
> -
> -static struct platform_device *omap3pandora_snd_device;
> -
> -static int __init omap3pandora_soc_init(void)
> -{
> - int ret;
> -
> - if (!machine_is_omap3_pandora())
> - return -ENODEV;
> -
> - pr_info("OMAP3 Pandora SoC init\n");
> -
> - omap3pandora_snd_device = platform_device_alloc("soc-audio", -1);
> - if (omap3pandora_snd_device == NULL) {
> - pr_err(PREFIX "Platform device allocation failed\n");
> - return -ENOMEM;
> - }
> -
> - platform_set_drvdata(omap3pandora_snd_device, &snd_soc_card_omap3pandora);
> -
> - ret = platform_device_add(omap3pandora_snd_device);
> - if (ret) {
> - pr_err(PREFIX "Unable to add platform device\n");
> - goto fail2;
> - }
> -
> - dac_power_gpio = devm_gpiod_get(&omap3pandora_snd_device->dev,
> - "dac", GPIOD_OUT_LOW);
> - if (IS_ERR(dac_power_gpio)) {
> - ret = PTR_ERR(dac_power_gpio);
> - goto fail3;
> - }
> -
> - amp_power_gpio = devm_gpiod_get(&omap3pandora_snd_device->dev,
> - "amp", GPIOD_OUT_LOW);
> - if (IS_ERR(amp_power_gpio)) {
> - ret = PTR_ERR(amp_power_gpio);
> - goto fail3;
> - }
> -
> - omap3pandora_dac_reg = regulator_get(&omap3pandora_snd_device->dev, "vcc");
> - if (IS_ERR(omap3pandora_dac_reg)) {
> - pr_err(PREFIX "Failed to get DAC regulator from %s: %ld\n",
> - dev_name(&omap3pandora_snd_device->dev),
> - PTR_ERR(omap3pandora_dac_reg));
> - ret = PTR_ERR(omap3pandora_dac_reg);
> - goto fail3;
> - }
> -
> - return 0;
> -
> -fail3:
> - platform_device_del(omap3pandora_snd_device);
> -fail2:
> - platform_device_put(omap3pandora_snd_device);
> -
> - return ret;
> -}
> -module_init(omap3pandora_soc_init);
> -
> -static void __exit omap3pandora_soc_exit(void)
> -{
> - regulator_put(omap3pandora_dac_reg);
> - platform_device_unregister(omap3pandora_snd_device);
> -}
> -module_exit(omap3pandora_soc_exit);
> -
> -MODULE_AUTHOR("Grazvydas Ignotas <notasas@gmail.com>");
> -MODULE_DESCRIPTION("ALSA SoC OMAP3 Pandora");
> -MODULE_LICENSE("GPL");
>
> --
> 2.47.3
>
>
^ permalink raw reply
* [PATCH] regulator: palmas: Check return value of palmas_smps_write()
From: Aleksandrova Alyona @ 2026-06-18 11:03 UTC (permalink / raw)
To: Mark Brown
Cc: Liam Girdwood, Tony Lindgren, Graeme Gregory, Laxman Dewangan,
linux-omap, linux-kernel, lvc-project
palmas_set_mode_smps() updates the SMPS mode register when the rail is
enabled, but it ignores a possible error from palmas_smps_write().
Since enable_val is updated after the write, ignoring the error may leave
the cached enable value inconsistent with the hardware state.
Return the error if the register write fails to avoid reporting success
when the mode has not been updated.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 51d3a0c999e1 ("regulator: palmas: preserve modes of rails during enable/disable")
Signed-off-by: Aleksandrova Alyona <aga@itb.spb.ru>
---
drivers/regulator/palmas-regulator.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 337dd614695e..fa6dd240015e 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -469,8 +469,11 @@ static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
}
pmic->current_reg_mode[id] = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
- if (rail_enable)
- palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg);
+ if (rail_enable) {
+ ret = palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg);
+ if (ret)
+ return ret;
+ }
/* Switch the enable value to ensure this is used for enable */
pmic->desc[id].enable_val = pmic->current_reg_mode[id];
--
2.26.2
^ permalink raw reply related
* Re: (subset) [PATCH v3 0/3] dt-bindings: mfd: syscon: Tighten checks
From: Lee Jones @ 2026-06-17 15:41 UTC (permalink / raw)
To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Matthias Brugger, AngeloGioacchino Del Regno, Jacky Huang,
Shan-Chun Hung, Geert Uytterhoeven, Magnus Damm, Heiko Stuebner,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, Krzysztof Kozlowski
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-renesas-soc, linux-rockchip, linux-omap
In-Reply-To: <20260608-n-dt-bindings-simple-bus-syscon-v3-0-4eba9ec1212a@oss.qualcomm.com>
On Mon, 08 Jun 2026 22:44:23 +0200, Krzysztof Kozlowski wrote:
> Changes in v3:
> - Drop patch #2:
> dt-bindings: mfd: syscon: Drop unneeded case for syscon + simple-mfd
> - Bump dtschema requirement
> - Link to v2: https://patch.msgid.link/20260608-n-dt-bindings-simple-bus-syscon-v2-0-0203e6c249dc@oss.qualcomm.com
>
> Changes in v2:
> 1. New patches #2 and #3
> 1. Add missing part of patch #1, thus not adding Rob's Ack.
> https://lore.kernel.org/all/20260531110404.12768-3-krzysztof.kozlowski@oss.qualcomm.com/
>
> [...]
Applied, thanks!
[1/3] dt-bindings: mfd: syscon: Disallow simple-bus with syscon
commit: c11c918b40295dcb0ad2460d9534454072386f4c
[2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema
commit: f78049ca80ba2e68f7f46870b0d68eb54a6ce378
--
Lee Jones [李琼斯]
^ permalink raw reply
* [PATCH] ARM: omap2plus_defconfig: enable things required by iwd
From: Andreas Kemnade @ 2026-06-16 17:51 UTC (permalink / raw)
To: aaro.koskinen, andreas, khilman, rogerq, tony, linux, linux-omap,
linux-arm-kernel, linux-kernel
Several crypto related things are missing for opreation of iwd, turn
them on according to the list being printed out.
:~# /usr/libexec/iwd &
:~# No HMAC(SHA1) support found
No HMAC(MD5) support found
No CMAC(AES) support found
No HMAC(SHA256) support not found
No HMAC(SHA512) support found, certain TLS connections might fail
DES support not found
AES support not found
No CBC(DES3_EDE) support found, certain TLS connections might fail
No CBC(AES) support found, WPS will not be available
No Diffie-Hellman support found, WPS will not be available
The following options are missing in the kernel:
CONFIG_CRYPTO_USER_API_HASH
CONFIG_CRYPTO_USER_API_SKCIPHER
CONFIG_KEY_DH_OPERATIONS
CONFIG_CRYPTO_ECB
CONFIG_CRYPTO_MD5
CONFIG_CRYPTO_CBC
CONFIG_CRYPTO_SHA256
CONFIG_CRYPTO_AES
CONFIG_CRYPTO_DES
CONFIG_CRYPTO_CMAC
CONFIG_CRYPTO_HMAC
CONFIG_CRYPTO_SHA512
CONFIG_CRYPTO_SHA1
Apparently missing USER_API_SKCIPHER did also
hide some things for iwd.
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
arch/arm/configs/omap2plus_defconfig | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index ad5ae1636dee..fa6fb8b27f93 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -257,6 +257,9 @@ CONFIG_RXKAD=y
CONFIG_CFG80211=m
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=m
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_GPIO=m
CONFIG_PCI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_DRA7XX_EP=y
@@ -703,7 +706,15 @@ CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
+CONFIG_KEY_DH_OPERATIONS=y
CONFIG_SECURITY=y
+CONFIG_CRYPTO_DH_RFC7919_GROUPS=y
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_GHASH_ARM_CE=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_ARM_BS=m
--
2.47.3
^ permalink raw reply related
* Re: [PATCH v1] bus: ti-sysc: Fix /chosen node reference leak
From: Andreas Kemnade @ 2026-06-16 17:55 UTC (permalink / raw)
To: Yuho Choi
Cc: Aaro Koskinen, Kevin Hilman, Roger Quadros, Tony Lindgren,
linux-omap, linux-kernel
In-Reply-To: <20260615200540.770205-1-dbgh9129@gmail.com>
On Mon, 15 Jun 2026 16:05:40 -0400
Yuho Choi <dbgh9129@gmail.com> wrote:
> sysc_init_stdout_path() gets the /chosen node with
> of_find_node_by_path() to read stdout-path. The function then overwrites
> the local node pointer with the stdout-path lookup result, or exits on
> error, without dropping the /chosen reference.
>
> Keep the /chosen node in a separate variable and put it after the
> stdout-path value has been used for the lookup. The successful stdout
> node lookup remains referenced by the cached stdout_path pointer.
>
> Fixes: 3bb37c8e6e6a ("bus: ti-sysc: Handle stdout-path for debug console")
> Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
Reviewed-by: Andreas Kemnade <andreas@kemnade.info>
^ permalink raw reply
* [PATCH v1] bus: ti-sysc: Fix /chosen node reference leak
From: Yuho Choi @ 2026-06-15 20:05 UTC (permalink / raw)
To: Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren
Cc: linux-omap, linux-kernel, Yuho Choi
sysc_init_stdout_path() gets the /chosen node with
of_find_node_by_path() to read stdout-path. The function then overwrites
the local node pointer with the stdout-path lookup result, or exits on
error, without dropping the /chosen reference.
Keep the /chosen node in a separate variable and put it after the
stdout-path value has been used for the lookup. The successful stdout
node lookup remains referenced by the cached stdout_path pointer.
Fixes: 3bb37c8e6e6a ("bus: ti-sysc: Handle stdout-path for debug console")
Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
---
drivers/bus/ti-sysc.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index a5b9507de37c..e118b900c9ac 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -682,6 +682,7 @@ static struct device_node *stdout_path;
static void sysc_init_stdout_path(struct sysc *ddata)
{
+ struct device_node *chosen;
struct device_node *np = NULL;
const char *uart;
@@ -691,15 +692,18 @@ static void sysc_init_stdout_path(struct sysc *ddata)
if (stdout_path)
return;
- np = of_find_node_by_path("/chosen");
- if (!np)
+ chosen = of_find_node_by_path("/chosen");
+ if (!chosen)
goto err;
- uart = of_get_property(np, "stdout-path", NULL);
- if (!uart)
+ uart = of_get_property(chosen, "stdout-path", NULL);
+ if (!uart) {
+ of_node_put(chosen);
goto err;
+ }
np = of_find_node_by_path(uart);
+ of_node_put(chosen);
if (!np)
goto err;
--
2.43.0
^ permalink raw reply related
* Re: [PATCH 05/10] [v2] mips: select legacy gpiolib interfaces where used
From: Thomas Bogendoerfer @ 2026-06-15 10:33 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-gpio, linux-kernel, Arnd Bergmann, Christian Lamparter,
Johannes Berg, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
Roger Quadros, Tony Lindgren, John Paul Adrian Glaubitz,
Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, x86,
H. Peter Anvin, Linus Walleij, Bartosz Golaszewski,
Dmitry Torokhov, Lee Jones, Pavel Machek, Matti Vaittinen,
Florian Fainelli, Jonas Gorski, Andrew Lunn, Vladimir Oltean,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
linux-wireless, linux-omap, linux-arm-kernel, linux-mips,
linux-sh, linux-input, linux-leds, netdev, Bartosz Golaszewski
In-Reply-To: <20260520183815.2510387-6-arnd@kernel.org>
On Wed, May 20, 2026 at 08:38:10PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> A few old machines have not been converted away from the old-style
> gpiolib interfaces. Make these select the new CONFIG_GPIOLIB_LEGACY
> symbol so the code still works where it is needed but can be left
> out otherwise.
>
> This is the list of all gpio_request() calls in mips:
>
> arch/mips/alchemy/devboards/db1000.c: gpio_request(19, "sd0_cd");
> arch/mips/alchemy/devboards/db1000.c: gpio_request(20, "sd1_cd");
> arch/mips/alchemy/devboards/db1200.c: gpio_request(215, "otg-vbus");
> arch/mips/bcm47xx/workarounds.c: err = gpio_request_one(usb_power, GPIOF_OUT_INIT_HIGH, "usb_power");
> arch/mips/bcm63xx/boards/board_bcm963xx.c: gpio_request_one(board.ephy_reset_gpio,
> arch/mips/txx9/rbtx4927/setup.c: gpio_request(15, "sio-dtr");
>
> Most of these should be easy enough to change to modern gpio descriptors
> or remove if they are no longer in use.
>
> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> Reviewed-by: Linus Walleij <linusw@kernel.org>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> v2: no changes. There was no discussion on this, but the patch
> has so far not made it into the linux-mips tree, so I'm including
> it for completeness.
> ---
> arch/mips/Kconfig | 5 +++++
> arch/mips/alchemy/Kconfig | 1 -
> arch/mips/txx9/Kconfig | 1 +
> 3 files changed, 6 insertions(+), 1 deletion(-)
applied to mips-next
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
^ permalink raw reply
* Re: [PATCH v3 1/3] dt-bindings: mfd: syscon: Disallow simple-bus with syscon
From: Rob Herring (Arm) @ 2026-06-12 16:22 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Roger Quadros, linux-omap, Andreas Kemnade, Kevin Hilman,
Jacky Huang, Tony Lindgren, linux-rockchip, Conor Dooley,
Lee Jones, Heiko Stuebner, AngeloGioacchino Del Regno,
Matthias Brugger, Krzysztof Kozlowski, devicetree, Shan-Chun Hung,
linux-kernel, linux-renesas-soc, Magnus Damm, Geert Uytterhoeven,
Aaro Koskinen, linux-arm-kernel, linux-mediatek
In-Reply-To: <20260608-n-dt-bindings-simple-bus-syscon-v3-1-4eba9ec1212a@oss.qualcomm.com>
On Mon, 08 Jun 2026 22:44:24 +0200, Krzysztof Kozlowski wrote:
> "syscon" is a system controller with registers having their own
> functions, thus not really a trivial MMIO simple bus. "simple-bus" on
> the other hand is just a bus on which multiple devices sit and the
> "simple" means no functions are allowed here.
>
> Combination of both "syscon" and "simple-bus" is abuse of DT for easier
> instantiating of Linux device drivers so add a schema to disallow that.
>
> Unfortunately there are a few old cases of that patterns, so add
> exceptions:
>
> 1. "cznic,turris1x-cpld" and "img,pistachio-cr-periph" are already used
> in upstream DTS.
>
> 2. TI has several DTSI with a child of SCM device (e.g. "ti,am3-scm")
> using "syscon" and "simple-bus" but without a dedicated compatible
> documented anywhere. Add new compatibles for such cases.
>
> Additionally, add comments around code enforcing two or three
> compatibles: it is similar safeguard detecting incorrect bindings.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
>
> ---
>
> Changes in v3:
> 1. s/ti,omap5-scm-conf/ti,omap5-sysc-padconf-global/ because it is more
> appropriate (specific)
> 2. Add comments, why simple-mfd+syscon has dedicated if:then:
>
> Changes in v2:
> 1. Complete patch. I accidentally sent only part of it, built on top of
> internal WIP which I forgot to squash.
> I received Ack from Rob, but change is significant, so please kindly
> re-review.
> ---
> .../devicetree/bindings/mfd/syscon-common.yaml | 34 ++++++++++++++++++++++
> 1 file changed, 34 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply
* Re: [PATCH v3 2/3] dt-bindings: mfd: syscon: Drop custom select for older dtschema
From: Rob Herring @ 2026-06-11 16:31 UTC (permalink / raw)
To: Conor Dooley
Cc: Krzysztof Kozlowski, Lee Jones, Krzysztof Kozlowski, Conor Dooley,
Matthias Brugger, AngeloGioacchino Del Regno, Jacky Huang,
Shan-Chun Hung, Geert Uytterhoeven, Magnus Damm, Heiko Stuebner,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, linux-renesas-soc, linux-rockchip, linux-omap
In-Reply-To: <20260609-vertical-antarctic-e18a7ec91685@spud>
On Tue, Jun 09, 2026 at 05:28:21PM +0100, Conor Dooley wrote:
> On Mon, Jun 08, 2026 at 10:44:25PM +0200, Krzysztof Kozlowski wrote:
> > Older dtschema <2024.02 required custom select to avoid applying this
> > binding to anything having "syscon" compatible. That's not the case
> > anymore and this additional select has two headaches:
> >
> > 1. Duplicates all the compatibles listed in the schema.
> >
> > 2. Is error-prone, because it requires contributor to add the compatible
> > in two places, otherwise the schema will be silently ignored.
> > The select list already misses mentioning compatibles:
> > mediatek,mt8365-infracfg-nao and renesas,r9a08g046-lvds-cmn (with the
> > latter being reverted for different reasons).
> >
> > This requires bumping minimum dtschema requirement to v2024.04, which
> > feels old enough to be a safe requirement.
>
> I agree, seems reasonable enough given it's a jump from 2023.09 and not
> some large jump.
> The diff is nice too!
> I assume Rob will be taking it, but just in case..
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
I expect Lee to take this. I suspect syscon.yaml has other conflicting
changes.
Rob
^ permalink raw reply
* Re: [PATCH 1/3] dt-bindings: interrupt-controller: ti,irq-crossbar: Convert to DT schema
From: Bhargav Joshi @ 2026-06-11 7:39 UTC (permalink / raw)
To: Rob Herring
Cc: Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Sricharan R,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, devicetree, linux-kernel, linux-omap, goledhruva,
m-chawdhry, daniel.baluta, simona.toaca
In-Reply-To: <CAL_Jsq+G83JxXLCL+4jhjTsTKpDSqNde=X2Yzjsg+VSS2iGxtw@mail.gmail.com>
Hi,
On Thu, Jun 11, 2026 at 4:32 AM Rob Herring <robh@kernel.org> wrote:
>
> On Wed, Jun 10, 2026 at 4:12 PM Bhargav Joshi <j.bhargav.u@gmail.com> wrote:
> >
> > Hi,
> >
> > On Thu, Jun 11, 2026 at 1:27 AM Rob Herring <robh@kernel.org> wrote:
> > >
> > > On Sat, Jun 06, 2026 at 02:26:10AM +0530, Bhargav Joshi wrote:
> > > > Convert TI irq-crossbar binding from text format to DT schema.
> > > >
> > > > As part of conversion following changes are made:
> > > > - Add '#interrupt-cells' as a required property which was missing in
> > > > text binding
> > > > - As irq-crossbar is interrupt-controller. Move binding from
> > > > bindings/arm/omap to bindings/interrupt-controller
> > > > - property ti,irqs-reserved is defined and used as a array but other
> > > > binding ti,pruss-intc.yaml uses same property name as a unit8 bitmask
> > > > which causes erros in dt_binding_check. Update ti,irqs-reserved
> > > > property name to ti,crossbar-irqs-reserved to resolve duplicate naming.
> > >
> > > Defining a new property breaks the ABI. We will need to fix dtschema to
> > > handle it. What's the error?
> > property irqs-reserved is defined in two bindings with different types which
> > causes dt_binding_check to raise following errors:
> > - File "/lib/python3.14/site-packages/dtschema/validator.py", line
> > 522, in check_duplicate_property_types
> > - print(f"{self.schemas[sch_id]['$filename']}: {p}: multiple
> > incompatible types: {v['type']}", file=sys.stderr)
> > - KeyError: 'http://devicetree.org/schemas/interrupt-controller/ti,pruss-intc.yaml#'
> > dtschema version: 2026.4
>
> I pushed a change to dtschema main branch which should fix this.
Thanks, error resolved on 2026.5.dev11+g0d16008e3 , I'll send v2 without the
property name change.
>
> Rob
Best Regards,
Bhargav
^ permalink raw reply
* Re: [PATCH 1/3] dt-bindings: interrupt-controller: ti,irq-crossbar: Convert to DT schema
From: Rob Herring @ 2026-06-10 23:01 UTC (permalink / raw)
To: Bhargav Joshi
Cc: Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Sricharan R,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, devicetree, linux-kernel, linux-omap, goledhruva,
m-chawdhry, daniel.baluta, simona.toaca
In-Reply-To: <CAOWyW_4kRcZWCyOjJrWvnZ8meKT-ryJuGozuPvKJgPSUStB3Pg@mail.gmail.com>
On Wed, Jun 10, 2026 at 4:12 PM Bhargav Joshi <j.bhargav.u@gmail.com> wrote:
>
> Hi,
>
> On Thu, Jun 11, 2026 at 1:27 AM Rob Herring <robh@kernel.org> wrote:
> >
> > On Sat, Jun 06, 2026 at 02:26:10AM +0530, Bhargav Joshi wrote:
> > > Convert TI irq-crossbar binding from text format to DT schema.
> > >
> > > As part of conversion following changes are made:
> > > - Add '#interrupt-cells' as a required property which was missing in
> > > text binding
> > > - As irq-crossbar is interrupt-controller. Move binding from
> > > bindings/arm/omap to bindings/interrupt-controller
> > > - property ti,irqs-reserved is defined and used as a array but other
> > > binding ti,pruss-intc.yaml uses same property name as a unit8 bitmask
> > > which causes erros in dt_binding_check. Update ti,irqs-reserved
> > > property name to ti,crossbar-irqs-reserved to resolve duplicate naming.
> >
> > Defining a new property breaks the ABI. We will need to fix dtschema to
> > handle it. What's the error?
> property irqs-reserved is defined in two bindings with different types which
> causes dt_binding_check to raise following errors:
> - File "/lib/python3.14/site-packages/dtschema/validator.py", line
> 522, in check_duplicate_property_types
> - print(f"{self.schemas[sch_id]['$filename']}: {p}: multiple
> incompatible types: {v['type']}", file=sys.stderr)
> - KeyError: 'http://devicetree.org/schemas/interrupt-controller/ti,pruss-intc.yaml#'
> dtschema version: 2026.4
I pushed a change to dtschema main branch which should fix this.
Rob
^ permalink raw reply
* Re: [PATCH 1/3] dt-bindings: interrupt-controller: ti,irq-crossbar: Convert to DT schema
From: Bhargav Joshi @ 2026-06-10 21:12 UTC (permalink / raw)
To: Rob Herring
Cc: Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Sricharan R,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, devicetree, linux-kernel, linux-omap, goledhruva,
m-chawdhry, daniel.baluta, simona.toaca
In-Reply-To: <20260610195658.GA702518-robh@kernel.org>
Hi,
On Thu, Jun 11, 2026 at 1:27 AM Rob Herring <robh@kernel.org> wrote:
>
> On Sat, Jun 06, 2026 at 02:26:10AM +0530, Bhargav Joshi wrote:
> > Convert TI irq-crossbar binding from text format to DT schema.
> >
> > As part of conversion following changes are made:
> > - Add '#interrupt-cells' as a required property which was missing in
> > text binding
> > - As irq-crossbar is interrupt-controller. Move binding from
> > bindings/arm/omap to bindings/interrupt-controller
> > - property ti,irqs-reserved is defined and used as a array but other
> > binding ti,pruss-intc.yaml uses same property name as a unit8 bitmask
> > which causes erros in dt_binding_check. Update ti,irqs-reserved
> > property name to ti,crossbar-irqs-reserved to resolve duplicate naming.
>
> Defining a new property breaks the ABI. We will need to fix dtschema to
> handle it. What's the error?
property irqs-reserved is defined in two bindings with different types which
causes dt_binding_check to raise following errors:
- File "/lib/python3.14/site-packages/dtschema/validator.py", line
522, in check_duplicate_property_types
- print(f"{self.schemas[sch_id]['$filename']}: {p}: multiple
incompatible types: {v['type']}", file=sys.stderr)
- KeyError: 'http://devicetree.org/schemas/interrupt-controller/ti,pruss-intc.yaml#'
dtschema version: 2026.4
>
> Rob
Best Regards,
Bhargav
^ permalink raw reply
* Re: [PATCH 1/3] dt-bindings: interrupt-controller: ti,irq-crossbar: Convert to DT schema
From: Rob Herring @ 2026-06-10 19:56 UTC (permalink / raw)
To: Bhargav Joshi
Cc: Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Sricharan R,
Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros,
Tony Lindgren, devicetree, linux-kernel, linux-omap, goledhruva,
m-chawdhry, daniel.baluta, simona.toaca
In-Reply-To: <20260606-crossbar-v1-1-f67f7cb9ee50@gmail.com>
On Sat, Jun 06, 2026 at 02:26:10AM +0530, Bhargav Joshi wrote:
> Convert TI irq-crossbar binding from text format to DT schema.
>
> As part of conversion following changes are made:
> - Add '#interrupt-cells' as a required property which was missing in
> text binding
> - As irq-crossbar is interrupt-controller. Move binding from
> bindings/arm/omap to bindings/interrupt-controller
> - property ti,irqs-reserved is defined and used as a array but other
> binding ti,pruss-intc.yaml uses same property name as a unit8 bitmask
> which causes erros in dt_binding_check. Update ti,irqs-reserved
> property name to ti,crossbar-irqs-reserved to resolve duplicate naming.
Defining a new property breaks the ABI. We will need to fix dtschema to
handle it. What's the error?
Rob
^ permalink raw reply
* Re: [PATCH v7 0/3] Add support for ICSSM Ethernet on AM57x, AM437x, and AM335x
From: Kevin Hilman @ 2026-06-09 22:25 UTC (permalink / raw)
To: nm, vigneshr, afd, rogerq, tony, robh, krzk+dt, conor+dt,
richardcochran, aaro.koskinen, andreas, Parvathi Pudi
Cc: linux-omap, devicetree, linux-kernel, netdev, andrew, danishanwar,
pratheesh, j-rameshbabu, praneeth, srk, rogerq, krishna, mohan,
pmohan, basharath
In-Reply-To: <20260428072046.3022679-1-parvathi@couthit.com>
On Tue, 28 Apr 2026 12:47:26 +0530, Parvathi Pudi wrote:
> This series adds support for ICSSM Ethernet on Texas Instruments AM57x,
> AM437x and AM335x platforms.
>
> The AM57x and AM437x IDKs support two PRU-ICSS instances, each consisting
> of two PRU cores, with each PRU-ICSS instance capable of handling two
> Ethernet ports. For the AM57x platforms, the PRU-ICSS2 node has been added
> to the am57xx-idk-common.dtsi, while for the AM437x platform, the PRU-ICSS1
> node has been added to the am437x-idk-evm.dts.
>
> [...]
Applied, thanks!
[1/3] arm: dts: ti: Add device tree support for PRU-ICSS on AM57xx
commit: 9c4fc66a770a018062e371d1c8a77184d4c15dad
[2/3] arm: dts: ti: Add device tree support for PRU-ICSS on AM437x
commit: cd080146369be3a1750774eabbb839c45cc9a750
[3/3] arm: dts: ti: Add device tree support for PRU-ICSS on AM335x
commit: 19ab47bb6b96820c28024ebfe674050fa2c54ad5
Best regards,
--
Kevin Hilman (TI) <khilman@baylibre.com>
^ permalink raw reply
page: next (older)
- 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