Procházet zdrojové kódy

drm/omap: DMM: Check for DMM readiness after successful transaction commit

Check the status of the DMM engine after it is reported that the
transaction was completed as in rare cases the engine might not reached a
working state.

The wait_status() will print information in case the DMM is not reached the
expected state and the dmm_txn_commit() will return with an error code to
make sure that we are not continuing with a broken setup.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Peter Ujfalusi před 7 roky
rodič
revize
b7ea6b286c
1 změnil soubory, kde provedl 5 přidání a 0 odebrání
  1. 5 0
      drivers/gpu/drm/omapdrm/omap_dmm_tiler.c

+ 5 - 0
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c

@@ -311,7 +311,12 @@ static int dmm_txn_commit(struct dmm_txn *txn, bool wait)
 				msecs_to_jiffies(100))) {
 			dev_err(dmm->dev, "timed out waiting for done\n");
 			ret = -ETIMEDOUT;
+			goto cleanup;
 		}
+
+		/* Check the engine status before continue */
+		ret = wait_status(engine, DMM_PATSTATUS_READY |
+				  DMM_PATSTATUS_VALID | DMM_PATSTATUS_DONE);
 	}
 
 cleanup: