* [PATCH 1/2] remoteproc: mtk_scp: Simplify with scoped for each OF child loop
@ 2026-01-02 12:48 Krzysztof Kozlowski
2026-01-02 12:48 ` [PATCH 2/2] remoteproc: xlnx_r5: " Krzysztof Kozlowski
2026-01-05 21:33 ` [PATCH 1/2] remoteproc: mtk_scp: " Mathieu Poirier
0 siblings, 2 replies; 3+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-02 12:48 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Matthias Brugger,
AngeloGioacchino Del Regno, linux-remoteproc, linux-kernel,
linux-arm-kernel, linux-mediatek
Cc: Krzysztof Kozlowski
Use scoped for-each loop when iterating over device nodes to make code a
bit simpler.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
drivers/remoteproc/mtk_scp.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index db8fd045468d..328541e62158 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -1287,7 +1287,6 @@ static int scp_add_multi_core(struct platform_device *pdev,
struct device *dev = &pdev->dev;
struct device_node *np = dev_of_node(dev);
struct platform_device *cpdev;
- struct device_node *child;
struct list_head *scp_list = &scp_cluster->mtk_scp_list;
const struct mtk_scp_of_data **cluster_of_data;
struct mtk_scp *scp, *temp;
@@ -1296,11 +1295,10 @@ static int scp_add_multi_core(struct platform_device *pdev,
cluster_of_data = (const struct mtk_scp_of_data **)of_device_get_match_data(dev);
- for_each_available_child_of_node(np, child) {
+ for_each_available_child_of_node_scoped(np, child) {
if (!cluster_of_data[core_id]) {
ret = -EINVAL;
dev_err(dev, "Not support core %d\n", core_id);
- of_node_put(child);
goto init_fail;
}
@@ -1308,7 +1306,6 @@ static int scp_add_multi_core(struct platform_device *pdev,
if (!cpdev) {
ret = -ENODEV;
dev_err(dev, "Not found platform device for core %d\n", core_id);
- of_node_put(child);
goto init_fail;
}
@@ -1317,14 +1314,12 @@ static int scp_add_multi_core(struct platform_device *pdev,
if (IS_ERR(scp)) {
ret = PTR_ERR(scp);
dev_err(dev, "Failed to initialize core %d rproc\n", core_id);
- of_node_put(child);
goto init_fail;
}
ret = rproc_add(scp->rproc);
if (ret) {
dev_err(dev, "Failed to add rproc of core %d\n", core_id);
- of_node_put(child);
scp_free(scp);
goto init_fail;
}
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] remoteproc: xlnx_r5: Simplify with scoped for each OF child loop
2026-01-02 12:48 [PATCH 1/2] remoteproc: mtk_scp: Simplify with scoped for each OF child loop Krzysztof Kozlowski
@ 2026-01-02 12:48 ` Krzysztof Kozlowski
2026-01-05 21:33 ` [PATCH 1/2] remoteproc: mtk_scp: " Mathieu Poirier
1 sibling, 0 replies; 3+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-02 12:48 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Matthias Brugger,
AngeloGioacchino Del Regno, linux-remoteproc, linux-kernel,
linux-arm-kernel, linux-mediatek
Cc: Krzysztof Kozlowski
Use scoped for-each loop when iterating over device nodes to make code a
bit simpler.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
drivers/remoteproc/xlnx_r5_remoteproc.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c b/drivers/remoteproc/xlnx_r5_remoteproc.c
index a7b75235f53e..bd619a6c42aa 100644
--- a/drivers/remoteproc/xlnx_r5_remoteproc.c
+++ b/drivers/remoteproc/xlnx_r5_remoteproc.c
@@ -1271,7 +1271,6 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster)
struct zynqmp_r5_core **r5_cores;
enum rpu_oper_mode fw_reg_val;
struct device **child_devs;
- struct device_node *child;
enum rpu_tcm_comb tcm_mode;
int core_count, ret, i;
struct mbox_info *ipi;
@@ -1350,10 +1349,9 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster)
}
i = 0;
- for_each_available_child_of_node(dev_node, child) {
+ for_each_available_child_of_node_scoped(dev_node, child) {
child_pdev = of_find_device_by_node(child);
if (!child_pdev) {
- of_node_put(child);
ret = -ENODEV;
goto release_r5_cores;
}
@@ -1363,7 +1361,6 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster)
/* create and add remoteproc instance of type struct rproc */
r5_cores[i] = zynqmp_r5_add_rproc_core(&child_pdev->dev);
if (IS_ERR(r5_cores[i])) {
- of_node_put(child);
ret = PTR_ERR(r5_cores[i]);
r5_cores[i] = NULL;
goto release_r5_cores;
@@ -1383,10 +1380,8 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster)
* If two child nodes are available in dts in lockstep mode,
* then ignore second child node.
*/
- if (cluster_mode == LOCKSTEP_MODE) {
- of_node_put(child);
+ if (cluster_mode == LOCKSTEP_MODE)
break;
- }
i++;
}
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] remoteproc: mtk_scp: Simplify with scoped for each OF child loop
2026-01-02 12:48 [PATCH 1/2] remoteproc: mtk_scp: Simplify with scoped for each OF child loop Krzysztof Kozlowski
2026-01-02 12:48 ` [PATCH 2/2] remoteproc: xlnx_r5: " Krzysztof Kozlowski
@ 2026-01-05 21:33 ` Mathieu Poirier
1 sibling, 0 replies; 3+ messages in thread
From: Mathieu Poirier @ 2026-01-05 21:33 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Bjorn Andersson, Matthias Brugger, AngeloGioacchino Del Regno,
linux-remoteproc, linux-kernel, linux-arm-kernel, linux-mediatek
On Fri, Jan 02, 2026 at 01:48:28PM +0100, Krzysztof Kozlowski wrote:
> Use scoped for-each loop when iterating over device nodes to make code a
> bit simpler.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> ---
> drivers/remoteproc/mtk_scp.c | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
I have applied both patches.
Thanks,
Mathieu
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index db8fd045468d..328541e62158 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -1287,7 +1287,6 @@ static int scp_add_multi_core(struct platform_device *pdev,
> struct device *dev = &pdev->dev;
> struct device_node *np = dev_of_node(dev);
> struct platform_device *cpdev;
> - struct device_node *child;
> struct list_head *scp_list = &scp_cluster->mtk_scp_list;
> const struct mtk_scp_of_data **cluster_of_data;
> struct mtk_scp *scp, *temp;
> @@ -1296,11 +1295,10 @@ static int scp_add_multi_core(struct platform_device *pdev,
>
> cluster_of_data = (const struct mtk_scp_of_data **)of_device_get_match_data(dev);
>
> - for_each_available_child_of_node(np, child) {
> + for_each_available_child_of_node_scoped(np, child) {
> if (!cluster_of_data[core_id]) {
> ret = -EINVAL;
> dev_err(dev, "Not support core %d\n", core_id);
> - of_node_put(child);
> goto init_fail;
> }
>
> @@ -1308,7 +1306,6 @@ static int scp_add_multi_core(struct platform_device *pdev,
> if (!cpdev) {
> ret = -ENODEV;
> dev_err(dev, "Not found platform device for core %d\n", core_id);
> - of_node_put(child);
> goto init_fail;
> }
>
> @@ -1317,14 +1314,12 @@ static int scp_add_multi_core(struct platform_device *pdev,
> if (IS_ERR(scp)) {
> ret = PTR_ERR(scp);
> dev_err(dev, "Failed to initialize core %d rproc\n", core_id);
> - of_node_put(child);
> goto init_fail;
> }
>
> ret = rproc_add(scp->rproc);
> if (ret) {
> dev_err(dev, "Failed to add rproc of core %d\n", core_id);
> - of_node_put(child);
> scp_free(scp);
> goto init_fail;
> }
> --
> 2.51.0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-01-05 21:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-02 12:48 [PATCH 1/2] remoteproc: mtk_scp: Simplify with scoped for each OF child loop Krzysztof Kozlowski
2026-01-02 12:48 ` [PATCH 2/2] remoteproc: xlnx_r5: " Krzysztof Kozlowski
2026-01-05 21:33 ` [PATCH 1/2] remoteproc: mtk_scp: " Mathieu Poirier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).