Lines Matching refs:msg

79 static void report_version(struct scmi_msg *msg)  in report_version()  argument
86 if (msg->in_size != 0) { in report_version()
87 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_version()
91 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_version()
94 static void report_attributes(struct scmi_msg *msg) in report_attributes() argument
96 size_t agent_count = plat_scmi_clock_count(msg->agent_id); in report_attributes()
102 if (msg->in_size != 0) { in report_attributes()
103 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_attributes()
107 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_attributes()
110 static void report_message_attributes(struct scmi_msg *msg) in report_message_attributes() argument
112 struct scmi_protocol_message_attributes_a2p *in_args = (void *)msg->in; in report_message_attributes()
119 if (msg->in_size != sizeof(*in_args)) { in report_message_attributes()
120 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_message_attributes()
125 scmi_status_response(msg, SCMI_NOT_FOUND); in report_message_attributes()
129 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_message_attributes()
132 static void scmi_clock_attributes(struct scmi_msg *msg) in scmi_clock_attributes() argument
134 const struct scmi_clock_attributes_a2p *in_args = (void *)msg->in; in scmi_clock_attributes()
141 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_attributes()
142 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_attributes()
148 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_attributes()
149 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_attributes()
154 name = plat_scmi_clock_get_name(msg->agent_id, clock_id); in scmi_clock_attributes()
156 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_attributes()
162 return_values.attributes = plat_scmi_clock_get_state(msg->agent_id, in scmi_clock_attributes()
165 scmi_write_response(msg, &return_values, sizeof(return_values)); in scmi_clock_attributes()
168 static void scmi_clock_rate_get(struct scmi_msg *msg) in scmi_clock_rate_get() argument
170 const struct scmi_clock_rate_get_a2p *in_args = (void *)msg->in; in scmi_clock_rate_get()
177 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_rate_get()
178 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_rate_get()
184 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_rate_get()
185 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_rate_get()
189 rate = plat_scmi_clock_get_rate(msg->agent_id, clock_id); in scmi_clock_rate_get()
194 scmi_write_response(msg, &return_values, sizeof(return_values)); in scmi_clock_rate_get()
197 static void scmi_clock_rate_set(struct scmi_msg *msg) in scmi_clock_rate_set() argument
199 const struct scmi_clock_rate_set_a2p *in_args = (void *)msg->in; in scmi_clock_rate_set()
204 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_rate_set()
205 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_rate_set()
211 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_rate_set()
212 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_rate_set()
219 status = plat_scmi_clock_set_rate(msg->agent_id, clock_id, rate); in scmi_clock_rate_set()
221 scmi_status_response(msg, status); in scmi_clock_rate_set()
224 static void scmi_clock_config_set(struct scmi_msg *msg) in scmi_clock_config_set() argument
226 const struct scmi_clock_config_set_a2p *in_args = (void *)msg->in; in scmi_clock_config_set()
231 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_config_set()
232 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_config_set()
238 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_config_set()
239 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_config_set()
245 status = plat_scmi_clock_set_state(msg->agent_id, clock_id, enable); in scmi_clock_config_set()
247 scmi_status_response(msg, status); in scmi_clock_config_set()
278 static void scmi_clock_describe_rates(struct scmi_msg *msg) in scmi_clock_describe_rates() argument
280 const struct scmi_clock_describe_rates_a2p *in_args = (void *)msg->in; in scmi_clock_describe_rates()
288 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_describe_rates()
289 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_describe_rates()
295 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_describe_rates()
296 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_describe_rates()
301 status = plat_scmi_clock_rates_array(msg->agent_id, clock_id, NULL, in scmi_clock_describe_rates()
310 status = plat_scmi_clock_rates_array(msg->agent_id, clock_id, in scmi_clock_describe_rates()
314 write_rate_desc_array_in_buffer(msg->out + sizeof(p2a), in scmi_clock_describe_rates()
321 memcpy(msg->out, &p2a, sizeof(p2a)); in scmi_clock_describe_rates()
322 msg->out_size_out = sizeof(p2a) + in scmi_clock_describe_rates()
329 status = plat_scmi_clock_rates_by_step(msg->agent_id, clock_id, in scmi_clock_describe_rates()
332 write_rate_desc_array_in_buffer(msg->out + sizeof(p2a), in scmi_clock_describe_rates()
338 memcpy(msg->out, &p2a, sizeof(p2a)); in scmi_clock_describe_rates()
339 msg->out_size_out = sizeof(p2a) + (3U * RATE_DESC_SIZE); in scmi_clock_describe_rates()
346 scmi_status_response(msg, status); in scmi_clock_describe_rates()
372 scmi_msg_handler_t scmi_msg_get_clock_handler(struct scmi_msg *msg) in scmi_msg_get_clock_handler() argument
375 unsigned int message_id = SPECULATION_SAFE_VALUE(msg->message_id); in scmi_msg_get_clock_handler()
378 VERBOSE("Clock handle not found %u", msg->message_id); in scmi_msg_get_clock_handler()