1a5efeaf8SMichal Wajdeczko /* SPDX-License-Identifier: MIT */ 2a5efeaf8SMichal Wajdeczko /* 3a5efeaf8SMichal Wajdeczko * Copyright © 2025 Intel Corporation 4a5efeaf8SMichal Wajdeczko */ 5a5efeaf8SMichal Wajdeczko 6a5efeaf8SMichal Wajdeczko #ifndef _XE_SRIOV_PF_PROVISION_H_ 7a5efeaf8SMichal Wajdeczko #define _XE_SRIOV_PF_PROVISION_H_ 8a5efeaf8SMichal Wajdeczko 93f984d70SMichal Wajdeczko #include <linux/types.h> 103f984d70SMichal Wajdeczko 11b1767ca1SMichal Wajdeczko #include "xe_sriov_pf_provision_types.h" 12b1767ca1SMichal Wajdeczko 13a5efeaf8SMichal Wajdeczko struct xe_device; 14a5efeaf8SMichal Wajdeczko 15b7a73b57SMichal Wajdeczko int xe_sriov_pf_provision_bulk_apply_eq(struct xe_device *xe, u32 eq); 163f984d70SMichal Wajdeczko int xe_sriov_pf_provision_apply_vf_eq(struct xe_device *xe, unsigned int vfid, u32 eq); 173f984d70SMichal Wajdeczko int xe_sriov_pf_provision_query_vf_eq(struct xe_device *xe, unsigned int vfid, u32 *eq); 183f984d70SMichal Wajdeczko 19b7a73b57SMichal Wajdeczko int xe_sriov_pf_provision_bulk_apply_pt(struct xe_device *xe, u32 pt); 203f984d70SMichal Wajdeczko int xe_sriov_pf_provision_apply_vf_pt(struct xe_device *xe, unsigned int vfid, u32 pt); 213f984d70SMichal Wajdeczko int xe_sriov_pf_provision_query_vf_pt(struct xe_device *xe, unsigned int vfid, u32 *pt); 223f984d70SMichal Wajdeczko 23*23ceec1eSMichal Wajdeczko int xe_sriov_pf_provision_bulk_apply_priority(struct xe_device *xe, u32 prio); 24*23ceec1eSMichal Wajdeczko int xe_sriov_pf_provision_apply_vf_priority(struct xe_device *xe, unsigned int vfid, u32 prio); 25*23ceec1eSMichal Wajdeczko int xe_sriov_pf_provision_query_vf_priority(struct xe_device *xe, unsigned int vfid, u32 *prio); 26*23ceec1eSMichal Wajdeczko 27a5efeaf8SMichal Wajdeczko int xe_sriov_pf_provision_vfs(struct xe_device *xe, unsigned int num_vfs); 28a5efeaf8SMichal Wajdeczko int xe_sriov_pf_unprovision_vfs(struct xe_device *xe, unsigned int num_vfs); 29a5efeaf8SMichal Wajdeczko 30b1767ca1SMichal Wajdeczko int xe_sriov_pf_provision_set_mode(struct xe_device *xe, enum xe_sriov_provisioning_mode mode); 31b1767ca1SMichal Wajdeczko 32b1767ca1SMichal Wajdeczko /** 33b1767ca1SMichal Wajdeczko * xe_sriov_pf_provision_set_custom_mode() - Change VFs provision mode to custom. 34b1767ca1SMichal Wajdeczko * @xe: the PF &xe_device 35b1767ca1SMichal Wajdeczko * 36b1767ca1SMichal Wajdeczko * This function can only be called on PF. 37b1767ca1SMichal Wajdeczko * 38b1767ca1SMichal Wajdeczko * Return: 0 on success or a negative error code on failure. 39b1767ca1SMichal Wajdeczko */ 40b1767ca1SMichal Wajdeczko static inline int xe_sriov_pf_provision_set_custom_mode(struct xe_device *xe) 41b1767ca1SMichal Wajdeczko { 42b1767ca1SMichal Wajdeczko return xe_sriov_pf_provision_set_mode(xe, XE_SRIOV_PROVISIONING_MODE_CUSTOM); 43b1767ca1SMichal Wajdeczko } 44b1767ca1SMichal Wajdeczko 45a5efeaf8SMichal Wajdeczko #endif 46