drm/amdkfd: Add interrupt handling module
authorAndrew Lewycky <Andrew.Lewycky@amd.com>
Wed, 16 Jul 2014 22:37:30 +0000 (01:37 +0300)
committerOded Gabbay <oded.gabbay@gmail.com>
Tue, 19 May 2015 09:13:39 +0000 (12:13 +0300)
commit2249d55827c9e5d5731d7a8622ecd366d8756bbb
tree1282a1d544b64ef704c826d677cefef71f8ba048
parentd36b94fcf0c812b04fff483e1b423f7d5042766e
drm/amdkfd: Add interrupt handling module

This patch adds the interrupt handling module, kfd_interrupt.c, and its
related members in different data structures to the amdkfd driver.

The amdkfd interrupt module maintains an internal interrupt ring
per amdkfd device. The internal interrupt ring contains interrupts
that needs further handling. The extra handling is deferred to
a later time through a workqueue.

There's no acknowledgment for the interrupts we use. The hardware
simply queues a new interrupt each time without waiting.

The fixed-size internal queue means that it's possible for us to lose
interrupts because we have no back-pressure to the hardware.

However, only interrupts that are "wanted" by amdkfd, are copied into
the amdkfd s/w interrupt ring, in order to minimize the chances
for overflow of the ring.

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/kfd_device.c
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c [new file with mode: 0644]
drivers/gpu/drm/amd/amdkfd/kfd_priv.h