xref: /linux/drivers/gpu/drm/xe/xe_sriov_packet.h (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
1644a699eSMichał Winiarski /* SPDX-License-Identifier: MIT */
2644a699eSMichał Winiarski /*
3644a699eSMichał Winiarski  * Copyright © 2025 Intel Corporation
4644a699eSMichał Winiarski  */
5644a699eSMichał Winiarski 
6644a699eSMichał Winiarski #ifndef _XE_SRIOV_PACKET_H_
7644a699eSMichał Winiarski #define _XE_SRIOV_PACKET_H_
8644a699eSMichał Winiarski 
9644a699eSMichał Winiarski #include <linux/types.h>
10644a699eSMichał Winiarski 
11644a699eSMichał Winiarski struct xe_device;
12644a699eSMichał Winiarski struct xe_sriov_packet;
13644a699eSMichał Winiarski enum xe_sriov_packet_type;
14644a699eSMichał Winiarski 
15644a699eSMichał Winiarski struct xe_sriov_packet *xe_sriov_packet_alloc(struct xe_device *xe);
16644a699eSMichał Winiarski void xe_sriov_packet_free(struct xe_sriov_packet *data);
17644a699eSMichał Winiarski 
18644a699eSMichał Winiarski int xe_sriov_packet_init(struct xe_sriov_packet *data, u8 tile_id, u8 gt_id,
19644a699eSMichał Winiarski 			 enum xe_sriov_packet_type, loff_t offset, size_t size);
20644a699eSMichał Winiarski int xe_sriov_packet_init_from_hdr(struct xe_sriov_packet *data);
21644a699eSMichał Winiarski 
221ed30397SMichał Winiarski ssize_t xe_sriov_packet_read_single(struct xe_device *xe, unsigned int vfid,
231ed30397SMichał Winiarski 				    char __user *buf, size_t len);
241ed30397SMichał Winiarski ssize_t xe_sriov_packet_write_single(struct xe_device *xe, unsigned int vfid,
251ed30397SMichał Winiarski 				     const char __user *buf, size_t len);
261ed30397SMichał Winiarski int xe_sriov_packet_save_init(struct xe_device *xe, unsigned int vfid);
27*70e2fa91SMichał Winiarski int xe_sriov_packet_process_descriptor(struct xe_device *xe, unsigned int vfid,
28*70e2fa91SMichał Winiarski 				       struct xe_sriov_packet *data);
291ed30397SMichał Winiarski 
30644a699eSMichał Winiarski #endif
31