dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3/7] drm/exynos: Fix G2D core mulfunctioning issue
@ 2013-03-13  9:04 Inki Dae
  2013-03-13  9:53 ` Joonyoung Shim
  2013-03-14  9:48 ` [PATCH v2 3/7] drm/exynos: Fix G2D core malfunctioning issue Inki Dae
  0 siblings, 2 replies; 9+ messages in thread
From: Inki Dae @ 2013-03-13  9:04 UTC (permalink / raw)
  To: airlied, dri-devel; +Cc: kyungmin.park, sw0312.kim

From: YoungJun Cho <yj44.cho@samsung.com>

This patch fixes G2D core mulfunctioning issue once g2d dma is started.
Without 'DMA_HOLD_CMD_REG' register setting, there is only one interrupt
after the execution to all command lists have been completed. And that
induces watchdog. So this patch sets 'LIST_HOLD' command to the register
so that command execution interrupt can be occured whenever each command
list execution is finished.

Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_g2d.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
index 095520f..91bc4cc 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -82,7 +82,7 @@
 #define G2D_DMA_LIST_DONE_COUNT_OFFSET	17
 
 /* G2D_DMA_HOLD_CMD */
-#define G2D_USET_HOLD			(1 << 2)
+#define G2D_USER_HOLD			(1 << 2)
 #define G2D_LIST_HOLD			(1 << 1)
 #define G2D_BITBLT_HOLD			(1 << 0)
 
@@ -863,10 +863,13 @@ int exynos_g2d_set_cmdlist_ioctl(struct drm_device *drm_dev, void *data,
 	cmdlist->data[cmdlist->last++] = G2D_SRC_BASE_ADDR;
 	cmdlist->data[cmdlist->last++] = 0;
 
-	if (node->event) {
-		cmdlist->data[cmdlist->last++] = G2D_DMA_HOLD_CMD;
-		cmdlist->data[cmdlist->last++] = G2D_LIST_HOLD;
-	}
+	/*
+	 * 'LIST_HOLD' command should be set to the DMA_HOLD_CMD_REG
+	 * if user wants G2D interrupt event once each command list or
+	 * BitBLT command execution is finished.
+	 */
+	cmdlist->data[cmdlist->last++] = G2D_DMA_HOLD_CMD;
+	cmdlist->data[cmdlist->last++] = G2D_LIST_HOLD;
 
 	/* Check size of cmdlist: last 2 is about G2D_BITBLT_START */
 	size = cmdlist->last + req->cmd_nr * 2 + req->cmd_buf_nr * 2 + 2;
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-03-14  9:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-13  9:04 [PATCH 3/7] drm/exynos: Fix G2D core mulfunctioning issue Inki Dae
2013-03-13  9:53 ` Joonyoung Shim
2013-03-13 10:14   ` Inki Dae
2013-03-13 10:28     ` Joonyoung Shim
2013-03-13 10:53       ` Inki Dae
2013-03-14  2:29         ` Joonyoung Shim
2013-03-14  4:58           ` Inki Dae
2013-03-14  5:24             ` YoungJun Cho
2013-03-14  9:48 ` [PATCH v2 3/7] drm/exynos: Fix G2D core malfunctioning issue Inki Dae

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox