aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
diff options
context:
space:
mode:
authorCK Hu <ck.hu@mediatek.com>2019-10-09 16:37:47 +0800
committerCK Hu <ck.hu@mediatek.com>2019-10-09 16:58:13 +0800
commit631005b255aab5f846f7ca03606613f898d70207 (patch)
tree38355a7ce7f3eb3f3b752453d326de697074b609 /drivers/gpu/drm/mediatek/mtk_drm_ddp.c
parentdrm/mediatek: add mutex sof register offset into ddp private data (diff)
downloadlinux-dev-631005b255aab5f846f7ca03606613f898d70207.tar.xz
linux-dev-631005b255aab5f846f7ca03606613f898d70207.zip
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/mtk_drm_ddp.c')
-rw-r--r--drivers/gpu/drm/mediatek/mtk_drm_ddp.c15
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;