[PATCH 2/2] media: platform: mtk-mdp3: Use devicetree phandle to retrieve SCP

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Tue Sep 19 03:28:16 PDT 2023


Il 19/09/23 12:26, Chen-Yu Tsai ha scritto:
> On Tue, Sep 19, 2023 at 6:24 PM AngeloGioacchino Del Regno
> <angelogioacchino.delregno at collabora.com> wrote:
>>
>> Il 19/09/23 12:21, Chen-Yu Tsai ha scritto:
>>> On Tue, Sep 19, 2023 at 6:00 PM AngeloGioacchino Del Regno
>>> <angelogioacchino.delregno at collabora.com> 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 at collabora.com>
>>>> ---
>>>>    .../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.
>>>
>>
>> I haven't removed the original code, it *is* there as a fallback :-)
>>
>> mdp->scp = scp_get() <--- new
>> if (!mdp->scp) { fallback }
> 
> I see it now. I guess it's time to call it a day... I even replied with
> the wrong email ...
> 
> Reviewed-by: Chen-Yu Tsai <wenst at chromium.org>

hahaha! no worries, it happens :-)

Thanks for the review btw.

Cheers!
Angelo

> 
>>> 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
>>>>
>>> _______________________________________________
>>> Kernel mailing list -- kernel at mailman.collabora.com
>>> To unsubscribe send an email to kernel-leave at mailman.collabora.com
>>
>>




More information about the Linux-mediatek mailing list