summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2019-08-27 10:09:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2020-01-30 02:42:46 -0500
commite41fd090315ff37fa09314a8cfde6d384385e17a (patch)
tree8d96902ff2749cd94f0630202af56a577a780a01 /drivers/gpu/nvgpu/include
parente0587aaf4d8f803004365eef2b08c0becd1042cb (diff)
gpu: nvgpu: use refcnt for ch mmu_debug_mode
Replaced ch->mmu_debug_mode_enabled with ch->mmu_debug_mode_refcnt. If channel is enabled multiple times by userspace, then ref count is updated accordingly. There is an expectation that enable/disable calls are balanced for setting channel's mmu debug mode. When unbinding the channel, decrease refcnt for the channel until it reaches 0. Also, removed tsg parameter from nvgpu_tsg_set_mmu_debug_mode as it can be retrieved from ch. Bug 2515097 Bug 2713590 Change-Id: If334e374a55bd14ae219edbfd3b1fce5ff25c226 Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2184702 (cherry picked from commit f422aee39387a5aa337de69cc21a67f16697ae0e) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2208772 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Kajetan Dutka <kdutka@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: Winnie Hsu <whsu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: Kajetan Dutka <kdutka@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/channel.h6
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/tsg.h3
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/channel.h b/drivers/gpu/nvgpu/include/nvgpu/channel.h
index e98af09b..764d047c 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/channel.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/channel.h
@@ -328,7 +328,11 @@ struct channel_gk20a {
328 bool has_os_fence_framework_support; 328 bool has_os_fence_framework_support;
329 329
330 bool is_privileged_channel; 330 bool is_privileged_channel;
331 bool mmu_debug_mode_enabled; 331
332 /**
333 * MMU Debugger Mode is enabled for this channel if refcnt > 0
334 */
335 u32 mmu_debug_mode_refcnt;
332}; 336};
333 337
334static inline struct channel_gk20a * 338static inline struct channel_gk20a *
diff --git a/drivers/gpu/nvgpu/include/nvgpu/tsg.h b/drivers/gpu/nvgpu/include/nvgpu/tsg.h
index b43a6b98..7cd97c97 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/tsg.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/tsg.h
@@ -127,7 +127,6 @@ gk20a_event_id_data_from_event_id_node(struct nvgpu_list_node *node)
127 ((uintptr_t)node - offsetof(struct gk20a_event_id_data, event_id_node)); 127 ((uintptr_t)node - offsetof(struct gk20a_event_id_data, event_id_node));
128}; 128};
129 129
130int nvgpu_tsg_set_mmu_debug_mode(struct tsg_gk20a *tsg, 130int nvgpu_tsg_set_mmu_debug_mode(struct channel_gk20a *ch, bool enable);
131 struct channel_gk20a *ch, bool enable);
132 131
133#endif /* TSG_GK20A_H */ 132#endif /* TSG_GK20A_H */