diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c index 90d0ce8d..9eea7d43 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include "hw_proj_gp10b.h" | 28 | #include "hw_proj_gp10b.h" |
29 | #include "hw_ctxsw_prog_gp10b.h" | 29 | #include "hw_ctxsw_prog_gp10b.h" |
30 | #include "hw_mc_gp10b.h" | 30 | #include "hw_mc_gp10b.h" |
31 | #include "gp10b_sysfs.h" | ||
31 | #include <linux/vmalloc.h> | 32 | #include <linux/vmalloc.h> |
32 | 33 | ||
33 | static bool gr_gp10b_is_valid_class(struct gk20a *g, u32 class_num) | 34 | static bool gr_gp10b_is_valid_class(struct gk20a *g, u32 class_num) |
@@ -1702,6 +1703,14 @@ static u32 gp10b_mask_hww_warp_esr(u32 hww_warp_esr) | |||
1702 | return hww_warp_esr; | 1703 | return hww_warp_esr; |
1703 | } | 1704 | } |
1704 | 1705 | ||
1706 | static u32 get_ecc_override_val(struct gk20a *g) | ||
1707 | { | ||
1708 | if (tegra_fuse_readl(FUSE_OPT_ECC_EN)) | ||
1709 | return gk20a_readl(g, gr_fecs_feature_override_ecc_r()); | ||
1710 | else | ||
1711 | return 0; | ||
1712 | } | ||
1713 | |||
1705 | void gp10b_init_gr(struct gpu_ops *gops) | 1714 | void gp10b_init_gr(struct gpu_ops *gops) |
1706 | { | 1715 | { |
1707 | gm20b_init_gr(gops); | 1716 | gm20b_init_gr(gops); |
@@ -1739,4 +1748,5 @@ void gp10b_init_gr(struct gpu_ops *gops) | |||
1739 | gr_gp10b_pre_process_sm_exception; | 1748 | gr_gp10b_pre_process_sm_exception; |
1740 | gops->gr.handle_fecs_error = gr_gp10b_handle_fecs_error; | 1749 | gops->gr.handle_fecs_error = gr_gp10b_handle_fecs_error; |
1741 | gops->gr.create_gr_sysfs = gr_gp10b_create_sysfs; | 1750 | gops->gr.create_gr_sysfs = gr_gp10b_create_sysfs; |
1751 | gops->gr.get_lrf_tex_ltc_dram_override = get_ecc_override_val; | ||
1742 | } | 1752 | } |