File Index
Files and directories
Sign in
FILE

xe_gt_sriov_pf_migration.h

File preview with syntax highlighting.

linux-6.19.14/drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.h C
 1/* SPDX-License-Identifier: MIT */
 2/*
 3 * Copyright © 2024 Intel Corporation
 4 */
 5
 6#ifndef _XE_GT_SRIOV_PF_MIGRATION_H_
 7#define _XE_GT_SRIOV_PF_MIGRATION_H_
 8
 9#include <linux/types.h>
10
11struct xe_gt;
12struct xe_sriov_packet;
13enum xe_sriov_packet_type;
14
15/* TODO: get this information by querying GuC in the future */
16#define XE_GT_SRIOV_PF_MIGRATION_GUC_DATA_MAX_SIZE SZ_8M
17
18int xe_gt_sriov_pf_migration_init(struct xe_gt *gt);
19int xe_gt_sriov_pf_migration_guc_save(struct xe_gt *gt, unsigned int vfid);
20int xe_gt_sriov_pf_migration_guc_restore(struct xe_gt *gt, unsigned int vfid,
21					 struct xe_sriov_packet *data);
22int xe_gt_sriov_pf_migration_ggtt_save(struct xe_gt *gt, unsigned int vfid);
23int xe_gt_sriov_pf_migration_ggtt_restore(struct xe_gt *gt, unsigned int vfid,
24					  struct xe_sriov_packet *data);
25int xe_gt_sriov_pf_migration_mmio_save(struct xe_gt *gt, unsigned int vfid);
26int xe_gt_sriov_pf_migration_mmio_restore(struct xe_gt *gt, unsigned int vfid,
27					  struct xe_sriov_packet *data);
28int xe_gt_sriov_pf_migration_vram_save(struct xe_gt *gt, unsigned int vfid);
29int xe_gt_sriov_pf_migration_vram_restore(struct xe_gt *gt, unsigned int vfid,
30					  struct xe_sriov_packet *data);
31
32ssize_t xe_gt_sriov_pf_migration_size(struct xe_gt *gt, unsigned int vfid);
33
34bool xe_gt_sriov_pf_migration_ring_empty(struct xe_gt *gt, unsigned int vfid);
35bool xe_gt_sriov_pf_migration_ring_full(struct xe_gt *gt, unsigned int vfid);
36void xe_gt_sriov_pf_migration_ring_free(struct xe_gt *gt, unsigned int vfid);
37
38void xe_gt_sriov_pf_migration_save_init(struct xe_gt *gt, unsigned int vfid);
39bool xe_gt_sriov_pf_migration_save_data_pending(struct xe_gt *gt, unsigned int vfid,
40						enum xe_sriov_packet_type type);
41void xe_gt_sriov_pf_migration_save_data_complete(struct xe_gt *gt, unsigned int vfid,
42						 enum xe_sriov_packet_type type);
43
44int xe_gt_sriov_pf_migration_save_produce(struct xe_gt *gt, unsigned int vfid,
45					  struct xe_sriov_packet *data);
46struct xe_sriov_packet *
47xe_gt_sriov_pf_migration_restore_consume(struct xe_gt *gt, unsigned int vfid);
48
49int xe_gt_sriov_pf_migration_restore_produce(struct xe_gt *gt, unsigned int vfid,
50					     struct xe_sriov_packet *data);
51struct xe_sriov_packet *
52xe_gt_sriov_pf_migration_save_consume(struct xe_gt *gt, unsigned int vfid);
53
54#endif
~/ Read-only file preview.