summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-03-17 16:47:54 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-23 11:44:12 -0400
commitd409d7ebc136470906b861f3bebb7da63e1557e6 (patch)
tree35ad46a44653f8745fc7c43660b608a85ed68724 /drivers/gpu/nvgpu/gv11b
parentb83f2e282a8f12e2713a7ee0a2e6ef21069b2e84 (diff)
gpu: nvgpu: Add bus HAL
Add bus HAL and separate bus related functions from mm_gv11b: timer access. Change-Id: I311f258857238233103688fb653d27e4e79005a4 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1323354 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r--drivers/gpu/nvgpu/gv11b/bus_gv11b.c26
-rw-r--r--drivers/gpu/nvgpu/gv11b/bus_gv11b.h21
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c3
-rw-r--r--drivers/gpu/nvgpu/gv11b/mm_gv11b.c1
4 files changed, 49 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/bus_gv11b.c b/drivers/gpu/nvgpu/gv11b/bus_gv11b.c
new file mode 100644
index 00000000..9a70b41c
--- /dev/null
+++ b/drivers/gpu/nvgpu/gv11b/bus_gv11b.c
@@ -0,0 +1,26 @@
1/*
2 * GV11B BUS
3 *
4 * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 */
15
16#include "bus_gv11b.h"
17#include "gk20a/gk20a.h"
18#include "gk20a/bus_gk20a.h"
19
20void gv11b_init_bus(struct gpu_ops *gops)
21{
22 gops->bus.init_hw = gk20a_bus_init_hw;
23 gops->bus.isr = gk20a_bus_isr;
24 gops->bus.read_ptimer = gk20a_read_ptimer;
25 gops->bus.bar1_bind = NULL;
26}
diff --git a/drivers/gpu/nvgpu/gv11b/bus_gv11b.h b/drivers/gpu/nvgpu/gv11b/bus_gv11b.h
new file mode 100644
index 00000000..fde0b14b
--- /dev/null
+++ b/drivers/gpu/nvgpu/gv11b/bus_gv11b.h
@@ -0,0 +1,21 @@
1/*
2 * GV11B BUS
3 * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 */
14
15#ifndef BUS_GV11B_H
16#define BUS_GV11B_H
17
18struct gpu_ops;
19
20void gv11b_init_bus(struct gpu_ops *gops);
21#endif
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
index 133a1e8d..1b580558 100644
--- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
@@ -21,6 +21,7 @@
21 21
22#include "gk20a/gk20a.h" 22#include "gk20a/gk20a.h"
23#include "gk20a/dbg_gpu_gk20a.h" 23#include "gk20a/dbg_gpu_gk20a.h"
24#include "gk20a/bus_gk20a.h"
24 25
25#include "gm20b/gr_gm20b.h" 26#include "gm20b/gr_gm20b.h"
26 27
@@ -185,6 +186,7 @@ int gv11b_init_hal(struct gk20a *g)
185 gops->privsecurity = 0; 186 gops->privsecurity = 0;
186 gops->securegpccs = 0; 187 gops->securegpccs = 0;
187 188
189 gk20a_init_bus(gops);
188 gv11b_init_mc(gops); 190 gv11b_init_mc(gops);
189 gv11b_init_ltc(gops); 191 gv11b_init_ltc(gops);
190 gv11b_init_gr(gops); 192 gv11b_init_gr(gops);
@@ -203,7 +205,6 @@ int gv11b_init_hal(struct gk20a *g)
203 gops->name = "gv11b"; 205 gops->name = "gv11b";
204 gops->chip_init_gpu_characteristics = gv11b_init_gpu_characteristics; 206 gops->chip_init_gpu_characteristics = gv11b_init_gpu_characteristics;
205 gops->get_litter_value = gv11b_get_litter_value; 207 gops->get_litter_value = gv11b_get_litter_value;
206 gops->read_ptimer = gk20a_read_ptimer;
207 208
208 c->twod_class = FERMI_TWOD_A; 209 c->twod_class = FERMI_TWOD_A;
209 c->threed_class = VOLTA_A; 210 c->threed_class = VOLTA_A;
diff --git a/drivers/gpu/nvgpu/gv11b/mm_gv11b.c b/drivers/gpu/nvgpu/gv11b/mm_gv11b.c
index fd77ed10..84a9449a 100644
--- a/drivers/gpu/nvgpu/gv11b/mm_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/mm_gv11b.c
@@ -55,7 +55,6 @@ static bool gv11b_mm_mmu_fault_pending(struct gk20a *g)
55void gv11b_init_mm(struct gpu_ops *gops) 55void gv11b_init_mm(struct gpu_ops *gops)
56{ 56{
57 gp10b_init_mm(gops); 57 gp10b_init_mm(gops);
58 gops->mm.bar1_bind = NULL;
59 gops->mm.is_bar1_supported = gv11b_mm_is_bar1_supported; 58 gops->mm.is_bar1_supported = gv11b_mm_is_bar1_supported;
60 gops->mm.init_inst_block = gv11b_init_inst_block; 59 gops->mm.init_inst_block = gv11b_init_inst_block;
61 gops->mm.init_mm_setup_hw = gk20a_init_mm_setup_hw; 60 gops->mm.init_mm_setup_hw = gk20a_init_mm_setup_hw;