1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* Copyright(c) 2024 Intel Corporation. */
5 #include <linux/rcuwait.h>
10 * struct cxl_mailbox - context for CXL mailbox operations
11 * @host: device that hosts the mailbox
12 * @payload_size: Size of space for payload
13 * (CXL 3.1 8.2.8.4.3 Mailbox Capabilities Register)
14 * @mbox_mutex: mutex protects device mailbox and firmware
15 * @mbox_wait: rcuwait for mailbox
16 * @mbox_send: @dev specific transport for transmitting mailbox commands
21 struct mutex mbox_mutex
; /* lock to protect mailbox context */
22 struct rcuwait mbox_wait
;
23 int (*mbox_send
)(struct cxl_mailbox
*cxl_mbox
, struct cxl_mbox_cmd
*cmd
);
26 int cxl_mailbox_init(struct cxl_mailbox
*cxl_mbox
, struct device
*host
);