On Tue, Sep 19, 2023 at 6:00 PM AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> wrote: > > Instead of walking the entire parent node for something that has the > right compatible, use the scp_get() function provided by the MediaTek > SCP remoteproc driver to retrieve a handle to mtk_scp through the > devicetree "mediatek,scp" (phandle) property. > > In case of multi-core SCP, this also allows to select a specific core. > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> > --- > .../media/platform/mediatek/mdp3/mtk-mdp3-core.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c > index 8677e7fd5083..d93d3833633e 100644 > --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c > +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c > @@ -254,13 +254,17 @@ static int mdp_probe(struct platform_device *pdev) > goto err_destroy_job_wq; > } > > - mm_pdev = __get_pdev_by_id(pdev, NULL, MDP_INFRA_SCP); > - if (WARN_ON(!mm_pdev)) { > - dev_err(&pdev->dev, "Could not get scp device\n"); > - ret = -ENODEV; > - goto err_destroy_clock_wq; > + mdp->scp = scp_get(pdev); > + if (!mdp->scp) { > + mm_pdev = __get_pdev_by_id(pdev, NULL, MDP_INFRA_SCP); > + if (WARN_ON(!mm_pdev)) { > + dev_err(&pdev->dev, "Could not get scp device\n"); > + ret = -ENODEV; > + goto err_destroy_clock_wq; > + } > + mdp->scp = platform_get_drvdata(mm_pdev); You need to keep the original code as a fallback for old device trees. ChenYu > } > - mdp->scp = platform_get_drvdata(mm_pdev); > + > mdp->rproc_handle = scp_get_rproc(mdp->scp); > dev_dbg(&pdev->dev, "MDP rproc_handle: %pK", mdp->rproc_handle); > > -- > 2.42.0 >