drm/nv50/disp: initial implementation of the various channel object classes

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nva3.c b/drivers/gpu/drm/nouveau/core/engine/disp/nva3.c
index e8da5e0..08945cb 100644
--- a/drivers/gpu/drm/nouveau/core/engine/disp/nva3.c
+++ b/drivers/gpu/drm/nouveau/core/engine/disp/nva3.c
@@ -25,21 +25,24 @@
 #include <engine/software.h>
 #include <engine/disp.h>
 
+#include <core/class.h>
+
 #include "nv50.h"
 
 static struct nouveau_oclass
 nva3_disp_sclass[] = {
-	{ 0x857d, &nv50_disp_mast_ofuncs }, /* master */
-	{ 0x857c, &nv50_disp_dmac_ofuncs }, /* sync */
-	{ 0x857e, &nv50_disp_dmac_ofuncs }, /* overlay */
-	{ 0x857b, &nv50_disp_pioc_ofuncs }, /* overlay (pio) */
-	{ 0x857a, &nv50_disp_pioc_ofuncs }, /* cursor (pio) */
+	{ NVA3_DISP_MAST_CLASS, &nv50_disp_mast_ofuncs },
+	{ NVA3_DISP_SYNC_CLASS, &nv50_disp_sync_ofuncs },
+	{ NVA3_DISP_OVLY_CLASS, &nv50_disp_ovly_ofuncs },
+	{ NVA3_DISP_OIMM_CLASS, &nv50_disp_oimm_ofuncs },
+	{ NVA3_DISP_CURS_CLASS, &nv50_disp_curs_ofuncs },
 	{}
 };
 
 static struct nouveau_oclass
 nva3_disp_base_oclass[] = {
-	{ 0x8570, &nv50_disp_base_ofuncs },
+	{ NVA3_DISP_CLASS, &nv50_disp_base_ofuncs },
+	{}
 };
 
 static int