summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2016-03-31 03:03:19 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-04-07 11:43:49 -0400
commite87ba53235151cccee181489ceb5e35b131e7d2d (patch)
tree478b71365cebaab36879c1020c6582842c8d5760 /drivers/gpu/nvgpu/vgpu/gr_vgpu.c
parent76ab6c1e5b351b069cde3ae8137e3fbdf4994d16 (diff)
gpu: nvgpu: add channel event id support
With NVGPU_IOCTL_CHANNEL_EVENTS_CTRL, nvgpu can raise events to User space. But user space cannot distinguish between various types of events. To overcome this, we need finer-grained API to deliver various events to user space. Remove old API NVGPU_IOCTL_CHANNEL_EVENTS_CTRL, and all the support for this API (we can remove this since User space has not started using this API at all) Add new API NVGPU_IOCTL_CHANNEL_EVENT_ID_CTRL which will accept an event_id (like BPT.INT or BPT.PAUSE), a command to enable the event, and return a file descriptor on which we can raise the event (if cmd=enable) Event is disabled when file descriptor is closed Add file operations "gk20a_event_id_ops" to support polling on event fd Also add API gk20a_channel_get_event_data_from_id() to get event_data of event from its id Bug 200089620 Change-Id: I5288f19f38ff49448c46338c33b2a927c9e02254 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1030775 (cherry picked from commit 5721ce2735950440bedc2b86f851db08ed593275) Reviewed-on: http://git-master/r/1120318 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/gr_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/gr_vgpu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
index f83f35b8..3baa420f 100644
--- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
@@ -871,7 +871,7 @@ int vgpu_gr_isr(struct gk20a *g, struct tegra_vgpu_gr_intr_info *info)
871 wake_up(&ch->notifier_wq); 871 wake_up(&ch->notifier_wq);
872 break; 872 break;
873 case TEGRA_VGPU_GR_INTR_SEMAPHORE: 873 case TEGRA_VGPU_GR_INTR_SEMAPHORE:
874 gk20a_channel_post_event(ch); 874 wake_up_interruptible_all(&ch->semaphore_wq);
875 break; 875 break;
876 case TEGRA_VGPU_GR_INTR_SEMAPHORE_TIMEOUT: 876 case TEGRA_VGPU_GR_INTR_SEMAPHORE_TIMEOUT:
877 gk20a_set_error_notifier(ch, 877 gk20a_set_error_notifier(ch,