aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nv04_pm.c
diff options
context:
space:
mode:
authorMartin Peres <martin.peres@ensi-bourges.fr>2011-07-03 19:41:34 -0400
committerBen Skeggs <bskeggs@redhat.com>2011-09-20 02:04:42 -0400
commitf3f2f54e11ff6f3f39a108bfcf7e074b282e3a50 (patch)
tree7034c50f0427c4c653158abf6f61a4882b7e335e /drivers/gpu/drm/nouveau/nv04_pm.c
parent591b06d73bb8a2da879b1159342b8be192bf1119 (diff)
drm/nv04/pm: recalibrate timer on nvclk changes
Signed-off-by: Martin Peres <martin.peres@ensi-bourges.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nv04_pm.c')
-rw-r--r--drivers/gpu/drm/nouveau/nv04_pm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nv04_pm.c b/drivers/gpu/drm/nouveau/nv04_pm.c
index eb1c70dd82ed..9ae92a87b8cc 100644
--- a/drivers/gpu/drm/nouveau/nv04_pm.c
+++ b/drivers/gpu/drm/nouveau/nv04_pm.c
@@ -68,6 +68,7 @@ void
68nv04_pm_clock_set(struct drm_device *dev, void *pre_state) 68nv04_pm_clock_set(struct drm_device *dev, void *pre_state)
69{ 69{
70 struct drm_nouveau_private *dev_priv = dev->dev_private; 70 struct drm_nouveau_private *dev_priv = dev->dev_private;
71 struct nouveau_timer_engine *ptimer = &dev_priv->engine.timer;
71 struct nv04_pm_state *state = pre_state; 72 struct nv04_pm_state *state = pre_state;
72 u32 reg = state->pll.reg; 73 u32 reg = state->pll.reg;
73 74
@@ -85,6 +86,9 @@ nv04_pm_clock_set(struct drm_device *dev, void *pre_state)
85 nv_mask(dev, 0x1002c0, 0, 1 << 8); 86 nv_mask(dev, 0x1002c0, 0, 1 << 8);
86 } 87 }
87 88
89 if (reg == NV_PRAMDAC_NVPLL_COEFF)
90 ptimer->init(dev);
91
88 kfree(state); 92 kfree(state);
89} 93}
90 94