drm/tegra: Split DC_CMD_STATE_CONTROL register write
authorThierry Reding <thierry.reding@avionic-design.de>
Tue, 15 Jan 2013 11:21:36 +0000 (12:21 +0100)
committerThierry Reding <thierry.reding@avionic-design.de>
Fri, 22 Feb 2013 07:21:32 +0000 (08:21 +0100)
The Tegra TRM says that the ACT_REQ and UPDATE fields cannot be
programmed at the same time so they are updated in two consecutive
writes instead.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
drivers/gpu/drm/tegra/dc.c

index c5d825fd25fe9dd678c5f52f2bac8b02772b13b9..20864002cf392cc7c0340ecf4a85246af6dae2f9 100644 (file)
@@ -689,9 +689,10 @@ static void tegra_crtc_commit(struct drm_crtc *crtc)
        struct tegra_dc *dc = to_tegra_dc(crtc);
        unsigned long value;
 
-       value = GENERAL_ACT_REQ | WIN_A_ACT_REQ |
-               GENERAL_UPDATE | WIN_A_UPDATE;
+       value = GENERAL_UPDATE | WIN_A_UPDATE;
+       tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL);
 
+       value = GENERAL_ACT_REQ | WIN_A_ACT_REQ;
        tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL);
 
        drm_vblank_post_modeset(crtc->dev, dc->pipe);