aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-09-17 09:29:28 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-09-26 22:09:22 -0400
commit1ffdeca64856e0149e7fb341617f47cb038df543 (patch)
treeeab2c608b0234a632de60d4598c33e8702a8d902 /drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
parent1f8969463bca23327eedadab0fef0d28c9b6f29f (diff)
drm/amdgpu: move more defines into amdgpu_irq.h
Everything that isn't related to the IH ring. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Huang Rui <ray.huang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
index 3375ad778edc..f6ce171cb8aa 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
@@ -25,19 +25,38 @@
25#define __AMDGPU_IRQ_H__ 25#define __AMDGPU_IRQ_H__
26 26
27#include <linux/irqdomain.h> 27#include <linux/irqdomain.h>
28#include "soc15_ih_clientid.h"
28#include "amdgpu_ih.h" 29#include "amdgpu_ih.h"
29 30
30#define AMDGPU_MAX_IRQ_SRC_ID 0x100 31#define AMDGPU_MAX_IRQ_SRC_ID 0x100
31#define AMDGPU_MAX_IRQ_CLIENT_ID 0x100 32#define AMDGPU_MAX_IRQ_CLIENT_ID 0x100
32 33
34#define AMDGPU_IRQ_CLIENTID_LEGACY 0
35#define AMDGPU_IRQ_CLIENTID_MAX SOC15_IH_CLIENTID_MAX
36
37#define AMDGPU_IRQ_SRC_DATA_MAX_SIZE_DW 4
38
33struct amdgpu_device; 39struct amdgpu_device;
34struct amdgpu_iv_entry;
35 40
36enum amdgpu_interrupt_state { 41enum amdgpu_interrupt_state {
37 AMDGPU_IRQ_STATE_DISABLE, 42 AMDGPU_IRQ_STATE_DISABLE,
38 AMDGPU_IRQ_STATE_ENABLE, 43 AMDGPU_IRQ_STATE_ENABLE,
39}; 44};
40 45
46struct amdgpu_iv_entry {
47 unsigned client_id;
48 unsigned src_id;
49 unsigned ring_id;
50 unsigned vmid;
51 unsigned vmid_src;
52 uint64_t timestamp;
53 unsigned timestamp_src;
54 unsigned pasid;
55 unsigned pasid_src;
56 unsigned src_data[AMDGPU_IRQ_SRC_DATA_MAX_SIZE_DW];
57 const uint32_t *iv_entry;
58};
59
41struct amdgpu_irq_src { 60struct amdgpu_irq_src {
42 unsigned num_types; 61 unsigned num_types;
43 atomic_t *enabled_types; 62 atomic_t *enabled_types;
@@ -63,7 +82,7 @@ struct amdgpu_irq {
63 bool installed; 82 bool installed;
64 spinlock_t lock; 83 spinlock_t lock;
65 /* interrupt sources */ 84 /* interrupt sources */
66 struct amdgpu_irq_client client[AMDGPU_IH_CLIENTID_MAX]; 85 struct amdgpu_irq_client client[AMDGPU_IRQ_CLIENTID_MAX];
67 86
68 /* status, etc. */ 87 /* status, etc. */
69 bool msi_enabled; /* msi enabled */ 88 bool msi_enabled; /* msi enabled */