#define NV_DMA_TO_MEMORY                                             0x00000003
 #define NV_DMA_IN_MEMORY                                             0x0000003d
 
+#define FERMI_TWOD_A                                                 0x0000902d
+
+#define FERMI_MEMORY_TO_MEMORY_FORMAT_A                              0x0000903d
+
+#define KEPLER_INLINE_TO_MEMORY_A                                    0x0000a040
+#define KEPLER_INLINE_TO_MEMORY_B                                    0x0000a140
+
 #define NV04_DISP                                                    0x00000046
 
 #define NV03_CHANNEL_DMA                                             0x0000006b
 
 
 struct nvkm_oclass
 gf100_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0x9039, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { FERMI_MEMORY_TO_MEMORY_FORMAT_A, &nvkm_object_ofuncs },
        { FERMI_A, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { FERMI_COMPUTE_A, &nvkm_object_ofuncs, gf100_gr_90c0_omthds },
        {}
 
 
 static struct nvkm_oclass
 gf108_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0x9039, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { FERMI_MEMORY_TO_MEMORY_FORMAT_A, &nvkm_object_ofuncs },
        { FERMI_A, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { FERMI_B, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { FERMI_COMPUTE_A, &nvkm_object_ofuncs, gf100_gr_90c0_omthds },
 
 
 struct nvkm_oclass
 gf110_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0x9039, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { FERMI_MEMORY_TO_MEMORY_FORMAT_A, &nvkm_object_ofuncs },
        { FERMI_A, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { FERMI_B, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { FERMI_C, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
 
 
 static struct nvkm_oclass
 gk104_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0xa040, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { KEPLER_INLINE_TO_MEMORY_A, &nvkm_object_ofuncs },
        { KEPLER_A, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { KEPLER_COMPUTE_A, &nvkm_object_ofuncs, gf100_gr_90c0_omthds },
        {}
 
 
 struct nvkm_oclass
 gk110_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0xa140, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { KEPLER_INLINE_TO_MEMORY_B, &nvkm_object_ofuncs },
        { KEPLER_B, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { KEPLER_COMPUTE_B, &nvkm_object_ofuncs, gf100_gr_90c0_omthds },
        {}
 
 
 static struct nvkm_oclass
 gk208_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0xa140, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { KEPLER_INLINE_TO_MEMORY_B, &nvkm_object_ofuncs },
        { KEPLER_B, &gf100_fermi_ofuncs },
-       { 0xa1c0, &nvkm_object_ofuncs },
+       { KEPLER_COMPUTE_B, &nvkm_object_ofuncs },
        {}
 };
 
 
 
 static struct nvkm_oclass
 gk20a_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0xa040, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { KEPLER_INLINE_TO_MEMORY_A, &nvkm_object_ofuncs },
        { KEPLER_C, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { KEPLER_COMPUTE_A, &nvkm_object_ofuncs, gf100_gr_90c0_omthds },
        {}
 
 
 static struct nvkm_oclass
 gm107_gr_sclass[] = {
-       { 0x902d, &nvkm_object_ofuncs },
-       { 0xa140, &nvkm_object_ofuncs },
+       { FERMI_TWOD_A, &nvkm_object_ofuncs },
+       { KEPLER_INLINE_TO_MEMORY_B, &nvkm_object_ofuncs },
        { MAXWELL_A, &gf100_fermi_ofuncs, gf100_gr_9097_omthds },
        { MAXWELL_COMPUTE_A, &nvkm_object_ofuncs, gf100_gr_90c0_omthds },
        {}