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 82235f30277c7b99bdd222e53af3f8128b20eb75..9e4df725f29b291f15199930fe7391057126fdcd 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 ce913300539fedaaec01af7837f8f5e8dbe33974..da1ba74682b4448955e4e81d0ffd2a48282c3f2b 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 2e68919f00b205e7d8a88446983586c87a6bef59..c711a55ce392f3f8f37d70448d4a68c999253283 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 2bf7aac360cc5881356c02ad67c5d6703d9b0a5d..fa103df32ec755e796691bcbef16c7e8ac36f030 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 95d5219faf93604c65cde77da5694b6f830bacee..eb1a90644752bb55da6531953bb069d638f35dae 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 027b58e5976b38dbf1272ad9253ebeccc02cf0d4..c91eb56e93279e9723659f9d4668c9934a2ff592 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 fca67de43f2b6f7d8710f7382d52bb5c6ba0b029..df16ffda17491d29f6706de8208e56fdafaa68a8 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 },
                {}
        }
 };