summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
diff options
context:
space:
mode:
authorseshendra Gadagottu <sgadagottu@nvidia.com>2017-11-15 17:35:43 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-11-29 16:17:18 -0500
commit7a4cb4a6ab6c861a94e9105360967894df749f03 (patch)
treeacfcfa1f607a66b18a579f7d06a48b7746abdabf /drivers/gpu/nvgpu/gp10b/gr_gp10b.c
parentdda9d80a852e099a6304abb07936b4250cf1a141 (diff)
gpu: nvgpu: gv11b: gfxp wfi timeout
For gv11b, configured gfx preemption wfi timeout in usec. Set timeout unit as usec in gr_gv11b_init_preemption_state. Used default timeout as 1msec and this timeout value can be modified through sysfs node: /sys/devices/gpu.0/gfxp_wfi_timeout_count For gp10b: gfxp_wfi_timeout_count is in syclk cycles For gv11b: gfxp_wfi_timeout_count is in usec Bug 2003668 Change-Id: I68d52ce996a83df90b8b3a8164debb07e5cb370f Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1599658 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r--drivers/gpu/nvgpu/gp10b/gr_gp10b.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
index 27a42a45..c232c4ab 100644
--- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
@@ -46,6 +46,8 @@
46#include <nvgpu/hw/gp10b/hw_mc_gp10b.h> 46#include <nvgpu/hw/gp10b/hw_mc_gp10b.h>
47#include <nvgpu/hw/gp10b/hw_fuse_gp10b.h> 47#include <nvgpu/hw/gp10b/hw_fuse_gp10b.h>
48 48
49#define GFXP_WFI_TIMEOUT_COUNT_DEFAULT 100000
50
49bool gr_gp10b_is_valid_class(struct gk20a *g, u32 class_num) 51bool gr_gp10b_is_valid_class(struct gk20a *g, u32 class_num)
50{ 52{
51 bool valid = false; 53 bool valid = false;
@@ -2351,3 +2353,16 @@ void gr_gp10b_init_ctxsw_hdr_data(struct gk20a *g, struct nvgpu_mem *mem)
2351 nvgpu_mem_wr(g, mem, 2353 nvgpu_mem_wr(g, mem,
2352 ctxsw_prog_main_image_num_cilp_save_ops_o(), 0); 2354 ctxsw_prog_main_image_num_cilp_save_ops_o(), 0);
2353} 2355}
2356
2357void gr_gp10b_init_gfxp_wfi_timeout_count(struct gk20a *g)
2358{
2359 struct gr_gk20a *gr = &g->gr;
2360
2361 gr->gfxp_wfi_timeout_count = GFXP_WFI_TIMEOUT_COUNT_DEFAULT;
2362}
2363
2364unsigned long gr_gp10b_get_max_gfxp_wfi_timeout_count(struct gk20a *g)
2365{
2366 /* 100msec @ 1GHZ */
2367 return (100 * 1000 * 1000UL);
2368}