瀏覽代碼

drm/nv10-nv20: Fix instability after MPLL changes.

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Francisco Jerez 14 年之前
父節點
當前提交
63d6fd3288
共有 1 個文件被更改,包括 9 次插入0 次删除
  1. 9 0
      drivers/gpu/drm/nouveau/nv04_pm.c

+ 9 - 0
drivers/gpu/drm/nouveau/nv04_pm.c

@@ -76,6 +76,15 @@ nv04_pm_clock_set(struct drm_device *dev, void *pre_state)
 		reg += 4;
 
 	nouveau_hw_setpll(dev, reg, &state->calc);
+
+	if (dev_priv->card_type < NV_30 && reg == NV_PRAMDAC_MPLL_COEFF) {
+		if (dev_priv->card_type == NV_20)
+			nv_mask(dev, 0x1002c4, 0, 1 << 20);
+
+		/* Reset the DLLs */
+		nv_mask(dev, 0x1002c0, 0, 1 << 8);
+	}
+
 	kfree(state);
 }