summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-09-28 13:34:27 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-10-17 13:43:39 -0400
commitb252653ac5f2b12a9a84476f9dde6a844a77a602 (patch)
treed2ca5a3f56c652db2e30e21409f3f1ab1994d0a3
parent5c5b52dce54fa09d16ae38a232a0e17b4729b472 (diff)
gpu: nvgpu: Move rest of CDE structures to Linux
Move rest of CDE structures to common/linux. This includes moving the per-chip firmware file interpretation functions, and removing CDE ops from HAL and adding it to nvgpu_os_linux. JIRA NVGPU-259 Change-Id: I59d8f44bddadecef81ad3c455b363a14034c5e13 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1570403 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/Makefile.nvgpu4
-rw-r--r--drivers/gpu/nvgpu/common/linux/cde.c10
-rw-r--r--drivers/gpu/nvgpu/common/linux/cde_gm20b.c (renamed from drivers/gpu/nvgpu/gm20b/cde_gm20b.c)8
-rw-r--r--drivers/gpu/nvgpu/common/linux/cde_gm20b.h (renamed from drivers/gpu/nvgpu/gm20b/cde_gm20b.h)7
-rw-r--r--drivers/gpu/nvgpu/common/linux/cde_gp10b.c (renamed from drivers/gpu/nvgpu/gp10b/cde_gp10b.c)8
-rw-r--r--drivers/gpu/nvgpu/common/linux/cde_gp10b.h (renamed from drivers/gpu/nvgpu/gp10b/cde_gp10b.h)14
-rw-r--r--drivers/gpu/nvgpu/common/linux/module.c26
-rw-r--r--drivers/gpu/nvgpu/common/linux/os_linux.h18
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h12
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c5
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c7
-rw-r--r--drivers/gpu/nvgpu/gp10b/hal_gp10b.c7
-rw-r--r--drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c5
-rw-r--r--drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c7
14 files changed, 70 insertions, 68 deletions
diff --git a/drivers/gpu/nvgpu/Makefile.nvgpu b/drivers/gpu/nvgpu/Makefile.nvgpu
index 02fb8529..3f3978f9 100644
--- a/drivers/gpu/nvgpu/Makefile.nvgpu
+++ b/drivers/gpu/nvgpu/Makefile.nvgpu
@@ -48,6 +48,8 @@ nvgpu-y := \
48 common/linux/cde.o \ 48 common/linux/cde.o \
49 common/linux/io.o \ 49 common/linux/io.o \
50 common/linux/rwsem.o \ 50 common/linux/rwsem.o \
51 common/linux/cde_gm20b.o \
52 common/linux/cde_gp10b.o \
51 common/mm/nvgpu_allocator.o \ 53 common/mm/nvgpu_allocator.o \
52 common/mm/bitmap_allocator.o \ 54 common/mm/bitmap_allocator.o \
53 common/mm/buddy_allocator.o \ 55 common/mm/buddy_allocator.o \
@@ -115,7 +117,6 @@ nvgpu-y := \
115 gm20b/pmu_gm20b.o \ 117 gm20b/pmu_gm20b.o \
116 gm20b/mm_gm20b.o \ 118 gm20b/mm_gm20b.o \
117 gm20b/regops_gm20b.o \ 119 gm20b/regops_gm20b.o \
118 gm20b/cde_gm20b.o \
119 gm20b/therm_gm20b.o \ 120 gm20b/therm_gm20b.o \
120 boardobj/boardobj.o \ 121 boardobj/boardobj.o \
121 boardobj/boardobjgrp.o \ 122 boardobj/boardobjgrp.o \
@@ -192,7 +193,6 @@ nvgpu-y += \
192 gp10b/rpfb_gp10b.o \ 193 gp10b/rpfb_gp10b.o \
193 gp10b/gp10b_gating_reglist.o \ 194 gp10b/gp10b_gating_reglist.o \
194 gp10b/regops_gp10b.o \ 195 gp10b/regops_gp10b.o \
195 gp10b/cde_gp10b.o \
196 gp10b/therm_gp10b.o \ 196 gp10b/therm_gp10b.o \
197 gp10b/fecs_trace_gp10b.o \ 197 gp10b/fecs_trace_gp10b.o \
198 gp10b/priv_ring_gp10b.o \ 198 gp10b/priv_ring_gp10b.o \
diff --git a/drivers/gpu/nvgpu/common/linux/cde.c b/drivers/gpu/nvgpu/common/linux/cde.c
index 2832408d..c3a9b770 100644
--- a/drivers/gpu/nvgpu/common/linux/cde.c
+++ b/drivers/gpu/nvgpu/common/linux/cde.c
@@ -1068,8 +1068,8 @@ __releases(&l->cde_app->mutex)
1068 } 1068 }
1069 1069
1070 if (scatterbuffer_byte_offset && 1070 if (scatterbuffer_byte_offset &&
1071 g->ops.cde.need_scatter_buffer && 1071 l->ops.cde.need_scatter_buffer &&
1072 g->ops.cde.need_scatter_buffer(g)) { 1072 l->ops.cde.need_scatter_buffer(g)) {
1073 struct sg_table *sgt; 1073 struct sg_table *sgt;
1074 void *scatter_buffer; 1074 void *scatter_buffer;
1075 1075
@@ -1092,7 +1092,7 @@ __releases(&l->cde_app->mutex)
1092 err = -EINVAL; 1092 err = -EINVAL;
1093 goto exit_unmap_surface; 1093 goto exit_unmap_surface;
1094 } else { 1094 } else {
1095 err = g->ops.cde.populate_scatter_buffer(g, sgt, 1095 err = l->ops.cde.populate_scatter_buffer(g, sgt,
1096 compbits_byte_offset, scatter_buffer, 1096 compbits_byte_offset, scatter_buffer,
1097 scatterbuffer_size); 1097 scatterbuffer_size);
1098 WARN_ON(err); 1098 WARN_ON(err);
@@ -1463,8 +1463,8 @@ static int gk20a_buffer_convert_gpu_to_cde_v1(
1463 int hprog = -1; 1463 int hprog = -1;
1464 int vprog = -1; 1464 int vprog = -1;
1465 1465
1466 if (g->ops.cde.get_program_numbers) 1466 if (l->ops.cde.get_program_numbers)
1467 g->ops.cde.get_program_numbers(g, block_height_log2, 1467 l->ops.cde.get_program_numbers(g, block_height_log2,
1468 l->cde_app.shader_parameter, 1468 l->cde_app.shader_parameter,
1469 &hprog, &vprog); 1469 &hprog, &vprog);
1470 else { 1470 else {
diff --git a/drivers/gpu/nvgpu/gm20b/cde_gm20b.c b/drivers/gpu/nvgpu/common/linux/cde_gm20b.c
index f22e5126..1cd15c54 100644
--- a/drivers/gpu/nvgpu/gm20b/cde_gm20b.c
+++ b/drivers/gpu/nvgpu/common/linux/cde_gm20b.c
@@ -35,7 +35,7 @@ enum programs {
35 PROG_PASSTHROUGH = 6, 35 PROG_PASSTHROUGH = 6,
36}; 36};
37 37
38void gm20b_cde_get_program_numbers(struct gk20a *g, 38static void gm20b_cde_get_program_numbers(struct gk20a *g,
39 u32 block_height_log2, 39 u32 block_height_log2,
40 u32 shader_parameter, 40 u32 shader_parameter,
41 int *hprog_out, int *vprog_out) 41 int *hprog_out, int *vprog_out)
@@ -56,3 +56,9 @@ void gm20b_cde_get_program_numbers(struct gk20a *g,
56 *hprog_out = hprog; 56 *hprog_out = hprog;
57 *vprog_out = vprog; 57 *vprog_out = vprog;
58} 58}
59
60struct nvgpu_os_linux_ops gm20b_cde_ops = {
61 .cde = {
62 .get_program_numbers = gm20b_cde_get_program_numbers,
63 },
64};
diff --git a/drivers/gpu/nvgpu/gm20b/cde_gm20b.h b/drivers/gpu/nvgpu/common/linux/cde_gm20b.h
index dfd67d62..640d6ab6 100644
--- a/drivers/gpu/nvgpu/gm20b/cde_gm20b.h
+++ b/drivers/gpu/nvgpu/common/linux/cde_gm20b.h
@@ -25,11 +25,8 @@
25#ifndef _NVHOST_GM20B_CDE 25#ifndef _NVHOST_GM20B_CDE
26#define _NVHOST_GM20B_CDE 26#define _NVHOST_GM20B_CDE
27 27
28struct gk20a; 28#include "os_linux.h"
29 29
30void gm20b_cde_get_program_numbers(struct gk20a *g, 30extern struct nvgpu_os_linux_ops gm20b_cde_ops;
31 u32 block_height_log2,
32 u32 shader_parameter,
33 int *hprog_out, int *vprog_out);
34 31
35#endif 32#endif
diff --git a/drivers/gpu/nvgpu/gp10b/cde_gp10b.c b/drivers/gpu/nvgpu/common/linux/cde_gp10b.c
index ed8cb8ef..ffae6e34 100644
--- a/drivers/gpu/nvgpu/gp10b/cde_gp10b.c
+++ b/drivers/gpu/nvgpu/common/linux/cde_gp10b.c
@@ -150,3 +150,11 @@ int gp10b_populate_scatter_buffer(struct gk20a *g,
150 150
151 return 0; 151 return 0;
152} 152}
153
154struct nvgpu_os_linux_ops gp10b_cde_ops = {
155 .cde = {
156 .get_program_numbers = gp10b_cde_get_program_numbers,
157 .need_scatter_buffer = gp10b_need_scatter_buffer,
158 .populate_scatter_buffer = gp10b_populate_scatter_buffer,
159 },
160};
diff --git a/drivers/gpu/nvgpu/gp10b/cde_gp10b.h b/drivers/gpu/nvgpu/common/linux/cde_gp10b.h
index a03e8078..52e9f292 100644
--- a/drivers/gpu/nvgpu/gp10b/cde_gp10b.h
+++ b/drivers/gpu/nvgpu/common/linux/cde_gp10b.h
@@ -25,18 +25,8 @@
25#ifndef _NVHOST_GP10B_CDE 25#ifndef _NVHOST_GP10B_CDE
26#define _NVHOST_GP10B_CDE 26#define _NVHOST_GP10B_CDE
27 27
28struct gk20a; 28#include "os_linux.h"
29struct sg_table;
30 29
31void gp10b_cde_get_program_numbers(struct gk20a *g, 30extern struct nvgpu_os_linux_ops gp10b_cde_ops;
32 u32 block_height_log2,
33 u32 shader_parameter,
34 int *hprog_out, int *vprog_out);
35bool gp10b_need_scatter_buffer(struct gk20a *g);
36int gp10b_populate_scatter_buffer(struct gk20a *g,
37 struct sg_table *sgt,
38 size_t surface_size,
39 void *scatter_buffer_ptr,
40 size_t scatter_buffer_size);
41 31
42#endif 32#endif
diff --git a/drivers/gpu/nvgpu/common/linux/module.c b/drivers/gpu/nvgpu/common/linux/module.c
index fe3e4e6f..b7d13f05 100644
--- a/drivers/gpu/nvgpu/common/linux/module.c
+++ b/drivers/gpu/nvgpu/common/linux/module.c
@@ -49,6 +49,8 @@
49#endif 49#endif
50#endif 50#endif
51#include "os_linux.h" 51#include "os_linux.h"
52#include "cde_gm20b.h"
53#include "cde_gp10b.h"
52 54
53#define CLASS_NAME "nvidia-gpu" 55#define CLASS_NAME "nvidia-gpu"
54/* TODO: Change to e.g. "nvidia-gpu%s" once we have symlinks in place. */ 56/* TODO: Change to e.g. "nvidia-gpu%s" once we have symlinks in place. */
@@ -154,6 +156,26 @@ static int gk20a_restore_registers(struct gk20a *g)
154 return 0; 156 return 0;
155} 157}
156 158
159static int nvgpu_init_os_linux_ops(struct nvgpu_os_linux *l) {
160 struct gk20a *g = &l->g;
161 u32 ver = g->gpu_characteristics.arch + g->gpu_characteristics.impl;
162
163 switch (ver) {
164 case GK20A_GPUID_GM20B:
165 case GK20A_GPUID_GM20B_B:
166 l->ops.cde = gm20b_cde_ops.cde;
167 break;
168 case NVGPU_GPUID_GP10B:
169 l->ops.cde = gp10b_cde_ops.cde;
170 break;
171 default:
172 /* CDE is optional, so today ignoring unknown chip is fine */
173 break;
174 }
175
176 return 0;
177}
178
157int gk20a_pm_finalize_poweron(struct device *dev) 179int gk20a_pm_finalize_poweron(struct device *dev)
158{ 180{
159 struct gk20a *g = get_gk20a(dev); 181 struct gk20a *g = get_gk20a(dev);
@@ -198,6 +220,10 @@ int gk20a_pm_finalize_poweron(struct device *dev)
198 220
199 trace_gk20a_finalize_poweron_done(dev_name(dev)); 221 trace_gk20a_finalize_poweron_done(dev_name(dev));
200 222
223 err = nvgpu_init_os_linux_ops(l);
224 if (err)
225 goto done;
226
201 enable_irq(g->irq_stall); 227 enable_irq(g->irq_stall);
202 if (g->irq_stall != g->irq_nonstall) 228 if (g->irq_stall != g->irq_nonstall)
203 enable_irq(g->irq_nonstall); 229 enable_irq(g->irq_nonstall);
diff --git a/drivers/gpu/nvgpu/common/linux/os_linux.h b/drivers/gpu/nvgpu/common/linux/os_linux.h
index c67cbbcc..27433e32 100644
--- a/drivers/gpu/nvgpu/common/linux/os_linux.h
+++ b/drivers/gpu/nvgpu/common/linux/os_linux.h
@@ -24,6 +24,21 @@
24#include "gk20a/gk20a.h" 24#include "gk20a/gk20a.h"
25#include "cde.h" 25#include "cde.h"
26 26
27struct nvgpu_os_linux_ops {
28 struct {
29 void (*get_program_numbers)(struct gk20a *g,
30 u32 block_height_log2,
31 u32 shader_parameter,
32 int *hprog, int *vprog);
33 bool (*need_scatter_buffer)(struct gk20a *g);
34 int (*populate_scatter_buffer)(struct gk20a *g,
35 struct sg_table *sgt,
36 size_t surface_size,
37 void *scatter_buffer_ptr,
38 size_t scatter_buffer_size);
39 } cde;
40};
41
27struct nvgpu_os_linux { 42struct nvgpu_os_linux {
28 struct gk20a g; 43 struct gk20a g;
29 struct device *dev; 44 struct device *dev;
@@ -99,6 +114,9 @@ struct nvgpu_os_linux {
99#ifdef CONFIG_TEGRA_19x_GPU 114#ifdef CONFIG_TEGRA_19x_GPU
100 struct nvgpu_os_linux_t19x t19x; 115 struct nvgpu_os_linux_t19x t19x;
101#endif 116#endif
117
118 struct nvgpu_os_linux_ops ops;
119
102#ifdef CONFIG_DEBUG_FS 120#ifdef CONFIG_DEBUG_FS
103 struct dentry *debugfs; 121 struct dentry *debugfs;
104 struct dentry *debugfs_alias; 122 struct dentry *debugfs_alias;
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index ead1f69e..9d272646 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -943,18 +943,6 @@ struct gpu_ops {
943 int (*perfbuffer_enable)(struct gk20a *g, u64 offset, u32 size); 943 int (*perfbuffer_enable)(struct gk20a *g, u64 offset, u32 size);
944 int (*perfbuffer_disable)(struct gk20a *g); 944 int (*perfbuffer_disable)(struct gk20a *g);
945 } dbg_session_ops; 945 } dbg_session_ops;
946 struct {
947 void (*get_program_numbers)(struct gk20a *g,
948 u32 block_height_log2,
949 u32 shader_parameter,
950 int *hprog, int *vprog);
951 bool (*need_scatter_buffer)(struct gk20a *g);
952 int (*populate_scatter_buffer)(struct gk20a *g,
953 struct sg_table *sgt,
954 size_t surface_size,
955 void *scatter_buffer_ptr,
956 size_t scatter_buffer_size);
957 } cde;
958 946
959 int (*get_litter_value)(struct gk20a *g, int value); 947 int (*get_litter_value)(struct gk20a *g, int value);
960 int (*chip_init_gpu_characteristics)(struct gk20a *g); 948 int (*chip_init_gpu_characteristics)(struct gk20a *g);
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index 39d05978..50cc759a 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -50,7 +50,6 @@
50#include "pmu_gm20b.h" 50#include "pmu_gm20b.h"
51#include "clk_gm20b.h" 51#include "clk_gm20b.h"
52#include "regops_gm20b.h" 52#include "regops_gm20b.h"
53#include "cde_gm20b.h"
54#include "therm_gm20b.h" 53#include "therm_gm20b.h"
55#include "bus_gm20b.h" 54#include "bus_gm20b.h"
56#include "hal_gm20b.h" 55#include "hal_gm20b.h"
@@ -539,9 +538,6 @@ static const struct gpu_ops gm20b_ops = {
539 .perfbuffer_enable = gk20a_perfbuf_enable_locked, 538 .perfbuffer_enable = gk20a_perfbuf_enable_locked,
540 .perfbuffer_disable = gk20a_perfbuf_disable_locked, 539 .perfbuffer_disable = gk20a_perfbuf_disable_locked,
541 }, 540 },
542 .cde = {
543 .get_program_numbers = gm20b_cde_get_program_numbers,
544 },
545 .bus = { 541 .bus = {
546 .init_hw = gk20a_bus_init_hw, 542 .init_hw = gk20a_bus_init_hw,
547 .isr = gk20a_bus_isr, 543 .isr = gk20a_bus_isr,
@@ -601,7 +597,6 @@ int gm20b_init_hal(struct gk20a *g)
601 gops->mc = gm20b_ops.mc; 597 gops->mc = gm20b_ops.mc;
602 gops->dbg_session_ops = gm20b_ops.dbg_session_ops; 598 gops->dbg_session_ops = gm20b_ops.dbg_session_ops;
603 gops->debug = gm20b_ops.debug; 599 gops->debug = gm20b_ops.debug;
604 gops->cde = gm20b_ops.cde;
605 gops->bus = gm20b_ops.bus; 600 gops->bus = gm20b_ops.bus;
606#if defined(CONFIG_GK20A_CYCLE_STATS) 601#if defined(CONFIG_GK20A_CYCLE_STATS)
607 gops->css = gm20b_ops.css; 602 gops->css = gm20b_ops.css;
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 8523e7d1..204c376b 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -45,7 +45,6 @@
45#include "gp10b/mm_gp10b.h" 45#include "gp10b/mm_gp10b.h"
46#include "gp10b/ce_gp10b.h" 46#include "gp10b/ce_gp10b.h"
47#include "gp10b/regops_gp10b.h" 47#include "gp10b/regops_gp10b.h"
48#include "gp10b/cde_gp10b.h"
49#include "gp10b/priv_ring_gp10b.h" 48#include "gp10b/priv_ring_gp10b.h"
50#include "gp10b/fifo_gp10b.h" 49#include "gp10b/fifo_gp10b.h"
51#include "gp10b/fb_gp10b.h" 50#include "gp10b/fb_gp10b.h"
@@ -654,11 +653,6 @@ static const struct gpu_ops gp106_ops = {
654 .perfbuffer_enable = gk20a_perfbuf_enable_locked, 653 .perfbuffer_enable = gk20a_perfbuf_enable_locked,
655 .perfbuffer_disable = gk20a_perfbuf_disable_locked, 654 .perfbuffer_disable = gk20a_perfbuf_disable_locked,
656 }, 655 },
657 .cde = {
658 .get_program_numbers = gp10b_cde_get_program_numbers,
659 .need_scatter_buffer = gp10b_need_scatter_buffer,
660 .populate_scatter_buffer = gp10b_populate_scatter_buffer,
661 },
662 .bus = { 656 .bus = {
663 .init_hw = gk20a_bus_init_hw, 657 .init_hw = gk20a_bus_init_hw,
664 .isr = gk20a_bus_isr, 658 .isr = gk20a_bus_isr,
@@ -738,7 +732,6 @@ int gp106_init_hal(struct gk20a *g)
738 gops->mc = gp106_ops.mc; 732 gops->mc = gp106_ops.mc;
739 gops->debug = gp106_ops.debug; 733 gops->debug = gp106_ops.debug;
740 gops->dbg_session_ops = gp106_ops.dbg_session_ops; 734 gops->dbg_session_ops = gp106_ops.dbg_session_ops;
741 gops->cde = gp106_ops.cde;
742 gops->bus = gp106_ops.bus; 735 gops->bus = gp106_ops.bus;
743#if defined(CONFIG_GK20A_CYCLE_STATS) 736#if defined(CONFIG_GK20A_CYCLE_STATS)
744 gops->css = gp106_ops.css; 737 gops->css = gp106_ops.css;
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
index 61284225..90e8137b 100644
--- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
@@ -51,7 +51,6 @@
51#include "gp10b/fifo_gp10b.h" 51#include "gp10b/fifo_gp10b.h"
52#include "gp10b/gp10b_gating_reglist.h" 52#include "gp10b/gp10b_gating_reglist.h"
53#include "gp10b/regops_gp10b.h" 53#include "gp10b/regops_gp10b.h"
54#include "gp10b/cde_gp10b.h"
55#include "gp10b/therm_gp10b.h" 54#include "gp10b/therm_gp10b.h"
56#include "gp10b/priv_ring_gp10b.h" 55#include "gp10b/priv_ring_gp10b.h"
57 56
@@ -574,11 +573,6 @@ static const struct gpu_ops gp10b_ops = {
574 .perfbuffer_enable = gk20a_perfbuf_enable_locked, 573 .perfbuffer_enable = gk20a_perfbuf_enable_locked,
575 .perfbuffer_disable = gk20a_perfbuf_disable_locked, 574 .perfbuffer_disable = gk20a_perfbuf_disable_locked,
576 }, 575 },
577 .cde = {
578 .get_program_numbers = gp10b_cde_get_program_numbers,
579 .need_scatter_buffer = gp10b_need_scatter_buffer,
580 .populate_scatter_buffer = gp10b_populate_scatter_buffer,
581 },
582 .bus = { 576 .bus = {
583 .init_hw = gk20a_bus_init_hw, 577 .init_hw = gk20a_bus_init_hw,
584 .isr = gk20a_bus_isr, 578 .isr = gk20a_bus_isr,
@@ -628,7 +622,6 @@ int gp10b_init_hal(struct gk20a *g)
628 gops->mc = gp10b_ops.mc; 622 gops->mc = gp10b_ops.mc;
629 gops->debug = gp10b_ops.debug; 623 gops->debug = gp10b_ops.debug;
630 gops->dbg_session_ops = gp10b_ops.dbg_session_ops; 624 gops->dbg_session_ops = gp10b_ops.dbg_session_ops;
631 gops->cde = gp10b_ops.cde;
632 gops->bus = gp10b_ops.bus; 625 gops->bus = gp10b_ops.bus;
633#if defined(CONFIG_GK20A_CYCLE_STATS) 626#if defined(CONFIG_GK20A_CYCLE_STATS)
634 gops->css = gp10b_ops.css; 627 gops->css = gp10b_ops.css;
diff --git a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c b/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c
index 618c80f8..fc9b0e83 100644
--- a/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c
+++ b/drivers/gpu/nvgpu/vgpu/gm20b/vgpu_hal_gm20b.c
@@ -42,7 +42,6 @@
42#include "gm20b/pmu_gm20b.h" 42#include "gm20b/pmu_gm20b.h"
43#include "gm20b/fb_gm20b.h" 43#include "gm20b/fb_gm20b.h"
44#include "gm20b/bus_gm20b.h" 44#include "gm20b/bus_gm20b.h"
45#include "gm20b/cde_gm20b.h"
46#include "gm20b/regops_gm20b.h" 45#include "gm20b/regops_gm20b.h"
47#include "gm20b/clk_gm20b.h" 46#include "gm20b/clk_gm20b.h"
48#include "gm20b/therm_gm20b.h" 47#include "gm20b/therm_gm20b.h"
@@ -438,9 +437,6 @@ static const struct gpu_ops vgpu_gm20b_ops = {
438 .perfbuffer_enable = vgpu_perfbuffer_enable, 437 .perfbuffer_enable = vgpu_perfbuffer_enable,
439 .perfbuffer_disable = vgpu_perfbuffer_disable, 438 .perfbuffer_disable = vgpu_perfbuffer_disable,
440 }, 439 },
441 .cde = {
442 .get_program_numbers = gm20b_cde_get_program_numbers,
443 },
444 .bus = { 440 .bus = {
445 .init_hw = gk20a_bus_init_hw, 441 .init_hw = gk20a_bus_init_hw,
446 .isr = gk20a_bus_isr, 442 .isr = gk20a_bus_isr,
@@ -501,7 +497,6 @@ int vgpu_gm20b_init_hal(struct gk20a *g)
501 gops->mc = vgpu_gm20b_ops.mc; 497 gops->mc = vgpu_gm20b_ops.mc;
502 gops->dbg_session_ops = vgpu_gm20b_ops.dbg_session_ops; 498 gops->dbg_session_ops = vgpu_gm20b_ops.dbg_session_ops;
503 gops->debug = vgpu_gm20b_ops.debug; 499 gops->debug = vgpu_gm20b_ops.debug;
504 gops->cde = vgpu_gm20b_ops.cde;
505 gops->bus = vgpu_gm20b_ops.bus; 500 gops->bus = vgpu_gm20b_ops.bus;
506#if defined(CONFIG_GK20A_CYCLE_STATS) 501#if defined(CONFIG_GK20A_CYCLE_STATS)
507 gops->css = vgpu_gm20b_ops.css; 502 gops->css = vgpu_gm20b_ops.css;
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
index aae74e3f..2c59d847 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
+++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
@@ -50,7 +50,6 @@
50#include "gp10b/fifo_gp10b.h" 50#include "gp10b/fifo_gp10b.h"
51#include "gp10b/gp10b_gating_reglist.h" 51#include "gp10b/gp10b_gating_reglist.h"
52#include "gp10b/regops_gp10b.h" 52#include "gp10b/regops_gp10b.h"
53#include "gp10b/cde_gp10b.h"
54#include "gp10b/therm_gp10b.h" 53#include "gp10b/therm_gp10b.h"
55#include "gp10b/priv_ring_gp10b.h" 54#include "gp10b/priv_ring_gp10b.h"
56 55
@@ -478,11 +477,6 @@ static const struct gpu_ops vgpu_gp10b_ops = {
478 .perfbuffer_enable = vgpu_perfbuffer_enable, 477 .perfbuffer_enable = vgpu_perfbuffer_enable,
479 .perfbuffer_disable = vgpu_perfbuffer_disable, 478 .perfbuffer_disable = vgpu_perfbuffer_disable,
480 }, 479 },
481 .cde = {
482 .get_program_numbers = gp10b_cde_get_program_numbers,
483 .need_scatter_buffer = gp10b_need_scatter_buffer,
484 .populate_scatter_buffer = gp10b_populate_scatter_buffer,
485 },
486 .bus = { 480 .bus = {
487 .init_hw = gk20a_bus_init_hw, 481 .init_hw = gk20a_bus_init_hw,
488 .isr = gk20a_bus_isr, 482 .isr = gk20a_bus_isr,
@@ -533,7 +527,6 @@ int vgpu_gp10b_init_hal(struct gk20a *g)
533 gops->mc = vgpu_gp10b_ops.mc; 527 gops->mc = vgpu_gp10b_ops.mc;
534 gops->debug = vgpu_gp10b_ops.debug; 528 gops->debug = vgpu_gp10b_ops.debug;
535 gops->dbg_session_ops = vgpu_gp10b_ops.dbg_session_ops; 529 gops->dbg_session_ops = vgpu_gp10b_ops.dbg_session_ops;
536 gops->cde = vgpu_gp10b_ops.cde;
537 gops->bus = vgpu_gp10b_ops.bus; 530 gops->bus = vgpu_gp10b_ops.bus;
538#if defined(CONFIG_GK20A_CYCLE_STATS) 531#if defined(CONFIG_GK20A_CYCLE_STATS)
539 gops->css = vgpu_gp10b_ops.css; 532 gops->css = vgpu_gp10b_ops.css;