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