From: Moudy Ho <moudy.ho@mediatek.com>
To: Mauro Carvalho Chehab <mchehab@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Matthias Brugger <matthias.bgg@gmail.com>
Cc: <linux-media@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-mediatek@lists.infradead.org>,
<Project_Global_Chrome_Upstream_Group@mediatek.com>,
Moudy Ho <moudy.ho@mediatek.com>
Subject: [PATCH v4 10/16] media: platform: mtk-mdp3: avoid multiple driver registrations
Date: Wed, 8 Feb 2023 17:22:03 +0800 [thread overview]
Message-ID: <20230208092209.19472-11-moudy.ho@mediatek.com> (raw)
In-Reply-To: <20230208092209.19472-1-moudy.ho@mediatek.com>
The number of MDP3 driver probes depends on the registered clocks of MMSYS.
Because VPPSYS0 and VPPSYS1 are used in MT8195 MDP3, it is necessary to
avoid multiple driver registrations.
Signed-off-by: Moudy Ho <moudy.ho@mediatek.com>
---
drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c | 1 +
drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c | 9 ++++++++-
drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h | 1 +
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c b/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c
index eafd2fbe39a0..0c65b64c6266 100644
--- a/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c
+++ b/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c
@@ -410,6 +410,7 @@ static const struct mdp_pipe_info mt8183_pipe_info[] = {
const struct mtk_mdp_driver_data mt8183_mdp_driver_data = {
.mdp_plat_id = MT8183,
+ .mdp_con_res = 0x14001000,
.mdp_probe_infra = mt8183_mdp_probe_infra,
.mdp_cfg = &mt8183_plat_cfg,
.mdp_mutex_table_idx = mt8183_mutex_idx,
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
index bf64f88c29fe..09cad71aef69 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
@@ -161,6 +161,7 @@ static int mdp_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct mdp_dev *mdp;
struct platform_device *mm_pdev, *mm2_pdev;
+ struct resource *res;
int ret, i, mutex_id;
mdp = kzalloc(sizeof(*mdp), GFP_KERNEL);
@@ -172,6 +173,12 @@ static int mdp_probe(struct platform_device *pdev)
mdp->pdev = pdev;
mdp->mdp_data = of_device_get_match_data(&pdev->dev);
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (res->start != mdp->mdp_data->mdp_con_res) {
+ platform_set_drvdata(pdev, mdp);
+ goto success_return;
+ }
+
mm_pdev = __get_pdev_by_id(pdev, NULL, MDP_INFRA_MMSYS);
if (IS_ERR_OR_NULL(mm_pdev)) {
ret = -ENODEV;
@@ -209,7 +216,6 @@ static int mdp_probe(struct platform_device *pdev)
p = (id && mm2_pdev) ? mm2_pdev : mm_pdev;
m = (id && mm2_pdev) ?
mdp->mdp_mutex2 : mdp->mdp_mutex;
-
if (m[mutex_id])
continue;
m[mutex_id] = mtk_mutex_get(&p->dev);
@@ -278,6 +284,7 @@ static int mdp_probe(struct platform_device *pdev)
goto err_unregister_device;
}
+success_return:
dev_dbg(dev, "mdp-%d registered successfully\n", pdev->id);
return 0;
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
index e4ffa25b9271..a063a655248c 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
@@ -61,6 +61,7 @@ enum mdp_pipe_id {
struct mtk_mdp_driver_data {
const int mdp_plat_id;
+ const resource_size_t mdp_con_res;
const struct of_device_id *mdp_probe_infra;
const struct mdp_platform_config *mdp_cfg;
const u32 *mdp_mutex_table_idx;
--
2.18.0
next prev parent reply other threads:[~2023-02-08 9:24 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-08 9:21 [PATCH v4 00/16] add support MDP3 on MT8195 platform Moudy Ho
2023-02-08 9:21 ` [PATCH v4 01/16] dt-binding: mediatek: correct MDP3 node with generic names Moudy Ho
2023-02-09 17:46 ` Rob Herring
2023-02-08 9:21 ` [PATCH v4 02/16] arm64: dts: mediatek: mt8183: correct MDP3 DMA-related nodes Moudy Ho
2023-02-08 9:21 ` [PATCH v4 03/16] dt-binding: mediatek: add MediaTek mt8195 MDP3 components Moudy Ho
2023-02-09 18:01 ` Rob Herring
2023-02-10 6:51 ` Moudy Ho (何宗原)
2023-02-08 9:21 ` [PATCH v4 04/16] arm64: dts: mediatek: mt8195: add MDP3 nodes Moudy Ho
2023-02-08 9:21 ` [PATCH v4 05/16] media: platform: mtk-mdp3: add support second sets of MMSYS Moudy Ho
2023-02-08 9:21 ` [PATCH v4 06/16] media: platform: mtk-mdp3: add support second sets of MUTEX Moudy Ho
2023-02-08 9:22 ` [PATCH v4 07/16] media: platform: mtk-mdp3: introduce more pipelines from MT8195 Moudy Ho
2023-02-08 9:22 ` [PATCH v4 08/16] media: platform: mtk-mdp3: introduce more MDP3 components Moudy Ho
2023-02-08 9:22 ` [PATCH v4 09/16] media: platform: mtk-mdp3: add checks for dummy components Moudy Ho
2023-02-08 9:22 ` Moudy Ho [this message]
2023-02-08 9:22 ` [PATCH v4 11/16] media: platform: mtk-mdp3: extend GCE event waiting in RDMA and WROT Moudy Ho
2023-02-08 9:22 ` [PATCH v4 12/16] media: platform: mtk-mdp3: add the blend of component in MUTEX MOD Moudy Ho
2023-02-08 9:22 ` [PATCH v4 13/16] media: platform: mtk-mdp3: add mt8195 platform configuration Moudy Ho
2023-02-08 9:22 ` [PATCH v4 14/16] media: platform: mtk-mdp3: add mt8195 shared memory configurations Moudy Ho
2023-02-08 9:22 ` [PATCH v4 15/16] media: platform: mtk-mdp3: add mt8195 MDP3 component settings Moudy Ho
2023-02-08 9:22 ` [PATCH v4 16/16] media: platform: mtk-mdp3: add support for parallel pipe to improve FPS Moudy Ho
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230208092209.19472-11-moudy.ho@mediatek.com \
--to=moudy.ho@mediatek.com \
--cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=mchehab@kernel.org \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox