mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 11:03:43 +02:00
media: platform: mtk-mdp3: avoid multiple driver registrations
The amount of MDP3 driver probes is determined by the registered clocks of MMSYS. Since MT8195 MDP3 utilizes VPPSYS0 and VPPSYS1, it's necessary to prevent multiple driver registrations. Signed-off-by: Moudy Ho <moudy.ho@mediatek.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Signed-off-by: Sebastian Fricke <sebastian.fricke@collabora.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
92cdfc39af
commit
4294b9d6c8
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -211,6 +211,7 @@ static int mdp_probe(struct platform_device *pdev)
|
|||
struct device *dev = &pdev->dev;
|
||||
struct mdp_dev *mdp;
|
||||
struct platform_device *mm_pdev;
|
||||
struct resource *res;
|
||||
int ret, i, mutex_id;
|
||||
|
||||
mdp = kzalloc(sizeof(*mdp), GFP_KERNEL);
|
||||
|
|
@ -222,6 +223,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;
|
||||
}
|
||||
|
||||
ret = mdp_mm_subsys_deploy(mdp, MDP_INFRA_MMSYS);
|
||||
if (ret)
|
||||
goto err_destroy_device;
|
||||
|
|
@ -311,6 +318,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;
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user