diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-06-11 21:02:45 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-06-17 00:41:40 -0400 |
commit | 1968a1e9049d20b9b7a2620cb15f481f472f5b46 (patch) | |
tree | 434329d603224e8507cbe98dafc8328fe66bbb10 /drivers/gpu | |
parent | bc1dfff04a5d4064ba0db1fab13f84ab4f333d2b (diff) |
drm/gk104/clk: only touch divider for mode we'll be using
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c b/drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c index 4ac1aa30ea11..0e62a3240144 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c +++ b/drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c | |||
@@ -307,7 +307,6 @@ calc_clk(struct nve0_clock_priv *priv, | |||
307 | info->dsrc = src0; | 307 | info->dsrc = src0; |
308 | if (div0) { | 308 | if (div0) { |
309 | info->ddiv |= 0x80000000; | 309 | info->ddiv |= 0x80000000; |
310 | info->ddiv |= div0 << 8; | ||
311 | info->ddiv |= div0; | 310 | info->ddiv |= div0; |
312 | } | 311 | } |
313 | if (div1D) { | 312 | if (div1D) { |
@@ -352,7 +351,7 @@ nve0_clock_prog_0(struct nve0_clock_priv *priv, int clk) | |||
352 | { | 351 | { |
353 | struct nve0_clock_info *info = &priv->eng[clk]; | 352 | struct nve0_clock_info *info = &priv->eng[clk]; |
354 | if (!info->ssel) { | 353 | if (!info->ssel) { |
355 | nv_mask(priv, 0x1371d0 + (clk * 0x04), 0x80003f3f, info->ddiv); | 354 | nv_mask(priv, 0x1371d0 + (clk * 0x04), 0x8000003f, info->ddiv); |
356 | nv_wr32(priv, 0x137160 + (clk * 0x04), info->dsrc); | 355 | nv_wr32(priv, 0x137160 + (clk * 0x04), info->dsrc); |
357 | } | 356 | } |
358 | } | 357 | } |
@@ -389,7 +388,10 @@ static void | |||
389 | nve0_clock_prog_3(struct nve0_clock_priv *priv, int clk) | 388 | nve0_clock_prog_3(struct nve0_clock_priv *priv, int clk) |
390 | { | 389 | { |
391 | struct nve0_clock_info *info = &priv->eng[clk]; | 390 | struct nve0_clock_info *info = &priv->eng[clk]; |
392 | nv_mask(priv, 0x137250 + (clk * 0x04), 0x00003f3f, info->mdiv); | 391 | if (info->ssel) |
392 | nv_mask(priv, 0x137250 + (clk * 0x04), 0x00003f00, info->mdiv); | ||
393 | else | ||
394 | nv_mask(priv, 0x137250 + (clk * 0x04), 0x0000003f, info->mdiv); | ||
393 | } | 395 | } |
394 | 396 | ||
395 | static void | 397 | static void |