* Re: [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility
2023-09-19 9:23 [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility AngeloGioacchino Del Regno
@ 2023-09-20 13:28 ` Mathieu Poirier
2023-09-20 15:03 ` Laura Nao
2023-09-21 12:51 ` Mathieu Poirier
2 siblings, 0 replies; 6+ messages in thread
From: Mathieu Poirier @ 2023-09-20 13:28 UTC (permalink / raw)
To: AngeloGioacchino Del Regno, wenst, laura.nao, tinghan.shen
Cc: andersson, matthias.bgg, tinghan.shen, linux-remoteproc,
linux-kernel, linux-arm-kernel, linux-mediatek, wenst, kernel
On Tue, Sep 19, 2023 at 11:23:36AM +0200, AngeloGioacchino Del Regno wrote:
> In older devicetrees we had the ChromeOS EC in a node called "cros-ec"
> instead of the newer "cros-ec-rpmsg", but this driver is now checking
> only for the latter, breaking compatibility with those.
>
> Besides, we can check if the SCP is single or dual core by simply
> walking through the children of the main SCP node and checking if
> if there's more than one "mediatek,scp-core" compatible node.
>
> Fixes: 1fdbf0cdde98 ("remoteproc: mediatek: Probe SCP cluster on multi-core SCP")
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
> drivers/remoteproc/mtk_scp.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
I find this patch to be the most appropriate to fix this problem. Laura,
Chen-Yu and Tinghan, please test the patch and reply public with your Testeb-by
tags.
Thanks,
Mathieu
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index ea227b566c54..a35409eda0cf 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -1144,29 +1144,25 @@ static int scp_add_multi_core(struct platform_device *pdev,
> return ret;
> }
>
> -static int scp_is_single_core(struct platform_device *pdev)
> +static bool scp_is_single_core(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> struct device_node *np = dev_of_node(dev);
> struct device_node *child;
> + int num_cores = 0;
>
> - child = of_get_next_available_child(np, NULL);
> - if (!child)
> - return dev_err_probe(dev, -ENODEV, "No child node\n");
> + for_each_child_of_node(np, child)
> + if (of_device_is_compatible(child, "mediatek,scp-core"))
> + num_cores++;
>
> - of_node_put(child);
> - return of_node_name_eq(child, "cros-ec-rpmsg");
> + return num_cores < 2;
> }
>
> static int scp_cluster_init(struct platform_device *pdev, struct mtk_scp_of_cluster *scp_cluster)
> {
> int ret;
>
> - ret = scp_is_single_core(pdev);
> - if (ret < 0)
> - return ret;
> -
> - if (ret)
> + if (scp_is_single_core(pdev))
> ret = scp_add_single_core(pdev, scp_cluster);
> else
> ret = scp_add_multi_core(pdev, scp_cluster);
> --
> 2.42.0
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility
2023-09-19 9:23 [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility AngeloGioacchino Del Regno
2023-09-20 13:28 ` Mathieu Poirier
@ 2023-09-20 15:03 ` Laura Nao
2023-09-21 4:09 ` Chen-Yu Tsai
2023-09-21 7:17 ` AngeloGioacchino Del Regno
2023-09-21 12:51 ` Mathieu Poirier
2 siblings, 2 replies; 6+ messages in thread
From: Laura Nao @ 2023-09-20 15:03 UTC (permalink / raw)
To: angelogioacchino.delregno
Cc: andersson, kernel, linux-arm-kernel, linux-kernel, linux-mediatek,
linux-remoteproc, mathieu.poirier, matthias.bgg, tinghan.shen,
wenst, Laura Nao
On 9/19/23 11:23, AngeloGioacchino Del Regno wrote:
> In older devicetrees we had the ChromeOS EC in a node called "cros-ec"
> instead of the newer "cros-ec-rpmsg", but this driver is now checking
> only for the latter, breaking compatibility with those.
>
> Besides, we can check if the SCP is single or dual core by simply
> walking through the children of the main SCP node and checking if
> if there's more than one "mediatek,scp-core" compatible node.
>
> Fixes: 1fdbf0cdde98 ("remoteproc: mediatek: Probe SCP cluster on multi-core SCP")
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
> drivers/remoteproc/mtk_scp.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
Tested on asurada (spherion) and jacuzzi (juniper). The issue was detected by KernelCI, so:
Reported-by: "kernelci.org bot" <bot@kernelci.org>
Tested-by: Laura Nao <laura.nao@collabora.com>
Thanks!
Laura
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index ea227b566c54..a35409eda0cf 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -1144,29 +1144,25 @@ static int scp_add_multi_core(struct platform_device *pdev,
> return ret;
> }
>
> -static int scp_is_single_core(struct platform_device *pdev)
> +static bool scp_is_single_core(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> struct device_node *np = dev_of_node(dev);
> struct device_node *child;
> + int num_cores = 0;
>
> - child = of_get_next_available_child(np, NULL);
> - if (!child)
> - return dev_err_probe(dev, -ENODEV, "No child node\n");
> + for_each_child_of_node(np, child)
> + if (of_device_is_compatible(child, "mediatek,scp-core"))
> + num_cores++;
>
> - of_node_put(child);
> - return of_node_name_eq(child, "cros-ec-rpmsg");
> + return num_cores < 2;
> }
>
> static int scp_cluster_init(struct platform_device *pdev, struct mtk_scp_of_cluster *scp_cluster)
> {
> int ret;
>
> - ret = scp_is_single_core(pdev);
> - if (ret < 0)
> - return ret;
> -
> - if (ret)
> + if (scp_is_single_core(pdev))
> ret = scp_add_single_core(pdev, scp_cluster);
> else
> ret = scp_add_multi_core(pdev, scp_cluster);
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility
2023-09-20 15:03 ` Laura Nao
@ 2023-09-21 4:09 ` Chen-Yu Tsai
2023-09-21 7:17 ` AngeloGioacchino Del Regno
1 sibling, 0 replies; 6+ messages in thread
From: Chen-Yu Tsai @ 2023-09-21 4:09 UTC (permalink / raw)
To: Laura Nao
Cc: angelogioacchino.delregno, andersson, kernel, linux-arm-kernel,
linux-kernel, linux-mediatek, linux-remoteproc, mathieu.poirier,
matthias.bgg, tinghan.shen
On Wed, Sep 20, 2023 at 11:03 PM Laura Nao <laura.nao@collabora.com> wrote:
>
> On 9/19/23 11:23, AngeloGioacchino Del Regno wrote:
> > In older devicetrees we had the ChromeOS EC in a node called "cros-ec"
> > instead of the newer "cros-ec-rpmsg", but this driver is now checking
> > only for the latter, breaking compatibility with those.
> >
> > Besides, we can check if the SCP is single or dual core by simply
> > walking through the children of the main SCP node and checking if
> > if there's more than one "mediatek,scp-core" compatible node.
> >
> > Fixes: 1fdbf0cdde98 ("remoteproc: mediatek: Probe SCP cluster on multi-core SCP")
> > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> > ---
> > drivers/remoteproc/mtk_scp.c | 18 +++++++-----------
> > 1 file changed, 7 insertions(+), 11 deletions(-)
> >
>
> Tested on asurada (spherion) and jacuzzi (juniper). The issue was detected by KernelCI, so:
>
> Reported-by: "kernelci.org bot" <bot@kernelci.org>
> Tested-by: Laura Nao <laura.nao@collabora.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Tested-by: Chen-Yu Tsai <wenst@chromium.org>
on Hayato (MT8192) and Juniper (MT8183).
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility
2023-09-20 15:03 ` Laura Nao
2023-09-21 4:09 ` Chen-Yu Tsai
@ 2023-09-21 7:17 ` AngeloGioacchino Del Regno
1 sibling, 0 replies; 6+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-09-21 7:17 UTC (permalink / raw)
To: Laura Nao
Cc: andersson, kernel, linux-arm-kernel, linux-kernel, linux-mediatek,
linux-remoteproc, mathieu.poirier, matthias.bgg, tinghan.shen,
wenst
Il 20/09/23 17:03, Laura Nao ha scritto:
> On 9/19/23 11:23, AngeloGioacchino Del Regno wrote:
>> In older devicetrees we had the ChromeOS EC in a node called "cros-ec"
>> instead of the newer "cros-ec-rpmsg", but this driver is now checking
>> only for the latter, breaking compatibility with those.
>>
>> Besides, we can check if the SCP is single or dual core by simply
>> walking through the children of the main SCP node and checking if
>> if there's more than one "mediatek,scp-core" compatible node.
>>
>> Fixes: 1fdbf0cdde98 ("remoteproc: mediatek: Probe SCP cluster on multi-core SCP")
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>> ---
>> drivers/remoteproc/mtk_scp.c | 18 +++++++-----------
>> 1 file changed, 7 insertions(+), 11 deletions(-)
>>
>
> Tested on asurada (spherion) and jacuzzi (juniper). The issue was detected by KernelCI, so:
>
> Reported-by: "kernelci.org bot" <bot@kernelci.org>
> Tested-by: Laura Nao <laura.nao@collabora.com>
>
Thanks for pointing out the correct Reported-by tag! :-)
Cheers,
Angelo
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility
2023-09-19 9:23 [PATCH] remoteproc: mediatek: Refactor single core check and fix retrocompatibility AngeloGioacchino Del Regno
2023-09-20 13:28 ` Mathieu Poirier
2023-09-20 15:03 ` Laura Nao
@ 2023-09-21 12:51 ` Mathieu Poirier
2 siblings, 0 replies; 6+ messages in thread
From: Mathieu Poirier @ 2023-09-21 12:51 UTC (permalink / raw)
To: AngeloGioacchino Del Regno
Cc: andersson, matthias.bgg, tinghan.shen, linux-remoteproc,
linux-kernel, linux-arm-kernel, linux-mediatek, wenst, kernel
On Tue, Sep 19, 2023 at 11:23:36AM +0200, AngeloGioacchino Del Regno wrote:
> In older devicetrees we had the ChromeOS EC in a node called "cros-ec"
> instead of the newer "cros-ec-rpmsg", but this driver is now checking
> only for the latter, breaking compatibility with those.
>
> Besides, we can check if the SCP is single or dual core by simply
> walking through the children of the main SCP node and checking if
> if there's more than one "mediatek,scp-core" compatible node.
>
> Fixes: 1fdbf0cdde98 ("remoteproc: mediatek: Probe SCP cluster on multi-core SCP")
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
> drivers/remoteproc/mtk_scp.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
Applied.
Thanks,
Mathieu
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index ea227b566c54..a35409eda0cf 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -1144,29 +1144,25 @@ static int scp_add_multi_core(struct platform_device *pdev,
> return ret;
> }
>
> -static int scp_is_single_core(struct platform_device *pdev)
> +static bool scp_is_single_core(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> struct device_node *np = dev_of_node(dev);
> struct device_node *child;
> + int num_cores = 0;
>
> - child = of_get_next_available_child(np, NULL);
> - if (!child)
> - return dev_err_probe(dev, -ENODEV, "No child node\n");
> + for_each_child_of_node(np, child)
> + if (of_device_is_compatible(child, "mediatek,scp-core"))
> + num_cores++;
>
> - of_node_put(child);
> - return of_node_name_eq(child, "cros-ec-rpmsg");
> + return num_cores < 2;
> }
>
> static int scp_cluster_init(struct platform_device *pdev, struct mtk_scp_of_cluster *scp_cluster)
> {
> int ret;
>
> - ret = scp_is_single_core(pdev);
> - if (ret < 0)
> - return ret;
> -
> - if (ret)
> + if (scp_is_single_core(pdev))
> ret = scp_add_single_core(pdev, scp_cluster);
> else
> ret = scp_add_multi_core(pdev, scp_cluster);
> --
> 2.42.0
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread