summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2014-10-01 11:53:49 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:12:10 -0400
commitf8f6b298848ed05ad83ce107ff8a4fff0b37dd2d (patch)
tree554d121fbbc47745556cd6a99c6b5d6258951b80 /drivers/gpu/nvgpu/gk20a/gr_gk20a.c
parent6275bbb33bb0f72cc03c7e68d8186b36c96ee854 (diff)
gpu: nvgpu: support config of TPC FUSE dynamically
Follow steps below to config active TPC number: echo 1 > /sys/devices/platform/host1x/gpu.0/force_idle echo 0x1/0x2/0x3 > /sys/devices/platform/host1x/gpu.0/tpc_fs_mask echo 0 > /sys/devices/platform/host1x/gpu.0/force_idle where, 0x1 : disable TPC1 0x2 : disable TPC0 0x3 : both TPCs active Also, add API set_gpc_tpc_mask to update the TPCs and call this API after update to sysfs "tpc_fs_mask" Once fuses are updated for new TPC settings, we need to reconfigure GR and golden_image. Hence disable gr->sw_ready and golden_image_initialized flags. Also, initialize gr->tpc_count = 0 each time in gr_gk20a_init_gr_config(), otherwise it goes on adding tpc count Bug 1513685 Change-Id: Ib50bafef08664262f8426ac0d6cbad74b32c5909 Signed-off-by: Kevin Huang <kevinh@nvidia.com> Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/552606 Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index da257cd4..3cf5845c 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -3084,6 +3084,7 @@ static int gr_gk20a_init_gr_config(struct gk20a *g, struct gr_gk20a *gr)
3084 goto clean_up; 3084 goto clean_up;
3085 3085
3086 gr->ppc_count = 0; 3086 gr->ppc_count = 0;
3087 gr->tpc_count = 0;
3087 for (gpc_index = 0; gpc_index < gr->gpc_count; gpc_index++) { 3088 for (gpc_index = 0; gpc_index < gr->gpc_count; gpc_index++) {
3088 tmp = gk20a_readl(g, gr_gpc0_fs_gpc_r()); 3089 tmp = gk20a_readl(g, gr_gpc0_fs_gpc_r());
3089 3090