drm/amdkfd: Add the events module
authorAndrew Lewycky <Andrew.Lewycky@amd.com>
Sun, 10 May 2015 09:15:46 +0000 (12:15 +0300)
committerOded Gabbay <oded.gabbay@gmail.com>
Tue, 19 May 2015 10:02:26 +0000 (13:02 +0300)
commitf3a398183f7b9ef78f6b71ee9f7641e046403bcb
treee38bdc434f3face1c473a43087882aab1e817db4
parent29a5d3eb9a7612b26ba098a0db65e54372612d07
drm/amdkfd: Add the events module

This patch adds the events module (kfd_events.c) and the interrupt
handle module for Kaveri (cik_event_interrupt.c).

The patch updates the interrupt_is_wanted(), so that it now calls the
interrupt isr function specific for the device that received the
interrupt. That function(implemented in cik_event_interrupt.c)
returns whether this interrupt is of interest to us or not.

The patch also updates the interrupt_wq(), so that it now calls the
device's specific wq function, which checks the interrupt source
and tries to signal relevant events.

v2:

Increase limit of signal events to 4096 per process
Remove bitfields from struct cik_ih_ring_entry
Rename radeon_kfd_event_mmap to kfd_event_mmap
Add debug prints to allocate_free_slot and allocate_signal_page
Make allocate_event_notification_slot return a correct value
Add warning prints to create_signal_event
Remove error print from IOCTL path
Reformatted debug prints in kfd_event_mmap
Map correct size (as received from mmap) in kfd_event_mmap

v3:

Reduce limit of signal events back to 256 per process
Fix allocation of kernel memory for signal events

Signed-off-by: Andrew Lewycky <Andrew.Lewycky@amd.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/gpu/drm/amd/amdkfd/Makefile
drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c [new file with mode: 0644]
drivers/gpu/drm/amd/amdkfd/cik_int.h [new file with mode: 0644]
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
drivers/gpu/drm/amd/amdkfd/kfd_device.c
drivers/gpu/drm/amd/amdkfd/kfd_events.c [new file with mode: 0644]
drivers/gpu/drm/amd/amdkfd/kfd_events.h [new file with mode: 0644]
drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
drivers/gpu/drm/amd/amdkfd/kfd_priv.h
drivers/gpu/drm/amd/amdkfd/kfd_process.c