From 227c6f7b7a499dd58e0db6859736cfe586ef0897 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Fri, 10 Aug 2018 14:09:36 -0700 Subject: 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 Reviewed-on: https://git-master.nvidia.com/r/1797177 --- drivers/gpu/nvgpu/gv100/gr_gv100.c | 3 +-- drivers/gpu/nvgpu/gv100/hal_gv100.c | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/gv100') diff --git a/drivers/gpu/nvgpu/gv100/gr_gv100.c b/drivers/gpu/nvgpu/gv100/gr_gv100.c index 13092f2a..79526947 100644 --- a/drivers/gpu/nvgpu/gv100/gr_gv100.c +++ b/drivers/gpu/nvgpu/gv100/gr_gv100.c @@ -37,7 +37,6 @@ #include #include #include -#include #include #include #include @@ -391,7 +390,7 @@ static u32 gr_gv100_get_active_fpba_mask(struct gk20a *g) * flip the bits. * Also set unused bits to zero */ - active_fbpa_mask = nvgpu_readl(g, fuse_status_opt_fbio_r()); + active_fbpa_mask = g->ops.fuse.fuse_status_opt_fbio(g); active_fbpa_mask = ~active_fbpa_mask; active_fbpa_mask = active_fbpa_mask & ((1 << num_fbpas) - 1); diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 8565d5fc..69ad018a 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c @@ -42,6 +42,9 @@ #include "common/ltc/ltc_gm20b.h" #include "common/ltc/ltc_gp10b.h" #include "common/ltc/ltc_gv11b.h" +#include "common/fuse/fuse_gm20b.h" +#include "common/fuse/fuse_gp10b.h" +#include "common/fuse/fuse_gp106.h" #include "gk20a/gk20a.h" #include "gk20a/fifo_gk20a.h" @@ -77,7 +80,6 @@ #include "gp10b/fecs_trace_gp10b.h" #include "gp10b/mm_gp10b.h" #include "gp10b/pmu_gp10b.h" -#include "gp10b/fuse_gp10b.h" #include "gv11b/css_gr_gv11b.h" #include "gv11b/dbg_gpu_gv11b.h" @@ -883,6 +885,18 @@ static const struct gpu_ops gv100_ops = { .is_opt_ecc_enable = gp10b_fuse_is_opt_ecc_enable, .is_opt_feature_override_disable = gp10b_fuse_is_opt_feature_override_disable, + .fuse_status_opt_fbio = gm20b_fuse_status_opt_fbio, + .fuse_status_opt_fbp = gm20b_fuse_status_opt_fbp, + .fuse_status_opt_rop_l2_fbp = gm20b_fuse_status_opt_rop_l2_fbp, + .fuse_status_opt_tpc_gpc = gm20b_fuse_status_opt_tpc_gpc, + .fuse_ctrl_opt_tpc_gpc = gm20b_fuse_ctrl_opt_tpc_gpc, + .fuse_opt_sec_debug_en = gm20b_fuse_opt_sec_debug_en, + .fuse_opt_priv_sec_en = gm20b_fuse_opt_priv_sec_en, + .read_vin_cal_fuse_rev = gp106_fuse_read_vin_cal_fuse_rev, + .read_vin_cal_slope_intercept_fuse = + gp106_fuse_read_vin_cal_slope_intercept_fuse, + .read_vin_cal_gain_offset_fuse = + gp106_fuse_read_vin_cal_gain_offset_fuse, }, #if defined(CONFIG_TEGRA_NVLINK) .nvlink = { @@ -947,6 +961,7 @@ int gv100_init_hal(struct gk20a *g) gops->xve = gv100_ops.xve; gops->falcon = gv100_ops.falcon; gops->priv_ring = gv100_ops.priv_ring; + gops->fuse = gv100_ops.fuse; gops->nvlink = gv100_ops.nvlink; /* clocks */ -- cgit v1.2.2