xref: /linux/drivers/gpu/drm/xe/xe_guc_relay_types.h (revision b7e1e969c887c897947fdc3754fe9b0c24acb155)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2023 Intel Corporation
4  */
5 
6 #ifndef _XE_GUC_RELAY_TYPES_H_
7 #define _XE_GUC_RELAY_TYPES_H_
8 
9 #include <linux/mempool.h>
10 #include <linux/spinlock.h>
11 #include <linux/workqueue.h>
12 
13 /**
14  * struct xe_guc_relay - Data used by the VF-PF Relay Communication over GuC.
15  */
16 struct xe_guc_relay {
17 	/**@lock: protects all internal data. */
18 	spinlock_t lock;
19 
20 	/** @worker: dispatches incoming action messages. */
21 	struct work_struct worker;
22 
23 	/** @pending_relays: list of sent requests that await a response. */
24 	struct list_head pending_relays;
25 
26 	/** @incoming_actions: list of incoming relay action messages to process. */
27 	struct list_head incoming_actions;
28 
29 	/** @pool: pool of the relay message buffers. */
30 	mempool_t pool;
31 
32 	/** @last_rid: last Relay-ID used while sending a message. */
33 	u32 last_rid;
34 };
35 
36 #endif
37