drm/nv04/pm: recalibrate timer on nvclk changes
authorMartin Peres <martin.peres@ensi-bourges.fr>
Sun, 3 Jul 2011 23:41:34 +0000 (09:41 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 20 Sep 2011 06:04:42 +0000 (16:04 +1000)
Signed-off-by: Martin Peres <martin.peres@ensi-bourges.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nv04_pm.c

index eb1c70dd82ed41540629792dc7264452f511e6f3..9ae92a87b8cca30b3def46f7a6d60356042d55e8 100644 (file)
@@ -68,6 +68,7 @@ void
 nv04_pm_clock_set(struct drm_device *dev, void *pre_state)
 {
        struct drm_nouveau_private *dev_priv = dev->dev_private;
+       struct nouveau_timer_engine *ptimer = &dev_priv->engine.timer;
        struct nv04_pm_state *state = pre_state;
        u32 reg = state->pll.reg;
 
@@ -85,6 +86,9 @@ nv04_pm_clock_set(struct drm_device *dev, void *pre_state)
                nv_mask(dev, 0x1002c0, 0, 1 << 8);
        }
 
+       if (reg == NV_PRAMDAC_NVPLL_COEFF)
+               ptimer->init(dev);
+
        kfree(state);
 }