From: Ben Skeggs <bskeggs@redhat.com>
Date: Thu, 24 Oct 2013 23:59:14 +0000 (+1000)
Subject: drm/nvd9-/disp: disable display underflow reporting at init
X-Git-Tag: firefly_0821_release~176^2~4694^2~61
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e8d95b22b415bab6e411d6d0db82e26b4227762b;p=firefly-linux-kernel-4.4.55.git

drm/nvd9-/disp: disable display underflow reporting at init

Reported-by: Andy Ritger <aritger@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
---

diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c b/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c
index 52dd7a1db729..378a015091d2 100644
--- a/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c
+++ b/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c
@@ -541,6 +541,15 @@ nvd0_disp_base_init(struct nouveau_object *object)
 	nv_wr32(priv, 0x6100a0, 0x00000000);
 	nv_wr32(priv, 0x6100b0, 0x00000307);
 
+	/* disable underflow reporting, preventing an intermittent issue
+	 * on some nve4 boards where the production vbios left this
+	 * setting enabled by default.
+	 *
+	 * ftp://download.nvidia.com/open-gpu-doc/gk104-disable-underflow-reporting/1/gk104-disable-underflow-reporting.txt
+	 */
+	for (i = 0; i < priv->head.nr; i++)
+		nv_mask(priv, 0x616308 + (i * 0x800), 0x00000111, 0x00000010);
+
 	return 0;
 }