diff options
author | Thierry Reding <thierry.reding@avionic-design.de> | 2013-01-15 06:21:36 -0500 |
---|---|---|
committer | Thierry Reding <thierry.reding@avionic-design.de> | 2013-02-22 02:21:32 -0500 |
commit | 3b9e71eae5ac5ded28ad1dcded7c01ae73dd9581 (patch) | |
tree | 7cdcd07598792b00aa419d5e04130402cb4469e6 | |
parent | 3c03c46ac80ea7edc3b8f2ba85085de54aec15cd (diff) |
drm/tegra: Split DC_CMD_STATE_CONTROL register write
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>
-rw-r--r-- | drivers/gpu/drm/tegra/dc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index c5d825fd25fe..20864002cf39 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c | |||
@@ -689,9 +689,10 @@ static void tegra_crtc_commit(struct drm_crtc *crtc) | |||
689 | struct tegra_dc *dc = to_tegra_dc(crtc); | 689 | struct tegra_dc *dc = to_tegra_dc(crtc); |
690 | unsigned long value; | 690 | unsigned long value; |
691 | 691 | ||
692 | value = GENERAL_ACT_REQ | WIN_A_ACT_REQ | | 692 | value = GENERAL_UPDATE | WIN_A_UPDATE; |
693 | GENERAL_UPDATE | WIN_A_UPDATE; | 693 | tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL); |
694 | 694 | ||
695 | value = GENERAL_ACT_REQ | WIN_A_ACT_REQ; | ||
695 | tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL); | 696 | tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL); |
696 | 697 | ||
697 | drm_vblank_post_modeset(crtc->dev, dc->pipe); | 698 | drm_vblank_post_modeset(crtc->dev, dc->pipe); |