浏览代码

drm/omap: DMM: In case of error/timeout in wait_status() print the reason

If the wait_status() fails either because of an error reported in the
STATUS register or because of a timeout waiting for the wait_mask, print
information which might help diagnose the reason.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Peter Ujfalusi 7 年之前
父节点
当前提交
d312fe2ef5
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      drivers/gpu/drm/omapdrm/omap_dmm_tiler.c

+ 10 - 2
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c

@@ -121,14 +121,22 @@ static int wait_status(struct refill_engine *engine, uint32_t wait_mask)
 	while (true) {
 	while (true) {
 		r = dmm_read(dmm, reg[PAT_STATUS][engine->id]);
 		r = dmm_read(dmm, reg[PAT_STATUS][engine->id]);
 		err = r & DMM_PATSTATUS_ERR;
 		err = r & DMM_PATSTATUS_ERR;
-		if (err)
+		if (err) {
+			dev_err(dmm->dev,
+				"%s: error (engine%d). PAT_STATUS: 0x%08x\n",
+				__func__, engine->id, r);
 			return -EFAULT;
 			return -EFAULT;
+		}
 
 
 		if ((r & wait_mask) == wait_mask)
 		if ((r & wait_mask) == wait_mask)
 			break;
 			break;
 
 
-		if (--i == 0)
+		if (--i == 0) {
+			dev_err(dmm->dev,
+				"%s: timeout (engine%d). PAT_STATUS: 0x%08x\n",
+				__func__, engine->id, r);
 			return -ETIMEDOUT;
 			return -ETIMEDOUT;
+		}
 
 
 		udelay(1);
 		udelay(1);
 	}
 	}