Lines Matching refs:msg
19 static void report_version(struct scmi_msg *msg) in report_version() argument
26 if (msg->in_size) { in report_version()
27 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_version()
31 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_version()
34 static void report_attributes(struct scmi_msg *msg) in report_attributes() argument
43 if (msg->in_size) { in report_attributes()
44 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_attributes()
48 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_attributes()
51 static void report_message_attributes(struct scmi_msg *msg) in report_message_attributes() argument
53 struct scmi_protocol_message_attributes_a2p *in_args = (void *)msg->in; in report_message_attributes()
60 if (msg->in_size != sizeof(*in_args)) { in report_message_attributes()
61 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_message_attributes()
66 scmi_status_response(msg, SCMI_NOT_FOUND); in report_message_attributes()
70 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_message_attributes()
73 static void discover_vendor(struct scmi_msg *msg) in discover_vendor() argument
80 if (msg->in_size) { in discover_vendor()
81 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in discover_vendor()
87 scmi_write_response(msg, &return_values, sizeof(return_values)); in discover_vendor()
90 static void discover_sub_vendor(struct scmi_msg *msg) in discover_sub_vendor() argument
97 if (msg->in_size) { in discover_sub_vendor()
98 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in discover_sub_vendor()
104 scmi_write_response(msg, &return_values, sizeof(return_values)); in discover_sub_vendor()
107 static void discover_implementation_version(struct scmi_msg *msg) in discover_implementation_version() argument
114 if (msg->in_size) { in discover_implementation_version()
115 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in discover_implementation_version()
119 scmi_write_response(msg, &return_values, sizeof(return_values)); in discover_implementation_version()
133 static void discover_list_protocols(struct scmi_msg *msg) in discover_list_protocols() argument
142 if (msg->in_size != sizeof(*a2p)) { in discover_list_protocols()
143 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in discover_list_protocols()
147 a2p = (void *)msg->in; in discover_list_protocols()
149 list = plat_scmi_protocol_list(msg->channel_id); in discover_list_protocols()
152 count = MIN(count - a2p->skip, msg->out_size - sizeof(p2a)); in discover_list_protocols()
158 memcpy(msg->out, &p2a, sizeof(p2a)); in discover_list_protocols()
159 memcpy(msg->out + sizeof(p2a), list + a2p->skip, count); in discover_list_protocols()
160 msg->out_size_out = sizeof(p2a) + ROUNDUP(count, sizeof(uint32_t)); in discover_list_protocols()
180 scmi_msg_handler_t scmi_msg_get_base_handler(struct scmi_msg *msg) in scmi_msg_get_base_handler() argument
185 if (msg->message_id >= array_size) { in scmi_msg_get_base_handler()
186 DMSG("Base handle not found %u", msg->message_id); in scmi_msg_get_base_handler()
190 message_id = confine_array_index(msg->message_id, array_size); in scmi_msg_get_base_handler()