From: Ben Skeggs <bskeggs@redhat.com>
Date: Fri, 16 Nov 2012 01:44:14 +0000 (+1000)
Subject: drm/nvd0/disp: enable support for older display classes
X-Git-Tag: firefly_0821_release~3680^2~1383^2~53
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=63718a0730c666edcac94c261d1df5edef80fd23;p=firefly-linux-kernel-4.4.55.git

drm/nvd0/disp: enable support for older display classes

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
---

diff --git a/drivers/gpu/drm/nouveau/nvd0_display.c b/drivers/gpu/drm/nouveau/nvd0_display.c
index 9d001c994d11..d0920acea741 100644
--- a/drivers/gpu/drm/nouveau/nvd0_display.c
+++ b/drivers/gpu/drm/nouveau/nvd0_display.c
@@ -1896,6 +1896,11 @@ nvd0_display_create(struct drm_device *dev)
 	static const u16 oclass[] = {
 		NVE0_DISP_CLASS,
 		NVD0_DISP_CLASS,
+		NVA3_DISP_CLASS,
+		NV94_DISP_CLASS,
+		NVA0_DISP_CLASS,
+		NV84_DISP_CLASS,
+		NV50_DISP_CLASS,
 	};
 	struct nouveau_device *device = nouveau_dev(dev);
 	struct nouveau_drm *drm = nouveau_drm(dev);
@@ -1949,7 +1954,11 @@ nvd0_display_create(struct drm_device *dev)
 		goto out;
 
 	/* create crtc objects to represent the hw heads */
-	crtcs = nv_rd32(device, 0x022448);
+	if (nv_mclass(disp->core) >= NVD0_DISP_CLASS)
+		crtcs = nv_rd32(device, 0x022448);
+	else
+		crtcs = 2;
+
 	for (i = 0; i < crtcs; i++) {
 		ret = nvd0_crtc_create(dev, disp->core, i);
 		if (ret)