| 12345678910111213141516171819202122232425262728 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /* Copyright(c) 2024 Intel Corporation. */
- #ifndef __CXL_MBOX_H__
- #define __CXL_MBOX_H__
- #include <linux/rcuwait.h>
- struct cxl_mbox_cmd;
- /**
- * struct cxl_mailbox - context for CXL mailbox operations
- * @host: device that hosts the mailbox
- * @payload_size: Size of space for payload
- * (CXL 3.1 8.2.8.4.3 Mailbox Capabilities Register)
- * @mbox_mutex: mutex protects device mailbox and firmware
- * @mbox_wait: rcuwait for mailbox
- * @mbox_send: @dev specific transport for transmitting mailbox commands
- */
- struct cxl_mailbox {
- struct device *host;
- size_t payload_size;
- struct mutex mbox_mutex; /* lock to protect mailbox context */
- struct rcuwait mbox_wait;
- int (*mbox_send)(struct cxl_mailbox *cxl_mbox, struct cxl_mbox_cmd *cmd);
- };
- int cxl_mailbox_init(struct cxl_mailbox *cxl_mbox, struct device *host);
- #endif
|