Skip to content

Commit 1ef3e78

Browse files
AngeloGioacchino Del Regnombgg
authored andcommitted
soc: mediatek: mtk-mmsys: Add .remove() callback
Add a .remove() callback to correctly unregister the multimedia clocks and DRM drivers. Signed-off-by: AngeloGioacchino Del Regno <[email protected]> Reviewed-by: Chen-Yu Tsai <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Matthias Brugger <[email protected]>
1 parent fa041c4 commit 1ef3e78

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

drivers/soc/mediatek/mtk-mmsys.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ static const struct mtk_mmsys_driver_data mt8365_mmsys_driver_data = {
121121
struct mtk_mmsys {
122122
void __iomem *regs;
123123
const struct mtk_mmsys_driver_data *data;
124+
struct platform_device *clks_pdev;
125+
struct platform_device *drm_pdev;
124126
spinlock_t lock; /* protects mmsys_sw_rst_b reg */
125127
struct reset_controller_dev rcdev;
126128
struct cmdq_client_reg cmdq_base;
@@ -386,6 +388,7 @@ static int mtk_mmsys_probe(struct platform_device *pdev)
386388
PLATFORM_DEVID_AUTO, NULL, 0);
387389
if (IS_ERR(clks))
388390
return PTR_ERR(clks);
391+
mmsys->clks_pdev = clks;
389392

390393
if (mmsys->data->is_vppsys)
391394
goto out_probe_done;
@@ -396,11 +399,22 @@ static int mtk_mmsys_probe(struct platform_device *pdev)
396399
platform_device_unregister(clks);
397400
return PTR_ERR(drm);
398401
}
402+
mmsys->drm_pdev = drm;
399403

400404
out_probe_done:
401405
return 0;
402406
}
403407

408+
static int mtk_mmsys_remove(struct platform_device *pdev)
409+
{
410+
struct mtk_mmsys *mmsys = platform_get_drvdata(pdev);
411+
412+
platform_device_unregister(mmsys->drm_pdev);
413+
platform_device_unregister(mmsys->clks_pdev);
414+
415+
return 0;
416+
}
417+
404418
static const struct of_device_id of_match_mtk_mmsys[] = {
405419
{
406420
.compatible = "mediatek,mt2701-mmsys",
@@ -475,6 +489,7 @@ static struct platform_driver mtk_mmsys_drv = {
475489
.of_match_table = of_match_mtk_mmsys,
476490
},
477491
.probe = mtk_mmsys_probe,
492+
.remove = mtk_mmsys_remove,
478493
};
479494

480495
static int __init mtk_mmsys_init(void)

0 commit comments

Comments
 (0)