diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2017-11-06 08:44:23 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-27 12:23:11 -0500 |
commit | c6b9177cfff8a41c3c3c78f5c47c7df677ced58c (patch) | |
tree | b402ccda611d85ec88f8557cb26d949617d92466 /drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |
parent | a0cea295e7b7f917c6b52221ab34c3a6111fb224 (diff) |
gpu: nvgpu: define error_notifiers in common code
All the linux specific error_notifier codes are defined in linux specific
header file <uapi/linux/nvgpu.h> and used in all the common driver
But since they are defined in linux specific file, we need to move all the
uses of those error_notifiers in linux specific code only
Hence define new error_notifiers in include/nvgpu/error_notifier.h and
use them in the common code
Add new API nvgpu_error_notifier_to_channel_notifier() to convert common
error_notifier of the form NVGPU_ERR_NOTIFIER_* to linux specific error
notifier of the form NVGPU_CHANNEL_*
Any future additions to error notifiers requires update to both the form
of error notifiers
Move all error notifier related metadata from channel_gk20a (common code)
to linux specific structure nvgpu_channel_linux
Update all accesses to this data from new structure instead of channel_gk20a
Move and rename below APIs to linux specific file and declare them
in error_notifier.h
nvgpu_set_error_notifier_locked()
nvgpu_set_error_notifier()
nvgpu_is_error_notifier_set()
Add below new API and use it in fifo_vgpu.c
nvgpu_set_error_notifier_if_empty()
Include <nvgpu/error_notifier.h> wherever new error_notifier codes are used
NVGPU-426
Change-Id: Iaa5bfc150e6e9ec17d797d445c2d6407afe9f4bd
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1593361
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h index 8c9095b2..ff96d0d7 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |||
@@ -273,11 +273,6 @@ struct channel_gk20a { | |||
273 | bool timeout_debug_dump; | 273 | bool timeout_debug_dump; |
274 | unsigned int timeslice_us; | 274 | unsigned int timeslice_us; |
275 | 275 | ||
276 | struct dma_buf *error_notifier_ref; | ||
277 | struct nvgpu_notification *error_notifier; | ||
278 | void *error_notifier_va; | ||
279 | struct nvgpu_mutex error_notifier_mutex; | ||
280 | |||
281 | struct nvgpu_mutex sync_lock; | 276 | struct nvgpu_mutex sync_lock; |
282 | struct gk20a_channel_sync *sync; | 277 | struct gk20a_channel_sync *sync; |
283 | 278 | ||
@@ -335,8 +330,6 @@ bool gk20a_channel_update_and_check_timeout(struct channel_gk20a *ch, | |||
335 | void gk20a_disable_channel(struct channel_gk20a *ch); | 330 | void gk20a_disable_channel(struct channel_gk20a *ch); |
336 | void gk20a_channel_abort(struct channel_gk20a *ch, bool channel_preempt); | 331 | void gk20a_channel_abort(struct channel_gk20a *ch, bool channel_preempt); |
337 | void gk20a_channel_abort_clean_up(struct channel_gk20a *ch); | 332 | void gk20a_channel_abort_clean_up(struct channel_gk20a *ch); |
338 | void gk20a_set_error_notifier(struct channel_gk20a *ch, __u32 error); | ||
339 | void gk20a_set_error_notifier_locked(struct channel_gk20a *ch, __u32 error); | ||
340 | void gk20a_channel_semaphore_wakeup(struct gk20a *g, bool post_events); | 333 | void gk20a_channel_semaphore_wakeup(struct gk20a *g, bool post_events); |
341 | int gk20a_channel_alloc_priv_cmdbuf(struct channel_gk20a *c, u32 size, | 334 | int gk20a_channel_alloc_priv_cmdbuf(struct channel_gk20a *c, u32 size, |
342 | struct priv_cmd_entry *entry); | 335 | struct priv_cmd_entry *entry); |