summaryrefslogtreecommitdiffstats
path: root/include/video
diff options
context:
space:
mode:
authorAndrzej Hajda <a.hajda@samsung.com>2017-03-14 09:27:57 +0100
committerInki Dae <inki.dae@samsung.com>2017-03-21 05:17:21 +0100
commit73488331eb9460d14974a1e2c734f77ce8869183 (patch)
tree556b178422bec06f0cd586e12ae1f92122c78873 /include/video
parentdrm/exynos: move crtc event handling to drivers callbacks (diff)
downloadlinux-73488331eb9460d14974a1e2c734f77ce8869183.tar.xz
linux-73488331eb9460d14974a1e2c734f77ce8869183.zip
drm/exynos/decon5433: fix vblank event handling
Current implementation of event handling assumes that vblank interrupt is always called at the right time. It is not true, it can be delayed due to various reasons. As a result different races can happen. The patch fixes the issue by using hardware frame counter present in DECON to serialize vblank and commit completion events. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'include/video')
-rw-r--r--include/video/exynos5433_decon.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/video/exynos5433_decon.h b/include/video/exynos5433_decon.h
index ef8e2a8ad0af..352fc0d9528f 100644
--- a/include/video/exynos5433_decon.h
+++ b/include/video/exynos5433_decon.h
@@ -46,6 +46,7 @@
#define DECON_FRAMEFIFO_STATUS 0x0524
#define DECON_CMU 0x1404
#define DECON_UPDATE 0x1410
+#define DECON_CRFMID 0x1414
#define DECON_UPDATE_SCHEME 0x1438
#define DECON_VIDCON1 0x2000
#define DECON_VIDCON2 0x2004
@@ -142,6 +143,13 @@
#define STANDALONE_UPDATE_F (1 << 0)
/* DECON_VIDCON1 */
+#define VIDCON1_LINECNT_MASK (0x0fff << 16)
+#define VIDCON1_I80_ACTIVE (1 << 15)
+#define VIDCON1_VSTATUS_MASK (0x3 << 13)
+#define VIDCON1_VSTATUS_VS (0 << 13)
+#define VIDCON1_VSTATUS_BP (1 << 13)
+#define VIDCON1_VSTATUS_AC (2 << 13)
+#define VIDCON1_VSTATUS_FP (3 << 13)
#define VIDCON1_VCLK_MASK (0x3 << 9)
#define VIDCON1_VCLK_RUN_VDEN_DISABLE (0x3 << 9)
#define VIDCON1_VCLK_HOLD (0x0 << 9)