]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
OMAPDSS: DSI: flush posted write when entering ULPS
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 12 Oct 2011 07:10:21 +0000 (10:10 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 2 Dec 2011 06:54:13 +0000 (08:54 +0200)
Flush posted write between writing the ULPS enable bits and waiting for
the interrupt.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/dsi.c

index 5abf8e7e74565fb1f70794dd21b7be9d65c97dc4..1331f92f11c26611f2b8b095f34d1b8b637beb57 100644 (file)
@@ -3561,6 +3561,9 @@ static int dsi_enter_ulps(struct platform_device *dsidev)
        REG_FLD_MOD(dsidev, DSI_COMPLEXIO_CFG2, (1 << 0) | (1 << 1) | (1 << 2),
                7, 5);
 
+       /* flush posted write and wait for SCP interface to finish the write */
+       dsi_read_reg(dsidev, DSI_COMPLEXIO_CFG2);
+
        if (wait_for_completion_timeout(&completion,
                                msecs_to_jiffies(1000)) == 0) {
                DSSERR("ULPS enable timeout\n");
@@ -3575,6 +3578,9 @@ static int dsi_enter_ulps(struct platform_device *dsidev)
        REG_FLD_MOD(dsidev, DSI_COMPLEXIO_CFG2, (0 << 0) | (0 << 1) | (0 << 2),
                7, 5);
 
+       /* flush posted write and wait for SCP interface to finish the write */
+       dsi_read_reg(dsidev, DSI_COMPLEXIO_CFG2);
+
        dsi_cio_power(dsidev, DSI_COMPLEXIO_POWER_ULPS);
 
        dsi_if_enable(dsidev, false);