diff options
author | CK Hu <ck.hu@mediatek.com> | 2019-10-09 16:37:47 +0800 |
---|---|---|
committer | CK Hu <ck.hu@mediatek.com> | 2019-10-09 16:58:13 +0800 |
commit | 631005b255aab5f846f7ca03606613f898d70207 (patch) | |
tree | 38355a7ce7f3eb3f3b752453d326de697074b609 /drivers/gpu/drm/mediatek | |
parent | 1037edf20cb6c75b3d283866048632467f6790e5 (diff) |
drm/mediatek: add no_clk into ddp private data
Mutex has no clock in some SoC, so add no_clk in private data and get
clock according to no_clk.
Signed-off-by: CK Hu <ck.hu@mediatek.com>
Diffstat (limited to 'drivers/gpu/drm/mediatek')
-rw-r--r-- | drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c index 4866a9b43330..13035c906035 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c @@ -157,6 +157,7 @@ struct mtk_ddp_data { const unsigned int *mutex_sof; const unsigned int mutex_mod_reg; const unsigned int mutex_sof_reg; + const bool no_clk; }; struct mtk_ddp { @@ -622,10 +623,14 @@ static int mtk_ddp_probe(struct platform_device *pdev) for (i = 0; i < 10; i++) ddp->mutex[i].id = i; - ddp->clk = devm_clk_get(dev, NULL); - if (IS_ERR(ddp->clk)) { - dev_err(dev, "Failed to get clock\n"); - return PTR_ERR(ddp->clk); + ddp->data = of_device_get_match_data(dev); + + if (!ddp->data->no_clk) { + ddp->clk = devm_clk_get(dev, NULL); + if (IS_ERR(ddp->clk)) { + dev_err(dev, "Failed to get clock\n"); + return PTR_ERR(ddp->clk); + } } regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -635,8 +640,6 @@ static int mtk_ddp_probe(struct platform_device *pdev) return PTR_ERR(ddp->regs); } - ddp->data = of_device_get_match_data(dev); - platform_set_drvdata(pdev, ddp); return 0; |