|
|
@@ -33,7 +33,6 @@
|
|
|
#include "exynos_drm_crtc.h"
|
|
|
#include "exynos_drm_plane.h"
|
|
|
#include "exynos_drm_iommu.h"
|
|
|
-#include "exynos_drm_fimd.h"
|
|
|
|
|
|
/*
|
|
|
* FIMD stands for Fully Interactive Mobile Display and
|
|
|
@@ -946,6 +945,23 @@ static void fimd_te_handler(struct exynos_drm_crtc *crtc)
|
|
|
drm_handle_vblank(ctx->drm_dev, ctx->pipe);
|
|
|
}
|
|
|
|
|
|
+static void fimd_dp_clock_enable(struct exynos_drm_crtc *crtc, bool enable)
|
|
|
+{
|
|
|
+ struct fimd_context *ctx = crtc->ctx;
|
|
|
+ u32 val;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Only Exynos 5250, 5260, 5410 and 542x requires enabling DP/MIE
|
|
|
+ * clock. On these SoCs the bootloader may enable it but any
|
|
|
+ * power domain off/on will reset it to disable state.
|
|
|
+ */
|
|
|
+ if (ctx->driver_data != &exynos5_fimd_driver_data)
|
|
|
+ return;
|
|
|
+
|
|
|
+ val = enable ? DP_MIE_CLK_DP_ENABLE : DP_MIE_CLK_DISABLE;
|
|
|
+ writel(DP_MIE_CLK_DP_ENABLE, ctx->regs + DP_MIE_CLKCON);
|
|
|
+}
|
|
|
+
|
|
|
static struct exynos_drm_crtc_ops fimd_crtc_ops = {
|
|
|
.dpms = fimd_dpms,
|
|
|
.mode_fixup = fimd_mode_fixup,
|
|
|
@@ -956,6 +972,7 @@ static struct exynos_drm_crtc_ops fimd_crtc_ops = {
|
|
|
.win_commit = fimd_win_commit,
|
|
|
.win_disable = fimd_win_disable,
|
|
|
.te_handler = fimd_te_handler,
|
|
|
+ .clock_enable = fimd_dp_clock_enable,
|
|
|
};
|
|
|
|
|
|
static irqreturn_t fimd_irq_handler(int irq, void *dev_id)
|
|
|
@@ -1192,24 +1209,6 @@ static int fimd_remove(struct platform_device *pdev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-void fimd_dp_clock_enable(struct exynos_drm_crtc *crtc, bool enable)
|
|
|
-{
|
|
|
- struct fimd_context *ctx = crtc->ctx;
|
|
|
- u32 val;
|
|
|
-
|
|
|
- /*
|
|
|
- * Only Exynos 5250, 5260, 5410 and 542x requires enabling DP/MIE
|
|
|
- * clock. On these SoCs the bootloader may enable it but any
|
|
|
- * power domain off/on will reset it to disable state.
|
|
|
- */
|
|
|
- if (ctx->driver_data != &exynos5_fimd_driver_data)
|
|
|
- return;
|
|
|
-
|
|
|
- val = enable ? DP_MIE_CLK_DP_ENABLE : DP_MIE_CLK_DISABLE;
|
|
|
- writel(DP_MIE_CLK_DP_ENABLE, ctx->regs + DP_MIE_CLKCON);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL_GPL(fimd_dp_clock_enable);
|
|
|
-
|
|
|
struct platform_driver fimd_driver = {
|
|
|
.probe = fimd_probe,
|
|
|
.remove = fimd_remove,
|