drm/omap: DMM: In case of error/timeout in wait_status() print the reason
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Fri, 29 Sep 2017 11:49:47 +0000 (14:49 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 19 Dec 2017 08:32:00 +0000 (10:32 +0200)
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>
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c

index c60a85e..e3725dc 100644 (file)
@@ -121,14 +121,22 @@ static int wait_status(struct refill_engine *engine, uint32_t wait_mask)
        while (true) {
                r = dmm_read(dmm, reg[PAT_STATUS][engine->id]);
                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;
+               }
 
                if ((r & wait_mask) == wait_mask)
                        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;
+               }
 
                udelay(1);
        }