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 Wajdeczkostatic inline int xe_lmtt_init(struct xe_lmtt *lmtt) { return 0; } xe_lmtt_init_hw(struct xe_lmtt * lmtt)24*b1d20405SMichal Wajdeczkostatic inline void xe_lmtt_init_hw(struct xe_lmtt *lmtt) { } 25*b1d20405SMichal Wajdeczko #endif 26*b1d20405SMichal Wajdeczko 27*b1d20405SMichal Wajdeczko #endif 28