summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nv50_pm.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-10-31 05:59:07 +0400
committerBen Skeggs <bskeggs@redhat.com>2011-12-21 13:01:29 +0400
commit8b5f4d0def9caa16527c95e7a4ba47bb8a4d9e1e (patch)
treebb9d011485572ffb567f971d8369045c7cea0fe3 /drivers/gpu/drm/nouveau/nv50_pm.c
parent973e861657f6faaa3ee01de093d2307470a6d193 (diff)
downloadlinux-8b5f4d0def9caa16527c95e7a4ba47bb8a4d9e1e.tar.xz
drm/nv50/pm: stabilise transition to 100MHz mclk a bit
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nv50_pm.c')
-rw-r--r--drivers/gpu/drm/nouveau/nv50_pm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_pm.c b/drivers/gpu/drm/nouveau/nv50_pm.c
index 0b82c6075666..961d8f20d27f 100644
--- a/drivers/gpu/drm/nouveau/nv50_pm.c
+++ b/drivers/gpu/drm/nouveau/nv50_pm.c
@@ -465,7 +465,7 @@ nv50_pm_clocks_pre(struct drm_device *dev, struct nouveau_pm_level *perflvl)
/* memory: use pcie refclock if possible, otherwise use mpll */
info->mscript = perflvl->memscript;
if (clk_same(perflvl->memory, read_clk(dev, clk_src_href))) {
- info->mctrl = nv_rd32(dev, 0x4008) | 0x00000200;
+ info->mctrl = 0x00000200 | (pll.log2p_bias << 19);
info->mcoef = nv_rd32(dev, 0x400c);
} else
if (perflvl->memory) {
@@ -606,7 +606,7 @@ nv50_pm_clocks_set(struct drm_device *dev, void *data)
/* modify mpll */
nv_mask(dev, 0x00c040, 0x0000c000, 0x0000c000);
- nv_mask(dev, 0x004008, 0x81ff0200, 0x00000200 | info->mctrl);
+ nv_mask(dev, 0x004008, 0x01ff0200, 0x00000200 | info->mctrl);
nv_wr32(dev, 0x00400c, info->mcoef);
udelay(100);
nv_mask(dev, 0x004008, 0x81ff0200, info->mctrl);