[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