1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2022 Intel Corporation
4  */
5 
6 #ifndef _XE_GGTT_TYPES_H_
7 #define _XE_GGTT_TYPES_H_
8 
9 #include <drm/drm_mm.h>
10 
11 #include "xe_pt_types.h"
12 
13 struct xe_bo;
14 struct xe_gt;
15 
16 struct xe_ggtt_pt_ops {
17 	u64 (*pte_encode_bo)(struct xe_bo *bo, u64 bo_offset, u16 pat_index);
18 };
19 
20 struct xe_ggtt {
21 	struct xe_tile *tile;
22 
23 	u64 size;
24 
25 #define XE_GGTT_FLAGS_64K BIT(0)
26 	unsigned int flags;
27 
28 	struct xe_bo *scratch;
29 
30 	struct mutex lock;
31 
32 	u64 __iomem *gsm;
33 
34 	const struct xe_ggtt_pt_ops *pt_ops;
35 
36 	struct drm_mm mm;
37 };
38 
39 #endif
40