summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2018-08-10 17:09:36 -0400
committerBo Yan <byan@nvidia.com>2018-08-20 14:00:59 -0400
commit227c6f7b7a499dd58e0db6859736cfe586ef0897 (patch)
treed354f8422647021693aefefa5124d865c29ecd32 /drivers/gpu/nvgpu/gv11b/gr_gv11b.c
parent9e69e0cf978b53706f55ffb873e3966b4bb3a7a8 (diff)
gpu: nvgpu: Move fuse HAL to common
Move implementation of fuse HAL to common/fuse. Also implements new fuse query functions for FBIO, FBP, TPC floorsweeping and security fuses. JIRA NVGPU-957 Change-Id: I55e256a4f1b59d50a721d4942907f70dc57467c4 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1797177
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/gr_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
index 41d2f695..5d237839 100644
--- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
@@ -59,7 +59,6 @@
59#include <nvgpu/hw/gv11b/hw_ram_gv11b.h> 59#include <nvgpu/hw/gv11b/hw_ram_gv11b.h>
60#include <nvgpu/hw/gv11b/hw_pbdma_gv11b.h> 60#include <nvgpu/hw/gv11b/hw_pbdma_gv11b.h>
61#include <nvgpu/hw/gv11b/hw_perf_gv11b.h> 61#include <nvgpu/hw/gv11b/hw_perf_gv11b.h>
62#include <nvgpu/hw/gv11b/hw_fuse_gv11b.h>
63 62
64#define GFXP_WFI_TIMEOUT_COUNT_IN_USEC_DEFAULT 100 63#define GFXP_WFI_TIMEOUT_COUNT_IN_USEC_DEFAULT 100
65 64
@@ -131,16 +130,16 @@ bool gr_gv11b_is_valid_gfx_class(struct gk20a *g, u32 class_num)
131 130
132void gr_gv11b_powergate_tpc(struct gk20a *g) 131void gr_gv11b_powergate_tpc(struct gk20a *g)
133{ 132{
134 u32 tpc_pg_status = gk20a_readl(g, fuse_status_opt_tpc_gpc_r(0)); 133 u32 tpc_pg_status = g->ops.fuse.fuse_status_opt_tpc_gpc(g, 0);
135 134
136 if (tpc_pg_status == g->tpc_pg_mask) { 135 if (tpc_pg_status == g->tpc_pg_mask) {
137 return; 136 return;
138 } 137 }
139 138
140 gk20a_writel(g, fuse_ctrl_opt_tpc_gpc_r(0), (g->tpc_pg_mask)); 139 g->ops.fuse.fuse_ctrl_opt_tpc_gpc(g, 0, g->tpc_pg_mask);
141 140
142 do { 141 do {
143 tpc_pg_status = gk20a_readl(g, fuse_status_opt_tpc_gpc_r(0)); 142 tpc_pg_status = g->ops.fuse.fuse_status_opt_tpc_gpc(g, 0);
144 } while (tpc_pg_status != g->tpc_pg_mask); 143 } while (tpc_pg_status != g->tpc_pg_mask);
145 144
146 gk20a_writel(g, gr_fe_tpc_pesmask_r(), gr_fe_tpc_pesmask_req_send_f() | 145 gk20a_writel(g, gr_fe_tpc_pesmask_r(), gr_fe_tpc_pesmask_req_send_f() |