drm/tilcdc: split reset to a separate function
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>
This commit is contained in:

committed by
Jyri Sarha

parent
1aea1e79db
commit
2efec4f306
@@ -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 drm_device *dev = crtc->dev;
|
||||||
struct tilcdc_drm_private *priv = dev->dev_private;
|
struct tilcdc_drm_private *priv = dev->dev_private;
|
||||||
|
|
||||||
if (priv->rev == 2) {
|
if (priv->rev != 2)
|
||||||
tilcdc_set(dev, LCDC_CLK_RESET_REG, LCDC_CLK_MAIN_RESET);
|
return;
|
||||||
msleep(1);
|
|
||||||
tilcdc_clear(dev, LCDC_CLK_RESET_REG, LCDC_CLK_MAIN_RESET);
|
tilcdc_set(dev, LCDC_CLK_RESET_REG, LCDC_CLK_MAIN_RESET);
|
||||||
msleep(1);
|
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_DMA_CTRL_REG, LCDC_DUAL_FRAME_BUFFER_ENABLE);
|
||||||
tilcdc_set(dev, LCDC_RASTER_CTRL_REG, LCDC_PALETTE_LOAD_MODE(DATA_ONLY));
|
tilcdc_set(dev, LCDC_RASTER_CTRL_REG, LCDC_PALETTE_LOAD_MODE(DATA_ONLY));
|
||||||
|
Reference in New Issue
Block a user