xref: /linux/drivers/gpu/drm/xe/xe_memirq_types.h (revision b7e1e969c887c897947fdc3754fe9b0c24acb155)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2023 Intel Corporation
4  */
5 
6 #ifndef _XE_MEMIRQ_TYPES_H_
7 #define _XE_MEMIRQ_TYPES_H_
8 
9 #include <linux/iosys-map.h>
10 
11 struct xe_bo;
12 
13 /* ISR */
14 #define XE_MEMIRQ_STATUS_OFFSET		0x0
15 /* IIR */
16 #define XE_MEMIRQ_SOURCE_OFFSET		0x400
17 /* IMR */
18 #define XE_MEMIRQ_ENABLE_OFFSET		0x440
19 
20 /**
21  * struct xe_memirq - Data used by the `Memory Based Interrupts`_.
22  *
23  * @bo: buffer object with `Memory Based Interrupts Page Layout`_.
24  * @source: iosys pointer to `Interrupt Source Report Page`_.
25  * @status: iosys pointer to `Interrupt Status Report Page`_.
26  * @mask: iosys pointer to Interrupt Enable Mask.
27  * @enabled: internal flag used to control processing of the interrupts.
28  */
29 struct xe_memirq {
30 	struct xe_bo *bo;
31 	struct iosys_map source;
32 	struct iosys_map status;
33 	struct iosys_map mask;
34 	bool enabled;
35 };
36 
37 #endif
38