diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/bus_gm20b.c | 11 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/bus_gm20b.h | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 12 |
3 files changed, 15 insertions, 13 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/bus_gm20b.c b/drivers/gpu/nvgpu/gm20b/bus_gm20b.c index 11c11e23..0da19db8 100644 --- a/drivers/gpu/nvgpu/gm20b/bus_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/bus_gm20b.c | |||
@@ -22,7 +22,7 @@ | |||
22 | 22 | ||
23 | #include <nvgpu/hw/gm20b/hw_bus_gm20b.h> | 23 | #include <nvgpu/hw/gm20b/hw_bus_gm20b.h> |
24 | 24 | ||
25 | static int gm20b_bus_bar1_bind(struct gk20a *g, struct nvgpu_mem *bar1_inst) | 25 | int gm20b_bus_bar1_bind(struct gk20a *g, struct nvgpu_mem *bar1_inst) |
26 | { | 26 | { |
27 | struct nvgpu_timeout timeout; | 27 | struct nvgpu_timeout timeout; |
28 | int err = 0; | 28 | int err = 0; |
@@ -53,12 +53,3 @@ static int gm20b_bus_bar1_bind(struct gk20a *g, struct nvgpu_mem *bar1_inst) | |||
53 | 53 | ||
54 | return err; | 54 | return err; |
55 | } | 55 | } |
56 | |||
57 | void gm20b_init_bus(struct gpu_ops *gops) | ||
58 | { | ||
59 | gops->bus.init_hw = gk20a_bus_init_hw; | ||
60 | gops->bus.isr = gk20a_bus_isr; | ||
61 | gops->bus.read_ptimer = gk20a_read_ptimer; | ||
62 | gops->bus.get_timestamps_zipper = nvgpu_get_timestamps_zipper; | ||
63 | gops->bus.bar1_bind = gm20b_bus_bar1_bind; | ||
64 | } | ||
diff --git a/drivers/gpu/nvgpu/gm20b/bus_gm20b.h b/drivers/gpu/nvgpu/gm20b/bus_gm20b.h index 853e50a6..ad3f72ac 100644 --- a/drivers/gpu/nvgpu/gm20b/bus_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/bus_gm20b.h | |||
@@ -16,8 +16,9 @@ | |||
16 | #ifndef _NVGPU_GM20B_BUS | 16 | #ifndef _NVGPU_GM20B_BUS |
17 | #define _NVGPU_GM20B_BUS | 17 | #define _NVGPU_GM20B_BUS |
18 | 18 | ||
19 | struct gpu_ops; | 19 | struct gk20a; |
20 | struct nvgpu_mem; | ||
20 | 21 | ||
21 | void gm20b_init_bus(struct gpu_ops *gops); | 22 | int gm20b_bus_bar1_bind(struct gk20a *g, struct nvgpu_mem *bar1_inst); |
22 | 23 | ||
23 | #endif | 24 | #endif |
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index 300f0872..fa7cf368 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c | |||
@@ -36,11 +36,13 @@ | |||
36 | #include "regops_gm20b.h" | 36 | #include "regops_gm20b.h" |
37 | #include "cde_gm20b.h" | 37 | #include "cde_gm20b.h" |
38 | #include "therm_gm20b.h" | 38 | #include "therm_gm20b.h" |
39 | #include "bus_gm20b.h" | ||
39 | #include "hal_gm20b.h" | 40 | #include "hal_gm20b.h" |
40 | 41 | ||
41 | #include <nvgpu/debug.h> | 42 | #include <nvgpu/debug.h> |
42 | #include <nvgpu/bug.h> | 43 | #include <nvgpu/bug.h> |
43 | #include <nvgpu/enabled.h> | 44 | #include <nvgpu/enabled.h> |
45 | #include <nvgpu/bus.h> | ||
44 | 46 | ||
45 | #include <nvgpu/hw/gm20b/hw_proj_gm20b.h> | 47 | #include <nvgpu/hw/gm20b/hw_proj_gm20b.h> |
46 | #include <nvgpu/hw/gm20b/hw_fuse_gm20b.h> | 48 | #include <nvgpu/hw/gm20b/hw_fuse_gm20b.h> |
@@ -234,6 +236,13 @@ static const struct gpu_ops gm20b_ops = { | |||
234 | .cde = { | 236 | .cde = { |
235 | .get_program_numbers = gm20b_cde_get_program_numbers, | 237 | .get_program_numbers = gm20b_cde_get_program_numbers, |
236 | }, | 238 | }, |
239 | .bus = { | ||
240 | .init_hw = gk20a_bus_init_hw, | ||
241 | .isr = gk20a_bus_isr, | ||
242 | .read_ptimer = gk20a_read_ptimer, | ||
243 | .get_timestamps_zipper = nvgpu_get_timestamps_zipper, | ||
244 | .bar1_bind = gm20b_bus_bar1_bind, | ||
245 | }, | ||
237 | #if defined(CONFIG_GK20A_CYCLE_STATS) | 246 | #if defined(CONFIG_GK20A_CYCLE_STATS) |
238 | .css = { | 247 | .css = { |
239 | .enable_snapshot = css_hw_enable_snapshot, | 248 | .enable_snapshot = css_hw_enable_snapshot, |
@@ -263,6 +272,7 @@ int gm20b_init_hal(struct gk20a *g) | |||
263 | gops->dbg_session_ops = gm20b_ops.dbg_session_ops; | 272 | gops->dbg_session_ops = gm20b_ops.dbg_session_ops; |
264 | gops->debug = gm20b_ops.debug; | 273 | gops->debug = gm20b_ops.debug; |
265 | gops->cde = gm20b_ops.cde; | 274 | gops->cde = gm20b_ops.cde; |
275 | gops->bus = gm20b_ops.bus; | ||
266 | #if defined(CONFIG_GK20A_CYCLE_STATS) | 276 | #if defined(CONFIG_GK20A_CYCLE_STATS) |
267 | gops->css = gm20b_ops.css; | 277 | gops->css = gm20b_ops.css; |
268 | #endif | 278 | #endif |
@@ -302,8 +312,8 @@ int gm20b_init_hal(struct gk20a *g) | |||
302 | } | 312 | } |
303 | } | 313 | } |
304 | #endif | 314 | #endif |
315 | |||
305 | g->bootstrap_owner = LSF_BOOTSTRAP_OWNER_DEFAULT; | 316 | g->bootstrap_owner = LSF_BOOTSTRAP_OWNER_DEFAULT; |
306 | gk20a_init_bus(gops); | ||
307 | gk20a_init_priv_ring(gops); | 317 | gk20a_init_priv_ring(gops); |
308 | gm20b_init_gr(gops); | 318 | gm20b_init_gr(gops); |
309 | gm20b_init_fb(gops); | 319 | gm20b_init_fb(gops); |