Lines Matching refs:msg
130 static void report_version(struct scmi_msg *msg) in report_version() argument
137 if (msg->in_size != 0) { in report_version()
138 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_version()
142 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_version()
145 static void report_attributes(struct scmi_msg *msg) in report_attributes() argument
147 size_t agent_count = plat_scmi_clock_count(msg->agent_id); in report_attributes()
153 if (msg->in_size != 0) { in report_attributes()
154 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_attributes()
158 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_attributes()
161 static void report_message_attributes(struct scmi_msg *msg) in report_message_attributes() argument
163 struct scmi_protocol_message_attributes_a2p *in_args = (void *)msg->in; in report_message_attributes()
170 if (msg->in_size != sizeof(*in_args)) { in report_message_attributes()
171 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in report_message_attributes()
176 scmi_status_response(msg, SCMI_NOT_FOUND); in report_message_attributes()
180 scmi_write_response(msg, &return_values, sizeof(return_values)); in report_message_attributes()
183 static void scmi_clock_attributes(struct scmi_msg *msg) in scmi_clock_attributes() argument
185 const struct scmi_clock_attributes_a2p *in_args = (void *)msg->in; in scmi_clock_attributes()
192 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_attributes()
193 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_attributes()
199 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_attributes()
200 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_attributes()
205 name = plat_scmi_clock_get_name(msg->agent_id, clock_id); in scmi_clock_attributes()
207 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_attributes()
213 return_values.attributes = plat_scmi_clock_get_state(msg->agent_id, in scmi_clock_attributes()
219 return_values.clock_enable_delay = plat_scmi_clock_get_enable_delay(msg->agent_id, in scmi_clock_attributes()
222 scmi_write_response(msg, &return_values, sizeof(return_values)); in scmi_clock_attributes()
253 static void scmi_clock_possible_parents_get(struct scmi_msg *msg) in scmi_clock_possible_parents_get() argument
255 const struct scmi_clock_possible_parents_get_a2p *in_args = (void *)msg->in; in scmi_clock_possible_parents_get()
265 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_possible_parents_get()
266 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_possible_parents_get()
272 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_possible_parents_get()
273 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_possible_parents_get()
277 status = plat_scmi_clock_get_possible_parents(msg->agent_id, clock_id, NULL, in scmi_clock_possible_parents_get()
282 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_possible_parents_get()
295 status = plat_scmi_clock_get_possible_parents(msg->agent_id, clock_id, in scmi_clock_possible_parents_get()
300 write_possible_parents_array_in_buffer(msg->out + sizeof(p2a), in scmi_clock_possible_parents_get()
307 memcpy(msg->out, &p2a, sizeof(p2a)); in scmi_clock_possible_parents_get()
308 msg->out_size_out = sizeof(p2a) + in scmi_clock_possible_parents_get()
317 scmi_status_response(msg, status); in scmi_clock_possible_parents_get()
326 static void scmi_clock_parent_get(struct scmi_msg *msg) in scmi_clock_parent_get() argument
328 const struct scmi_clock_parent_get_a2p *in_args = (void *)msg->in; in scmi_clock_parent_get()
335 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_parent_get()
336 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_parent_get()
342 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_parent_get()
343 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_parent_get()
347 return_values.status = plat_scmi_clock_get_parent(msg->agent_id, clock_id, in scmi_clock_parent_get()
350 scmi_write_response(msg, &return_values, sizeof(return_values)); in scmi_clock_parent_get()
353 static void scmi_clock_parent_set(struct scmi_msg *msg) in scmi_clock_parent_set() argument
355 const struct scmi_clock_parent_set_a2p *in_args = (void *)msg->in; in scmi_clock_parent_set()
362 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_parent_set()
363 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_parent_set()
370 clock_count = plat_scmi_clock_count(msg->agent_id); in scmi_clock_parent_set()
372 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_parent_set()
376 status = plat_scmi_clock_set_parent(msg->agent_id, clock_id, parent_id); in scmi_clock_parent_set()
378 scmi_status_response(msg, status); in scmi_clock_parent_set()
381 static void scmi_clock_rate_get(struct scmi_msg *msg) in scmi_clock_rate_get() argument
383 const struct scmi_clock_rate_get_a2p *in_args = (void *)msg->in; in scmi_clock_rate_get()
390 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_rate_get()
391 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_rate_get()
397 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_rate_get()
398 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_rate_get()
402 rate = plat_scmi_clock_get_rate(msg->agent_id, clock_id); in scmi_clock_rate_get()
407 scmi_write_response(msg, &return_values, sizeof(return_values)); in scmi_clock_rate_get()
410 static void scmi_clock_rate_set(struct scmi_msg *msg) in scmi_clock_rate_set() argument
412 const struct scmi_clock_rate_set_a2p *in_args = (void *)msg->in; in scmi_clock_rate_set()
417 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_rate_set()
418 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_rate_set()
424 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_rate_set()
425 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_rate_set()
432 status = plat_scmi_clock_set_rate(msg->agent_id, clock_id, rate); in scmi_clock_rate_set()
434 scmi_status_response(msg, status); in scmi_clock_rate_set()
437 static void scmi_clock_config_get(struct scmi_msg *msg) in scmi_clock_config_get() argument
439 const struct scmi_clock_config_get_a2p *in_args = (void *)msg->in; in scmi_clock_config_get()
446 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_config_get()
447 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_config_get()
453 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_config_get()
454 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_config_get()
458 p2a.config = plat_scmi_clock_get_state(msg->agent_id, clock_id); in scmi_clock_config_get()
462 p2a.status = plat_scmi_clock_get_extended_config(msg->agent_id, in scmi_clock_config_get()
468 scmi_write_response(msg, &p2a, sizeof(p2a)); in scmi_clock_config_get()
471 static void scmi_clock_config_set(struct scmi_msg *msg) in scmi_clock_config_set() argument
473 const struct scmi_clock_config_set_a2p *in_args = (void *)msg->in; in scmi_clock_config_set()
479 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_config_set()
480 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_config_set()
486 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_config_set()
487 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_config_set()
497 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_config_set()
502 scmi_status_response(msg, SCMI_INVALID_PARAMETERS); in scmi_clock_config_set()
507 status = plat_scmi_clock_set_state(msg->agent_id, clock_id, (bool)enable); in scmi_clock_config_set()
509 scmi_status_response(msg, status); in scmi_clock_config_set()
515 status = plat_scmi_clock_set_extended_config(msg->agent_id, clock_id, in scmi_clock_config_set()
520 scmi_status_response(msg, status); in scmi_clock_config_set()
551 static void scmi_clock_describe_rates(struct scmi_msg *msg) in scmi_clock_describe_rates() argument
553 const struct scmi_clock_describe_rates_a2p *in_args = (void *)msg->in; in scmi_clock_describe_rates()
561 if (msg->in_size != sizeof(*in_args)) { in scmi_clock_describe_rates()
562 scmi_status_response(msg, SCMI_PROTOCOL_ERROR); in scmi_clock_describe_rates()
568 if (clock_id >= plat_scmi_clock_count(msg->agent_id)) { in scmi_clock_describe_rates()
569 scmi_status_response(msg, SCMI_NOT_FOUND); in scmi_clock_describe_rates()
574 status = plat_scmi_clock_rates_array(msg->agent_id, clock_id, NULL, in scmi_clock_describe_rates()
583 status = plat_scmi_clock_rates_array(msg->agent_id, clock_id, in scmi_clock_describe_rates()
587 write_rate_desc_array_in_buffer(msg->out + sizeof(p2a), in scmi_clock_describe_rates()
594 memcpy(msg->out, &p2a, sizeof(p2a)); in scmi_clock_describe_rates()
595 msg->out_size_out = sizeof(p2a) + in scmi_clock_describe_rates()
602 status = plat_scmi_clock_rates_by_step(msg->agent_id, clock_id, in scmi_clock_describe_rates()
605 write_rate_desc_array_in_buffer(msg->out + sizeof(p2a), in scmi_clock_describe_rates()
611 memcpy(msg->out, &p2a, sizeof(p2a)); in scmi_clock_describe_rates()
612 msg->out_size_out = sizeof(p2a) + (3U * RATE_DESC_SIZE); in scmi_clock_describe_rates()
619 scmi_status_response(msg, status); in scmi_clock_describe_rates()
649 scmi_msg_handler_t scmi_msg_get_clock_handler(struct scmi_msg *msg) in scmi_msg_get_clock_handler() argument
652 unsigned int message_id = SPECULATION_SAFE_VALUE(msg->message_id); in scmi_msg_get_clock_handler()
655 VERBOSE("Clock handle not found %u", msg->message_id); in scmi_msg_get_clock_handler()