From 7eb71ee55cd5e43f34ca4f66ddccc7c79884dd64 Mon Sep 17 00:00:00 2001 From: Herman Chen Date: Tue, 15 Feb 2022 15:44:36 +0800 Subject: [PATCH] video: rockchip: mpp: Fix combo hardware issue With multi core patch it will be lack of core id at old combo hardware probe process. The error log is shown below on device probe: mpp_vepu2 ff650000.vepu: can not attach device with same id 0 And also kernel crach on mpp library init. Signed-off-by: Caesar Wang Signed-off-by: Herman Chen Change-Id: I92ea5fc3575dad9236878235a396d02da7a3fba5 --- drivers/video/rockchip/mpp/mpp_vdpu1.c | 2 ++ drivers/video/rockchip/mpp/mpp_vdpu2.c | 2 ++ drivers/video/rockchip/mpp/mpp_vepu1.c | 2 ++ drivers/video/rockchip/mpp/mpp_vepu2.c | 2 ++ 4 files changed, 8 insertions(+) diff --git a/drivers/video/rockchip/mpp/mpp_vdpu1.c b/drivers/video/rockchip/mpp/mpp_vdpu1.c index 7669f538445b..de6310c8229e 100644 --- a/drivers/video/rockchip/mpp/mpp_vdpu1.c +++ b/drivers/video/rockchip/mpp/mpp_vdpu1.c @@ -802,6 +802,8 @@ static int vdpu_probe(struct platform_device *pdev) match = of_match_node(mpp_vdpu1_dt_match, pdev->dev.of_node); if (match) mpp->var = (struct mpp_dev_var *)match->data; + + mpp->core_id = of_alias_get_id(pdev->dev.of_node, "vdpu"); } ret = mpp_dev_probe(mpp, pdev); diff --git a/drivers/video/rockchip/mpp/mpp_vdpu2.c b/drivers/video/rockchip/mpp/mpp_vdpu2.c index c0e8cda6e723..0344f465a579 100644 --- a/drivers/video/rockchip/mpp/mpp_vdpu2.c +++ b/drivers/video/rockchip/mpp/mpp_vdpu2.c @@ -695,6 +695,8 @@ static int vdpu_probe(struct platform_device *pdev) pdev->dev.of_node); if (match) mpp->var = (struct mpp_dev_var *)match->data; + + mpp->core_id = of_alias_get_id(pdev->dev.of_node, "vdpu"); } ret = mpp_dev_probe(mpp, pdev); diff --git a/drivers/video/rockchip/mpp/mpp_vepu1.c b/drivers/video/rockchip/mpp/mpp_vepu1.c index a50a8355b901..1d92fd3ebaa0 100644 --- a/drivers/video/rockchip/mpp/mpp_vepu1.c +++ b/drivers/video/rockchip/mpp/mpp_vepu1.c @@ -728,6 +728,8 @@ static int vepu_probe(struct platform_device *pdev) match = of_match_node(mpp_vepu1_dt_match, pdev->dev.of_node); if (match) mpp->var = (struct mpp_dev_var *)match->data; + + mpp->core_id = of_alias_get_id(pdev->dev.of_node, "vepu"); } ret = mpp_dev_probe(mpp, pdev); diff --git a/drivers/video/rockchip/mpp/mpp_vepu2.c b/drivers/video/rockchip/mpp/mpp_vepu2.c index d9a196d69c78..37dbb7e80bc6 100644 --- a/drivers/video/rockchip/mpp/mpp_vepu2.c +++ b/drivers/video/rockchip/mpp/mpp_vepu2.c @@ -1053,6 +1053,8 @@ static int vepu_probe_default(struct platform_device *pdev) match = of_match_node(mpp_vepu2_dt_match, pdev->dev.of_node); if (match) mpp->var = (struct mpp_dev_var *)match->data; + + mpp->core_id = of_alias_get_id(pdev->dev.of_node, "vepu"); } ret = mpp_dev_probe(mpp, pdev);