xref: /linux/drivers/gpu/drm/xe/xe_sriov_pf_provision.h (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
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