Lines Matching +full:protocol +full:- +full:id

1 /* SPDX-License-Identifier: GPL-2.0 */
3 * System Control and Management Interface (SCMI) Message Protocol
39 * struct scmi_msg_resp_prot_version - Response for a message
69 * struct scmi_msg_hdr - Message(Tx/Rx) header
71 * @id: The identifier of the message being sent
72 * @protocol_id: The identifier of the protocol used to send @id message
81 u8 id; member
89 * pack_scmi_header() - packs and returns 32-bit header
91 * @hdr: pointer to header containing all the information on message id,
92 * protocol id and sequence id.
94 * Return: 32-bit packed message header to be sent to the platform.
98 return FIELD_PREP(MSG_ID_MASK, hdr->id) | in pack_scmi_header()
99 FIELD_PREP(MSG_TOKEN_ID_MASK, hdr->seq) | in pack_scmi_header()
100 FIELD_PREP(MSG_PROTOCOL_ID_MASK, hdr->protocol_id); in pack_scmi_header()
104 * unpack_scmi_header() - unpacks and records message and protocol id
106 * @msg_hdr: 32-bit packed message header sent from the platform
107 * @hdr: pointer to header to fetch message and protocol id.
111 hdr->id = MSG_XTRACT_ID(msg_hdr); in unpack_scmi_header()
112 hdr->protocol_id = MSG_XTRACT_PROT_ID(msg_hdr); in unpack_scmi_header()
116 * struct scmi_msg - Message(Tx/Rx) structure
127 * struct scmi_xfer - Structure representing a message flow
129 * @transfer_id: Unique ID for debug & profiling purpose
132 * @rx: Receive message, the buffer should be pre-allocated to store
133 * message. If request-ACK protocol is used, we can reuse the same
150 * struct scmi_protocol_handle - Reference to an initialized protocol instance
152 * @dev: A reference to the associated SCMI instance device (handle->dev).
154 * can be used by the protocol implementation to generate SCMI messages.
155 * @set_priv: A method to set protocol private data for this instance.
156 * @get_priv: A method to get protocol private data previously set.
158 * This structure represents a protocol initialized against specific SCMI
160 * - as a parameter fed from the core to the protocol initialization code so
162 * messages exclusively for the specific underlying protocol instance.
163 * - as an opaque handle fed by an SCMI driver user when it tries to access
164 * this protocol through its own protocol operations.
166 * with the related protocol operations when the SCMI driver tries to access
167 * the protocol.
177 * struct scmi_xfer_ops - References to the core SCMI xfer operations.
178 * @version_get: Get this version protocol.
185 * Note that all this operations expect a protocol handle as first parameter;
186 * they then internally use it to infer the underlying protocol number: this
187 * way is not possible for a protocol implementation to forge messages for
188 * another protocol.
216 * struct scmi_protocol - Protocol descriptor
217 * @id: Protocol ID.
219 * @init_instance: Mandatory protocol initialization function.
220 * @deinit_instance: Optional protocol de-initialization function.
221 * @ops: Optional reference to the operations provided by the protocol and
223 * @events: An optional reference to the events supported by this protocol.
226 const u8 id; member
268 * struct scmi_chan_info - Structure representing a SCMI channel information
282 * struct scmi_transport_ops - Structure representing a SCMI transport ops
298 int (*chan_free)(int id, void *p, void *data);
316 * struct scmi_desc - Description of SoC integration
337 void scmi_free_channel(struct scmi_chan_info *cinfo, struct idr *idr, int id);