All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.