drm/nouveau/gr/nv50-mcp89: add defines for gr classes
authorBen Skeggs <bskeggs@redhat.com>
Wed, 21 Dec 2016 02:46:50 +0000 (12:46 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 17 Feb 2017 05:14:32 +0000 (15:14 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvif/class.h
drivers/gpu/drm/nouveau/nvkm/engine/gr/g84.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gt200.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/gt215.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp79.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp89.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c

index 82235f3..9e4df72 100644 (file)
 #define NVIF_CLASS_SW_GF100                                   /* if0005.h */ -7
 
 /* the below match nvidia-assigned (either in hw, or sw) class numbers */
+#define NV_NULL_CLASS                                                0x00000030
+
 #define NV_DEVICE                                     /* cl0080.h */ 0x00000080
 
 #define NV_DMA_FROM_MEMORY                            /* cl0002.h */ 0x00000002
 #define NV_DMA_TO_MEMORY                              /* cl0002.h */ 0x00000003
 #define NV_DMA_IN_MEMORY                              /* cl0002.h */ 0x0000003d
 
+#define NV50_TWOD                                                    0x0000502d
 #define FERMI_TWOD_A                                                 0x0000902d
 
+#define NV50_MEMORY_TO_MEMORY_FORMAT                                 0x00005039
 #define FERMI_MEMORY_TO_MEMORY_FORMAT_A                              0x00009039
 
 #define KEPLER_INLINE_TO_MEMORY_A                                    0x0000a040
 #define GF110_DISP_OVERLAY_CONTROL_DMA                /* cl507e.h */ 0x0000907e
 #define GK104_DISP_OVERLAY_CONTROL_DMA                /* cl507e.h */ 0x0000917e
 
+#define NV50_TESLA                                                   0x00005097
+#define G82_TESLA                                                    0x00008297
+#define GT200_TESLA                                                  0x00008397
+#define GT214_TESLA                                                  0x00008597
+#define GT21A_TESLA                                                  0x00008697
+
 #define FERMI_A                                       /* cl9097.h */ 0x00009097
 #define FERMI_B                                       /* cl9097.h */ 0x00009197
 #define FERMI_C                                       /* cl9097.h */ 0x00009297
 
 #define FERMI_DECOMPRESS                                             0x000090b8
 
+#define NV50_COMPUTE                                                 0x000050c0
+#define GT214_COMPUTE                                                0x000085c0
 #define FERMI_COMPUTE_A                                              0x000090c0
 #define FERMI_COMPUTE_B                                              0x000091c0
 #define KEPLER_COMPUTE_A                                             0x0000a0c0
index ce91330..da1ba74 100644 (file)
@@ -25,6 +25,8 @@
 
 #include <subdev/timer.h>
 
+#include <nvif/class.h>
+
 static const struct nvkm_bitfield nv50_gr_status[] = {
        { 0x00000001, "BUSY" }, /* set when any bit is set */
        { 0x00000002, "DISPATCH" },
@@ -180,11 +182,11 @@ g84_gr = {
        .tlb_flush = g84_gr_tlb_flush,
        .units = nv50_gr_units,
        .sclass = {
-               { -1, -1, 0x0030, &nv50_gr_object },
-               { -1, -1, 0x502d, &nv50_gr_object },
-               { -1, -1, 0x5039, &nv50_gr_object },
-               { -1, -1, 0x50c0, &nv50_gr_object },
-               { -1, -1, 0x8297, &nv50_gr_object },
+               { -1, -1, NV_NULL_CLASS, &nv50_gr_object },
+               { -1, -1, NV50_TWOD, &nv50_gr_object },
+               { -1, -1, NV50_MEMORY_TO_MEMORY_FORMAT, &nv50_gr_object },
+               { -1, -1, NV50_COMPUTE, &nv50_gr_object },
+               { -1, -1, G82_TESLA, &nv50_gr_object },
                {}
        }
 };
index 2e68919..c711a55 100644 (file)
@@ -23,6 +23,8 @@
  */
 #include "nv50.h"
 
+#include <nvif/class.h>
+
 static const struct nvkm_gr_func
 gt200_gr = {
        .init = nv50_gr_init,
@@ -31,11 +33,11 @@ gt200_gr = {
        .tlb_flush = g84_gr_tlb_flush,
        .units = nv50_gr_units,
        .sclass = {
-               { -1, -1, 0x0030, &nv50_gr_object },
-               { -1, -1, 0x502d, &nv50_gr_object },
-               { -1, -1, 0x5039, &nv50_gr_object },
-               { -1, -1, 0x50c0, &nv50_gr_object },
-               { -1, -1, 0x8397, &nv50_gr_object },
+               { -1, -1, NV_NULL_CLASS, &nv50_gr_object },
+               { -1, -1, NV50_TWOD, &nv50_gr_object },
+               { -1, -1, NV50_MEMORY_TO_MEMORY_FORMAT, &nv50_gr_object },
+               { -1, -1, NV50_COMPUTE, &nv50_gr_object },
+               { -1, -1, GT200_TESLA, &nv50_gr_object },
                {}
        }
 };
index 2bf7aac..fa103df 100644 (file)
@@ -23,6 +23,8 @@
  */
 #include "nv50.h"
 
+#include <nvif/class.h>
+
 static const struct nvkm_gr_func
 gt215_gr = {
        .init = nv50_gr_init,
@@ -31,12 +33,12 @@ gt215_gr = {
        .tlb_flush = g84_gr_tlb_flush,
        .units = nv50_gr_units,
        .sclass = {
-               { -1, -1, 0x0030, &nv50_gr_object },
-               { -1, -1, 0x502d, &nv50_gr_object },
-               { -1, -1, 0x5039, &nv50_gr_object },
-               { -1, -1, 0x50c0, &nv50_gr_object },
-               { -1, -1, 0x8597, &nv50_gr_object },
-               { -1, -1, 0x85c0, &nv50_gr_object },
+               { -1, -1, NV_NULL_CLASS, &nv50_gr_object },
+               { -1, -1, NV50_TWOD, &nv50_gr_object },
+               { -1, -1, NV50_MEMORY_TO_MEMORY_FORMAT, &nv50_gr_object },
+               { -1, -1, NV50_COMPUTE, &nv50_gr_object },
+               { -1, -1, GT214_TESLA, &nv50_gr_object },
+               { -1, -1, GT214_COMPUTE, &nv50_gr_object },
                {}
        }
 };
index 95d5219..eb1a906 100644 (file)
@@ -23,6 +23,8 @@
  */
 #include "nv50.h"
 
+#include <nvif/class.h>
+
 static const struct nvkm_gr_func
 mcp79_gr = {
        .init = nv50_gr_init,
@@ -30,11 +32,11 @@ mcp79_gr = {
        .chan_new = nv50_gr_chan_new,
        .units = nv50_gr_units,
        .sclass = {
-               { -1, -1, 0x0030, &nv50_gr_object },
-               { -1, -1, 0x502d, &nv50_gr_object },
-               { -1, -1, 0x5039, &nv50_gr_object },
-               { -1, -1, 0x50c0, &nv50_gr_object },
-               { -1, -1, 0x8397, &nv50_gr_object },
+               { -1, -1, NV_NULL_CLASS, &nv50_gr_object },
+               { -1, -1, NV50_TWOD, &nv50_gr_object },
+               { -1, -1, NV50_MEMORY_TO_MEMORY_FORMAT, &nv50_gr_object },
+               { -1, -1, NV50_COMPUTE, &nv50_gr_object },
+               { -1, -1, GT200_TESLA, &nv50_gr_object },
                {}
        }
 };
index 027b58e..c91eb56 100644 (file)
@@ -23,6 +23,8 @@
  */
 #include "nv50.h"
 
+#include <nvif/class.h>
+
 static const struct nvkm_gr_func
 mcp89_gr = {
        .init = nv50_gr_init,
@@ -31,12 +33,12 @@ mcp89_gr = {
        .tlb_flush = g84_gr_tlb_flush,
        .units = nv50_gr_units,
        .sclass = {
-               { -1, -1, 0x0030, &nv50_gr_object },
-               { -1, -1, 0x502d, &nv50_gr_object },
-               { -1, -1, 0x5039, &nv50_gr_object },
-               { -1, -1, 0x50c0, &nv50_gr_object },
-               { -1, -1, 0x85c0, &nv50_gr_object },
-               { -1, -1, 0x8697, &nv50_gr_object },
+               { -1, -1, NV_NULL_CLASS, &nv50_gr_object },
+               { -1, -1, NV50_TWOD, &nv50_gr_object },
+               { -1, -1, NV50_MEMORY_TO_MEMORY_FORMAT, &nv50_gr_object },
+               { -1, -1, NV50_COMPUTE, &nv50_gr_object },
+               { -1, -1, GT214_COMPUTE, &nv50_gr_object },
+               { -1, -1, GT21A_TESLA, &nv50_gr_object },
                {}
        }
 };
index fca67de..df16ffd 100644 (file)
@@ -27,6 +27,8 @@
 #include <core/gpuobj.h>
 #include <engine/fifo.h>
 
+#include <nvif/class.h>
+
 u64
 nv50_gr_units(struct nvkm_gr *gr)
 {
@@ -778,11 +780,11 @@ nv50_gr = {
        .chan_new = nv50_gr_chan_new,
        .units = nv50_gr_units,
        .sclass = {
-               { -1, -1, 0x0030, &nv50_gr_object },
-               { -1, -1, 0x502d, &nv50_gr_object },
-               { -1, -1, 0x5039, &nv50_gr_object },
-               { -1, -1, 0x5097, &nv50_gr_object },
-               { -1, -1, 0x50c0, &nv50_gr_object },
+               { -1, -1, NV_NULL_CLASS, &nv50_gr_object },
+               { -1, -1, NV50_TWOD, &nv50_gr_object },
+               { -1, -1, NV50_MEMORY_TO_MEMORY_FORMAT, &nv50_gr_object },
+               { -1, -1, NV50_TESLA, &nv50_gr_object },
+               { -1, -1, NV50_COMPUTE, &nv50_gr_object },
                {}
        }
 };