summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
diff options
context:
space:
mode:
authorSupriya <ssharatkumar@nvidia.com>2015-12-10 02:24:38 -0500
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:52:10 -0500
commit640d0e2c3b58294cd11f420a5fc8377d490c43d3 (patch)
tree1ea4161fcb84d264c9e3dd8e8d0a446e8aff590e /drivers/gpu/nvgpu/gp10b/gr_gp10b.c
parent02ee4d418834c99746487b72b04d5f10139eea90 (diff)
gpu: nvgpu: ECC override
-sysfs functions to call into LS PMU and modify ECC overide register Bug 1699676 Change-Id: Iaf6cc3a86160b806e52ab168577caad42b2c5d22 Signed-off-by: Supriya <ssharatkumar@nvidia.com> Reviewed-on: http://git-master/r/921252 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r--drivers/gpu/nvgpu/gp10b/gr_gp10b.c10
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
33static bool gr_gp10b_is_valid_class(struct gk20a *g, u32 class_num) 34static 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
1706static 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
1705void gp10b_init_gr(struct gpu_ops *gops) 1714void 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}