summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2014-06-18 09:02:03 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:10:17 -0400
commitee66559a0b3b82b3dc9be684261ddd0954731ff5 (patch)
tree34156c1d4f3393a5a5fe945185b8548ae2427a07 /drivers/gpu/nvgpu/gk20a/channel_gk20a.h
parentb6466fbe07d28fcc1a2ea93715a1f88b48dd8550 (diff)
gpu: nvgpu: add TSG support for engine context
All channels in a TSG need to share same engine context i.e. pointer in RAMFC of all channels in a TSG must point to same NV_RAMIN_GR_WFI_TARGET To get this, add a pointer to gr_ctx inside TSG struct so that TSG can maintain its own unique gr_ctx Also, change the type of gr_ctx in a channel to pointer variable so that if channel is part of TSG it can point to TSG's gr_ctx otherwise it will point to its own gr_ctx In gk20a_alloc_obj_ctx(), allocate gr_ctx as below : 1) If channel is not part of any TSG - allocate its own gr_ctx buffer if it is already not allocated 2) If channel is part of TSG - Check if TSG has already allocated gr_ctx (as part of TSG) - If yes, channel's gr_ctx will point to that of TSG's - If not, then it means channels is first to be bounded to this TSG - And in this case we will allocate new gr_ctx on TSG first and then make channel's gr_ctx to point to this gr_ctx Also, gr_ctx will be released as below ; 1) If channels is not part of TSG, then it will be released when channels is closed 2) Otherwise, it will be released when TSG itself is closed Bug 1470692 Change-Id: Id347217d5b462e0e972cd3d79d17795b37034a50 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/417065 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
index 4d236a70..21949012 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
@@ -56,7 +56,7 @@ struct fence {
56 56
57/* contexts associated with a channel */ 57/* contexts associated with a channel */
58struct channel_ctx_gk20a { 58struct channel_ctx_gk20a {
59 struct gr_ctx_desc gr_ctx; 59 struct gr_ctx_desc *gr_ctx;
60 struct pm_ctx_desc pm_ctx; 60 struct pm_ctx_desc pm_ctx;
61 struct patch_desc patch_ctx; 61 struct patch_desc patch_ctx;
62 struct zcull_ctx_desc zcull_ctx; 62 struct zcull_ctx_desc zcull_ctx;