Martin Peres
2010-Sep-29 13:16 UTC
[PATCH 3/3] Idle PGRAPH and PFIFO before changing the clocks
Signed-off-by: Martin Peres <martin.peres at ensi-bourges.fr> --- drivers/gpu/drm/nouveau/nouveau_pm.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c b/drivers/gpu/drm/nouveau/nouveau_pm.c index 1c99c55..ecfad1c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_pm.c +++ b/drivers/gpu/drm/nouveau/nouveau_pm.c @@ -68,11 +68,19 @@ nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl) } } + dev_priv->engine.fifo.pause(dev); + dev_priv->engine.graph.pause(dev); + nouveau_pm_clock_set(dev, perflvl, PLL_CORE, perflvl->core); nouveau_pm_clock_set(dev, perflvl, PLL_SHADER, perflvl->shader); nouveau_pm_clock_set(dev, perflvl, PLL_MEMORY, perflvl->memory); nouveau_pm_clock_set(dev, perflvl, PLL_UNK05, perflvl->unk05); + /* assume the PLLs have stabilized already */ + + dev_priv->engine.fifo.unpause(dev); + dev_priv->engine.graph.unpause(dev); + pm->cur = perflvl; return 0; } -- 1.7.2 --------------020605050507080803020700--