Lines Matching +full:scmi +full:- +full:shmem
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * System Control and Management Interface (SCMI) Message Protocol
5 * and function prototypes used in all the different SCMI protocols.
7 * Copyright (C) 2018-2022 ARM Ltd.
46 * maximum number of in-flight messages on a specific platform, but such value
54 * pack_scmi_header() - packs and returns 32-bit header
59 * Return: 32-bit packed message header to be sent to the platform.
63 return FIELD_PREP(MSG_ID_MASK, hdr->id) | in pack_scmi_header()
64 FIELD_PREP(MSG_TYPE_MASK, hdr->type) | in pack_scmi_header()
65 FIELD_PREP(MSG_TOKEN_ID_MASK, hdr->seq) | in pack_scmi_header()
66 FIELD_PREP(MSG_PROTOCOL_ID_MASK, hdr->protocol_id); in pack_scmi_header()
70 * unpack_scmi_header() - unpacks and records message and protocol id
72 * @msg_hdr: 32-bit packed message header sent from the platform
77 hdr->id = MSG_XTRACT_ID(msg_hdr); in unpack_scmi_header()
78 hdr->protocol_id = MSG_XTRACT_PROT_ID(msg_hdr); in unpack_scmi_header()
79 hdr->type = MSG_XTRACT_TYPE(msg_hdr); in unpack_scmi_header()
92 if (xfer_->hdr.seq == k_) \
115 /* SCMI Transport */
117 * struct scmi_chan_info - Structure representing a SCMI channel information
119 * @dev: Reference to device in the SCMI hierarchy corresponding to this
122 * @handle: Pointer to SCMI entity handle
125 * This can be dynamically set by transports at run-time
138 * struct scmi_transport_ops - Structure representing a SCMI transport ops
179 * struct scmi_desc - Description of SoC integration
182 * initialize some transport-specific setup during SCMI core
183 * initialization, so ahead of SCMI core probing.
185 * de-initialize some transport-specific setup during SCMI core
186 * de-initialization, so after SCMI core removal.
193 * @force_polling: Flag to force this whole transport to use SCMI core polling
196 * synchronous-command messages are atomically
234 /* shmem related declarations */
237 void shmem_tx_prepare(struct scmi_shared_mem __iomem *shmem,
239 u32 shmem_read_header(struct scmi_shared_mem __iomem *shmem);
240 void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem,
242 void shmem_fetch_notification(struct scmi_shared_mem __iomem *shmem,
244 void shmem_clear_channel(struct scmi_shared_mem __iomem *shmem);
245 bool shmem_poll_done(struct scmi_shared_mem __iomem *shmem,