From bc72480f8dc09737fc87782a69c71785de08f2c0 Mon Sep 17 00:00:00 2001 From: Richard Zhao Date: Mon, 25 Apr 2016 16:16:54 -0700 Subject: gpu: nvgpu: add fuse overrides for tpc disabling - add fuse_override in gops. Implement it starting from gm20b. - set cwd fs register, so cuda won't use disabled TPCs Bug 1757262 Bug 200169697 Change-Id: If7bac58bd3a6bcf2925197ea5b7c2d10a77e0933 Signed-off-by: Richard Zhao (cherry picked from commit 66cde7724815e9e5e85ab9b07fc985a78530222f) Reviewed-on: http://git-master/r/1132177 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: Adeel Raza Tested-by: Adeel Raza --- drivers/gpu/nvgpu/gk20a/gk20a.h | 1 + drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 3 +++ 2 files changed, 4 insertions(+) (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 09198fa5..f228cce4 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -259,6 +259,7 @@ struct gpu_ops { u32 compute_preempt_mode); int (*get_preemption_mode_flags)(struct gk20a *g, struct nvgpu_preemption_modes_rec *preemption_modes_rec); + int (*fuse_override)(struct gk20a *g); } gr; const char *name; struct { diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 8b645cc2..c61bb235 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -4740,6 +4740,9 @@ static int gk20a_init_gr_setup_sw(struct gk20a *g) return 0; } + if (g->ops.gr.fuse_override) + g->ops.gr.fuse_override(g); + gr->g = g; #if defined(CONFIG_GK20A_CYCLE_STATS) -- cgit v1.2.2