From c748aa78872c104ecfe340891283b42395991680 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ville=20Syrj=C3=A4l=C3=A4?= Date: Wed, 21 Dec 2011 02:01:35 +0200 Subject: [PATCH] staging: mrst: overlay: Use jiffies based timeout in ovl_wait() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Wait at most 100 ms for overlay updates. Signed-off-by: Ville Syrjälä Signed-off-by: Artem Bityutskiy --- drivers/staging/mrst/drv/mdfld_overlay.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/mrst/drv/mdfld_overlay.c b/drivers/staging/mrst/drv/mdfld_overlay.c index ca08831..9ed17a2 100644 --- a/drivers/staging/mrst/drv/mdfld_overlay.c +++ b/drivers/staging/mrst/drv/mdfld_overlay.c @@ -251,13 +251,13 @@ static void write_ovadd(struct mfld_overlay *ovl) } enum { - OVL_UPDATE_TIMEOUT = 20000, + OVL_UPDATE_TIMEOUT = 100, /* ms */ }; static int ovl_wait(struct mfld_overlay *ovl) { struct drm_device *dev = ovl->dev; - unsigned int timeout = 0; + unsigned long timeout = jiffies + msecs_to_jiffies(OVL_UPDATE_TIMEOUT); if (!ospm_power_using_hw_begin(OSPM_DISPLAY_ISLAND, OSPM_UHB_FORCE_POWER_ON)) { dev_warn(dev->dev, "Failed to power up display island\n"); @@ -265,12 +265,12 @@ static int ovl_wait(struct mfld_overlay *ovl) return -ENXIO; } - while (timeout++ < OVL_UPDATE_TIMEOUT && !(OVL_REG_READ(ovl, OVL_DOVSTA) & OVL_DOVSTA_OVR_UPDT)) + while (time_is_after_jiffies(timeout) && !(OVL_REG_READ(ovl, OVL_DOVSTA) & OVL_DOVSTA_OVR_UPDT)) cpu_relax(); ospm_power_using_hw_end(OSPM_DISPLAY_ISLAND); - if (timeout >= OVL_UPDATE_TIMEOUT) { + if (time_is_before_eq_jiffies(timeout)) { dev_warn(dev->dev, "Timed out waiting for overlay %c\n", ovl->id == 0 ? 'A' : 'C'); return -ETIMEDOUT; } -- 2.7.4