drm/tilcdc: split reset to a separate function
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 20 Oct 2015 06:37:27 +0000 (09:37 +0300)
committerJyri Sarha <jsarha@ti.com>
Thu, 25 Feb 2016 14:39:38 +0000 (16:39 +0200)
Split reset to a separate function and use usleep_range(250, 1000)
instead of msleep(1) to to keep the reset bit on long enough.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
[Added description to the patch, changed mdelay(500) to usleep_range(250, 1000)]
Signed-off-by: Jyri Sarha <jsarha@ti.com>
drivers/gpu/drm/tilcdc/tilcdc_crtc.c

index 08b1e03b502e8f2802a06f662e5da9177eb40001..e62a950b8b7678cdc4aa66678e8897e057b73097 100644 (file)
@@ -112,17 +112,24 @@ static void update_scanout(struct drm_crtc *crtc)
        }
 }
 
-static void start(struct drm_crtc *crtc)
+static void reset(struct drm_crtc *crtc)
 {
        struct drm_device *dev = crtc->dev;
        struct tilcdc_drm_private *priv = dev->dev_private;
 
-       if (priv->rev == 2) {
-               tilcdc_set(dev, LCDC_CLK_RESET_REG, LCDC_CLK_MAIN_RESET);
-               msleep(1);
-               tilcdc_clear(dev, LCDC_CLK_RESET_REG, LCDC_CLK_MAIN_RESET);
-               msleep(1);
-       }
+       if (priv->rev != 2)
+               return;
+
+       tilcdc_set(dev, LCDC_CLK_RESET_REG, LCDC_CLK_MAIN_RESET);
+       usleep_range(250, 1000);
+       tilcdc_clear(dev, LCDC_CLK_RESET_REG, LCDC_CLK_MAIN_RESET);
+}
+
+static void start(struct drm_crtc *crtc)
+{
+       struct drm_device *dev = crtc->dev;
+
+       reset(crtc);
 
        tilcdc_set(dev, LCDC_DMA_CTRL_REG, LCDC_DUAL_FRAME_BUFFER_ENABLE);
        tilcdc_set(dev, LCDC_RASTER_CTRL_REG, LCDC_PALETTE_LOAD_MODE(DATA_ONLY));