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