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