diff options
author | seshendra Gadagottu <sgadagottu@nvidia.com> | 2017-11-15 17:35:43 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-29 16:17:18 -0500 |
commit | 7a4cb4a6ab6c861a94e9105360967894df749f03 (patch) | |
tree | acfcfa1f607a66b18a579f7d06a48b7746abdabf /drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |
parent | dda9d80a852e099a6304abb07936b4250cf1a141 (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.c | 15 |
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 | |||
49 | bool gr_gp10b_is_valid_class(struct gk20a *g, u32 class_num) | 51 | bool 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 | |||
2357 | void 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 | |||
2364 | unsigned long gr_gp10b_get_max_gfxp_wfi_timeout_count(struct gk20a *g) | ||
2365 | { | ||
2366 | /* 100msec @ 1GHZ */ | ||
2367 | return (100 * 1000 * 1000UL); | ||
2368 | } | ||