1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023-2024 Intel Corporation 4 */ 5 6 #ifndef _XE_GT_SRIOV_VF_H_ 7 #define _XE_GT_SRIOV_VF_H_ 8 9 #include <linux/types.h> 10 11 struct drm_printer; 12 struct xe_gt; 13 struct xe_reg; 14 struct xe_uc_fw_version; 15 16 int xe_gt_sriov_vf_reset(struct xe_gt *gt); 17 int xe_gt_sriov_vf_bootstrap(struct xe_gt *gt); 18 void xe_gt_sriov_vf_guc_versions(struct xe_gt *gt, 19 struct xe_uc_fw_version *wanted, 20 struct xe_uc_fw_version *found); 21 int xe_gt_sriov_vf_query_config(struct xe_gt *gt); 22 int xe_gt_sriov_vf_connect(struct xe_gt *gt); 23 int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt); 24 void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt); 25 26 int xe_gt_sriov_vf_init_early(struct xe_gt *gt); 27 int xe_gt_sriov_vf_init(struct xe_gt *gt); 28 bool xe_gt_sriov_vf_recovery_pending(struct xe_gt *gt); 29 30 u32 xe_gt_sriov_vf_gmdid(struct xe_gt *gt); 31 u16 xe_gt_sriov_vf_guc_ids(struct xe_gt *gt); 32 u64 xe_gt_sriov_vf_lmem(struct xe_gt *gt); 33 34 u32 xe_gt_sriov_vf_read32(struct xe_gt *gt, struct xe_reg reg); 35 void xe_gt_sriov_vf_write32(struct xe_gt *gt, struct xe_reg reg, u32 val); 36 37 void xe_gt_sriov_vf_print_config(struct xe_gt *gt, struct drm_printer *p); 38 void xe_gt_sriov_vf_print_runtime(struct xe_gt *gt, struct drm_printer *p); 39 void xe_gt_sriov_vf_print_version(struct xe_gt *gt, struct drm_printer *p); 40 41 void xe_gt_sriov_vf_wait_valid_ggtt(struct xe_gt *gt); 42 43 #endif 44