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
11struct xe_bo;
12
13/* ISR */
14#define XE_MEMIRQ_STATUS_OFFSET(inst) ((inst) * SZ_4K + 0x0)
15/* IIR */
16#define XE_MEMIRQ_SOURCE_OFFSET(inst) ((inst) * SZ_4K + 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 */
29struct 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

source code of linux/drivers/gpu/drm/xe/xe_memirq_types.h