diff options
author | Richard Zhao <rizhao@nvidia.com> | 2016-01-04 13:28:04 -0500 |
---|---|---|
committer | Vladislav Buzov <vbuzov@nvidia.com> | 2016-01-10 23:07:53 -0500 |
commit | a9c6f595399074e88c16f3557e5acb29db1d52d5 (patch) | |
tree | 2d2665668bac915b5598d83881a1efec892be435 /drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |
parent | 3484fd0d1365c6f97723d97cb45664aa75c45f32 (diff) |
gpu: nvgpu: enable semaphore acquire timeout
It'll detect dead semaphore acquire. The worst case is when
ACQUIRE_SWITCH is disabled, semaphore acquire will poll and
consume full gpu timeslicees.
The timeout value is set to half of channel WDT.
Bug 1636800
Change-Id: Ida6ccc534006a191513edf47e7b82d4b5b758684
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: http://git-master/r/928827
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vladislav Buzov <vbuzov@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h index f62d2731..ddc517b9 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * GK20A graphics channel | 2 | * GK20A graphics channel |
3 | * | 3 | * |
4 | * Copyright (c) 2011-2015, NVIDIA CORPORATION. All rights reserved. | 4 | * Copyright (c) 2011-2016, NVIDIA CORPORATION. All rights reserved. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms and conditions of the GNU General Public License, | 7 | * under the terms and conditions of the GNU General Public License, |
@@ -252,6 +252,7 @@ void channel_gk20a_unbind(struct channel_gk20a *ch_gk20a); | |||
252 | void channel_gk20a_disable(struct channel_gk20a *ch); | 252 | void channel_gk20a_disable(struct channel_gk20a *ch); |
253 | int channel_gk20a_alloc_inst(struct gk20a *g, struct channel_gk20a *ch); | 253 | int channel_gk20a_alloc_inst(struct gk20a *g, struct channel_gk20a *ch); |
254 | void channel_gk20a_free_inst(struct gk20a *g, struct channel_gk20a *ch); | 254 | void channel_gk20a_free_inst(struct gk20a *g, struct channel_gk20a *ch); |
255 | u32 channel_gk20a_pbdma_acquire_val(struct channel_gk20a *c); | ||
255 | int channel_gk20a_setup_ramfc(struct channel_gk20a *c, | 256 | int channel_gk20a_setup_ramfc(struct channel_gk20a *c, |
256 | u64 gpfifo_base, u32 gpfifo_entries, u32 flags); | 257 | u64 gpfifo_base, u32 gpfifo_entries, u32 flags); |
257 | void channel_gk20a_enable(struct channel_gk20a *ch); | 258 | void channel_gk20a_enable(struct channel_gk20a *ch); |