xref: /linux/drivers/gpu/drm/xe/xe_lmtt.h (revision 41c177cf354126a22443b5c80cec9fdd313e67e1)
1*b1d20405SMichal Wajdeczko /* SPDX-License-Identifier: MIT */
2*b1d20405SMichal Wajdeczko /*
3*b1d20405SMichal Wajdeczko  * Copyright © 2023 Intel Corporation
4*b1d20405SMichal Wajdeczko  */
5*b1d20405SMichal Wajdeczko 
6*b1d20405SMichal Wajdeczko #ifndef _XE_LMTT_H_
7*b1d20405SMichal Wajdeczko #define _XE_LMTT_H_
8*b1d20405SMichal Wajdeczko 
9*b1d20405SMichal Wajdeczko #include <linux/types.h>
10*b1d20405SMichal Wajdeczko 
11*b1d20405SMichal Wajdeczko struct xe_bo;
12*b1d20405SMichal Wajdeczko struct xe_lmtt;
13*b1d20405SMichal Wajdeczko struct xe_lmtt_ops;
14*b1d20405SMichal Wajdeczko 
15*b1d20405SMichal Wajdeczko #ifdef CONFIG_PCI_IOV
16*b1d20405SMichal Wajdeczko int xe_lmtt_init(struct xe_lmtt *lmtt);
17*b1d20405SMichal Wajdeczko void xe_lmtt_init_hw(struct xe_lmtt *lmtt);
18*b1d20405SMichal Wajdeczko int xe_lmtt_prepare_pages(struct xe_lmtt *lmtt, unsigned int vfid, u64 range);
19*b1d20405SMichal Wajdeczko int xe_lmtt_populate_pages(struct xe_lmtt *lmtt, unsigned int vfid, struct xe_bo *bo, u64 offset);
20*b1d20405SMichal Wajdeczko void xe_lmtt_drop_pages(struct xe_lmtt *lmtt, unsigned int vfid);
21*b1d20405SMichal Wajdeczko u64 xe_lmtt_estimate_pt_size(struct xe_lmtt *lmtt, u64 size);
22*b1d20405SMichal Wajdeczko #else
xe_lmtt_init(struct xe_lmtt * lmtt)23*b1d20405SMichal Wajdeczko static inline int xe_lmtt_init(struct xe_lmtt *lmtt) { return 0; }
xe_lmtt_init_hw(struct xe_lmtt * lmtt)24*b1d20405SMichal Wajdeczko static inline void xe_lmtt_init_hw(struct xe_lmtt *lmtt) { }
25*b1d20405SMichal Wajdeczko #endif
26*b1d20405SMichal Wajdeczko 
27*b1d20405SMichal Wajdeczko #endif
28