diff --git a/framework/include/fwk_status.h b/framework/include/fwk_status.h index 67ff54364d68b07fd364dc74e414ebeeacdca9bc..364d5be93c76ff8929ce6a868e1540e94476ca29 100644 --- a/framework/include/fwk_status.h +++ b/framework/include/fwk_status.h @@ -81,6 +81,15 @@ /*! Unrecoverable error */ #define FWK_E_PANIC -18 +/*! + * \brief Return a human readable string representation of a status code. + * + * \param status Status code value. + * + * \return String representation of \p status + */ +const char *fwk_status_str(int status); + /*! * @} */ diff --git a/framework/src/Makefile b/framework/src/Makefile index 91ec78b2ce7b0119f5e26825df0478bd3c8a4e3d..4cbf903efea1e0229dce6f1fcb9dbaf16127e9c4 100644 --- a/framework/src/Makefile +++ b/framework/src/Makefile @@ -23,6 +23,7 @@ endif ifeq ($(BUILD_HAS_NOTIFICATION),yes) BS_LIB_SOURCES += fwk_notification.c endif +BS_LIB_SOURCES += fwk_status.c BS_LIB_INCLUDES += $(ARCH_DIR)/include BS_LIB_INCLUDES += $(FWK_DIR)/include diff --git a/framework/src/fwk_status.c b/framework/src/fwk_status.c new file mode 100644 index 0000000000000000000000000000000000000000..c54d11d9425f12a58052667f183d59b11e5c53bb --- /dev/null +++ b/framework/src/fwk_status.c @@ -0,0 +1,52 @@ +/* + * Arm SCP/MCP Software + * Copyright (c) 2019, Arm Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Description: + * Framework status code helpers. + */ + +#include +#include + +static const char * const error_string[] = { + [-FWK_E_PARAM] = "E_PARAM", + [-FWK_E_ALIGN] = "E_ALIGN", + [-FWK_E_SIZE] = "E_SIZE", + [-FWK_E_HANDLER] = "E_HANDLER", + [-FWK_E_ACCESS] = "E_ACCESS", + [-FWK_E_RANGE] = "E_RANGE", + [-FWK_E_TIMEOUT] = "E_TIMEOUT", + [-FWK_E_NOMEM] = "E_NOMEM", + [-FWK_E_PWRSTATE] = "E_PWRSTATE", + [-FWK_E_SUPPORT] = "E_SUPPORT", + [-FWK_E_DEVICE] = "E_DEVICE", + [-FWK_E_BUSY] = "E_BUSY", + [-FWK_E_OS] = "E_OS", + [-FWK_E_DATA] = "E_DATA", + [-FWK_E_STATE] = "E_STATE", + [-FWK_E_INIT] = "E_INIT", + [-FWK_E_OVERWRITTEN] = "E_OVERWRITTEN", + [-FWK_E_PANIC] = "E_PANIC", +}; + +static const char * const status_string[] = { + [FWK_SUCCESS] = "SUCCESS", + [FWK_PENDING] = "PENDING", +}; + +const char *fwk_status_str(int status) +{ + static const char unknown[] = "unknown"; + + unsigned int error_idx = (unsigned int)(-status); + + if ((status < 0) && (error_idx < FWK_ARRAY_SIZE(error_string))) + return error_string[error_idx]; + else if ((status >= 0) && (status < (int)FWK_ARRAY_SIZE(status_string))) + return status_string[status]; + + return unknown; +} diff --git a/module/clock/src/mod_clock.c b/module/clock/src/mod_clock.c index 9622e056b2327c5ed06eb0de912f2bddcdf12c8f..a5ed1f8cb08158e5ad86b2b5e179a76149b01051 100644 --- a/module/clock/src/mod_clock.c +++ b/module/clock/src/mod_clock.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include "clock.h" /* Device context */ struct clock_dev_ctx { @@ -25,6 +25,7 @@ struct clock_dev_ctx { /* Driver API */ struct mod_clock_drv_api *api; +#ifdef BUILD_HAS_NOTIFICATION /* Cookie for the pre-transition notification response */ unsigned int pd_pre_power_transition_notification_cookie; @@ -33,6 +34,7 @@ struct clock_dev_ctx { /* Status of the pending transition */ unsigned int transition_pending_response_status; +#endif /* A request is on-going */ bool is_request_ongoing; @@ -62,9 +64,9 @@ static int process_response_event(const struct fwk_event *event) struct fwk_event resp_event; struct clock_dev_ctx *ctx; struct mod_clock_driver_resp_params *event_params = - (struct mod_clock_driver_resp_params *)event->params; + (struct mod_clock_driver_resp_params *)(void *)event->params; struct mod_clock_resp_params *resp_params = - (struct mod_clock_resp_params *)resp_event.params; + (struct mod_clock_resp_params *)(void *)resp_event.params; ctx = &module_ctx.dev_ctx_table[fwk_id_get_element_idx(event->target_id)]; @@ -133,18 +135,19 @@ static int get_ctx(fwk_id_t clock_id, struct clock_dev_ctx **ctx) return FWK_SUCCESS; } +#if defined(BUILD_HAS_NOTIFICATION) /* * Driver response API. */ -void request_complete(fwk_id_t dev_id, - struct mod_clock_driver_resp_params *response) +static void request_complete(fwk_id_t dev_id, + struct mod_clock_driver_resp_params *response) { int status; struct fwk_event event; struct clock_dev_ctx *ctx; struct mod_clock_driver_resp_params *event_params = - (struct mod_clock_driver_resp_params *)event.params; + (struct mod_clock_driver_resp_params *)(void *)event.params; fwk_assert(fwk_module_is_valid_element_id(dev_id)); @@ -169,6 +172,7 @@ void request_complete(fwk_id_t dev_id, static struct mod_clock_driver_response_api clock_driver_response_api = { .request_complete = request_complete, }; +#endif /* * Module API functions @@ -191,10 +195,8 @@ static int clock_set_rate(fwk_id_t clock_id, uint64_t rate, status = ctx->api->set_rate(ctx->config->driver_id, rate, round_mode); if (status == FWK_PENDING) return create_async_request(ctx, clock_id); - else if (status == FWK_SUCCESS) - return FWK_SUCCESS; - else - return status; + + return status; } static int clock_get_rate(fwk_id_t clock_id, uint64_t *rate) @@ -216,10 +218,8 @@ static int clock_get_rate(fwk_id_t clock_id, uint64_t *rate) status = ctx->api->get_rate(ctx->config->driver_id, rate); if (status == FWK_PENDING) return create_async_request(ctx, clock_id); - else if (status == FWK_SUCCESS) - return FWK_SUCCESS; - else - return status; + + return status; } static int clock_get_rate_from_index(fwk_id_t clock_id, unsigned int rate_index, @@ -255,10 +255,8 @@ static int clock_set_state(fwk_id_t clock_id, enum mod_clock_state state) status = ctx->api->set_state(ctx->config->driver_id, state); if (status == FWK_PENDING) return create_async_request(ctx, clock_id); - else if (status == FWK_SUCCESS) - return FWK_SUCCESS; - else - return status; + + return status; } static int clock_get_state(fwk_id_t clock_id, enum mod_clock_state *state) @@ -280,10 +278,8 @@ static int clock_get_state(fwk_id_t clock_id, enum mod_clock_state *state) status = ctx->api->get_state(ctx->config->driver_id, state); if (status == FWK_PENDING) return create_async_request(ctx, clock_id); - else if (status == FWK_SUCCESS) - return FWK_SUCCESS; - else - return status; + + return status; } static int clock_get_info(fwk_id_t clock_id, struct mod_clock_info *info) @@ -328,8 +324,10 @@ static int clock_init(fwk_id_t module_id, unsigned int element_count, if (element_count == 0) return FWK_SUCCESS; +#ifdef BUILD_HAS_NOTIFICATION if (config == NULL) return FWK_E_PARAM; +#endif module_ctx.config = config; module_ctx.dev_ctx_table = fwk_mm_calloc(element_count, @@ -373,7 +371,9 @@ static int clock_bind(fwk_id_t id, unsigned int round) static int clock_start(fwk_id_t id) { +#ifdef BUILD_HAS_NOTIFICATION int status; +#endif struct clock_dev_ctx *ctx; /* Nothing to be done at the module level */ @@ -385,6 +385,7 @@ static int clock_start(fwk_id_t id) if (fwk_id_is_type(ctx->config->pd_source_id, FWK_ID_TYPE_NONE)) return FWK_SUCCESS; +#ifdef BUILD_HAS_NOTIFICATION if ((ctx->api->process_power_transition != NULL) && (fwk_id_is_type( module_ctx.config->pd_transition_notification_id, @@ -408,6 +409,7 @@ static int clock_start(fwk_id_t id) if (status != FWK_SUCCESS) return status; } +#endif return FWK_SUCCESS; } @@ -416,7 +418,9 @@ static int clock_process_bind_request(fwk_id_t source_id, fwk_id_t target_id, fwk_id_t api_id, const void **api) { enum mod_clock_api_type api_type = fwk_id_get_api_idx(api_id); +#ifdef BUILD_HAS_NOTIFICATION struct clock_dev_ctx *ctx; +#endif switch (api_type) { case MOD_CLOCK_API_TYPE_HAL: @@ -424,6 +428,7 @@ static int clock_process_bind_request(fwk_id_t source_id, fwk_id_t target_id, return FWK_SUCCESS; +#if defined(BUILD_HAS_NOTIFICATION) case MOD_CLOCK_API_TYPE_DRIVER_RESPONSE: if (!fwk_id_is_type(target_id, FWK_ID_TYPE_ELEMENT)) return FWK_E_PARAM; @@ -436,12 +441,15 @@ static int clock_process_bind_request(fwk_id_t source_id, fwk_id_t target_id, return FWK_E_ACCESS; return FWK_SUCCESS; +#endif default: return FWK_E_ACCESS; } } +#ifdef BUILD_HAS_NOTIFICATION + static int clock_process_pd_pre_transition_notification( struct clock_dev_ctx *ctx, const struct fwk_event *event, @@ -546,9 +554,8 @@ static int clock_process_pd_transition_notification( return FWK_SUCCESS; } -static int clock_process_notification_response( - struct clock_dev_ctx *ctx, - const struct fwk_event *event) +static int clock_process_notification_response(struct clock_dev_ctx *ctx, + const struct fwk_event *event) { struct clock_state_change_pending_resp_params *resp_params; struct mod_pd_power_state_pre_transition_notification_resp_params @@ -582,7 +589,8 @@ static int clock_process_notification_response( if (resp_params->status != FWK_SUCCESS) ctx->transition_pending_response_status = resp_params->status; - if ((--(ctx->transition_pending_notifications_sent)) == 0) { + ctx->transition_pending_notifications_sent--; + if (ctx->transition_pending_notifications_sent == 0) { /* * If this is the final response then the response to the power domain * notification can be sent. @@ -617,11 +625,12 @@ static int clock_process_notification( return clock_process_pd_transition_notification(ctx, event); else if (fwk_id_is_equal(event->id, module_ctx.config->pd_pre_transition_notification_id)) - return clock_process_pd_pre_transition_notification( - ctx, event, resp_event); + return clock_process_pd_pre_transition_notification(ctx, event, + resp_event); else return FWK_E_HANDLER; } +#endif /* BUILD_HAS_NOTIFICATION */ static int clock_process_event(const struct fwk_event *event, struct fwk_event *resp_event) @@ -648,12 +657,16 @@ const struct fwk_module module_clock = { .type = FWK_MODULE_TYPE_HAL, .api_count = MOD_CLOCK_API_COUNT, .event_count = CLOCK_EVENT_IDX_COUNT, +#ifdef BUILD_HAS_NOTIFICATION .notification_count = MOD_CLOCK_NOTIFICATION_IDX_COUNT, +#endif .init = clock_init, .element_init = clock_dev_init, .bind = clock_bind, .start = clock_start, .process_bind_request = clock_process_bind_request, +#ifdef BUILD_HAS_NOTIFICATION .process_notification = clock_process_notification, +#endif .process_event = clock_process_event, }; diff --git a/module/log/include/mod_log.h b/module/log/include/mod_log.h index 1df66d0ba6bcea113a2b31d7c098130db4cb5b29..540949aaf841e4af8fd61001bf37a60d8b72f4f1 100644 --- a/module/log/include/mod_log.h +++ b/module/log/include/mod_log.h @@ -146,7 +146,6 @@ struct mod_log_api { * * \%s - string format * * \%u - unsigned 32-bit decimal format * * \%x - 32-bit hexadecimal format - * * \%e - framework error code format * * Numeric formats also accept a padding flag '0\' between the * '\%' and the format specifier where the resulting string number will diff --git a/module/log/src/mod_log.c b/module/log/src/mod_log.c index 7cf510917d0f833ec2498e98b66a498a88fd88d0..cd1d7a217fa96caa0d2182cea4a1a3dd0f6aa4ed 100644 --- a/module/log/src/mod_log.c +++ b/module/log/src/mod_log.c @@ -17,6 +17,11 @@ #include #include +#ifdef BUILD_OPTEE +#include +#include +#endif + static const struct mod_log_config *log_config; static struct mod_log_driver_api *log_driver; @@ -25,28 +30,31 @@ static struct mod_log_driver_api *log_driver; MOD_LOG_GROUP_INFO | \ MOD_LOG_GROUP_WARNING) -static const char * const errstr[] = { - [FWK_SUCCESS] = "SUCCESS", - [-FWK_E_PARAM] = "E_PARAM", - [-FWK_E_ALIGN] = "E_ALIGN", - [-FWK_E_SIZE] = "E_SIZE", - [-FWK_E_HANDLER] = "E_HANDLER", - [-FWK_E_ACCESS] = "E_ACCESS", - [-FWK_E_RANGE] = "E_RANGE", - [-FWK_E_TIMEOUT] = "E_TIMEOUT", - [-FWK_E_NOMEM] = "E_NOMEM", - [-FWK_E_PWRSTATE] = "E_PWRSTATE", - [-FWK_E_SUPPORT] = "E_SUPPORT", - [-FWK_E_DEVICE] = "E_DEVICE", - [-FWK_E_BUSY] = "E_BUSY", - [-FWK_E_OS] = "E_OS", - [-FWK_E_DATA] = "E_DATA", - [-FWK_E_STATE] = "E_STATE", - [-FWK_E_INIT] = "E_INIT", - [-FWK_E_OVERWRITTEN] = "E_OVERWRITTEN", - [-FWK_E_PANIC] = "E_PANIC", -}; - +#ifdef BUILD_OPTEE +static int do_print(enum mod_log_group group, const char *fmt, va_list *args) +{ +#if TRACE_LEVEL > 0 + int level = TRACE_DEBUG; + + switch (group) { + case MOD_LOG_GROUP_ERROR: + level = TRACE_ERROR; + break; + case MOD_LOG_GROUP_INFO: + case MOD_LOG_GROUP_WARNING: + level = TRACE_INFO; + break; + case MOD_LOG_GROUP_DEBUG: + default: + break; + } + + trace_vprintf("[scmi-server]", 0, level, true, fmt, *args); +#endif + + return 0; +} +#else /* BUILD_OPTEE */ static int do_putchar(char c) { int status; @@ -123,7 +131,8 @@ static int print_string(const char *str) return FWK_SUCCESS; } -static int do_print(const char *fmt, va_list *args) +static int do_print(enum mod_log_group group __unused, + const char *fmt, va_list *args) { int status; int bit64; @@ -141,23 +150,6 @@ static int do_print(const char *fmt, va_list *args) next_symbol: /* Check the format specifier */ switch (*fmt) { - case 'e': - num = va_arg(*args, int); - unum = (uint64_t)(-num); - if ((num <= 0) && (unum < FWK_ARRAY_SIZE(errstr))) { - - status = print_string("FWK_"); - if (status != FWK_SUCCESS) - return status; - - status = print_string(errstr[unum]); - } else - status = print_int32(num, 0); - - if (status != FWK_SUCCESS) - return status; - break; - case 'i': /* Fall through to next one */ case 'd': if (bit64) @@ -229,6 +221,7 @@ next_symbol: return FWK_SUCCESS; } +#endif /* BUILD_OPTEE */ static bool is_valid_group(unsigned int group) { @@ -254,7 +247,7 @@ static int do_log(enum mod_log_group group, const char *fmt, ...) va_list args; /* API called too early */ - if (log_driver == NULL) + if ((log_config != NULL) && (log_driver == NULL)) return FWK_E_STATE; status = fwk_module_check_call(FWK_ID_MODULE(FWK_MODULE_IDX_LOG)); @@ -267,9 +260,9 @@ static int do_log(enum mod_log_group group, const char *fmt, ...) if (fmt == NULL) return FWK_E_PARAM; - if (group & log_config->log_groups) { + if ((log_config == NULL) || (group & log_config->log_groups)) { va_start(args, fmt); - status = do_print(fmt, &args); + status = do_print(group, fmt, &args); va_end(args); if (status != FWK_SUCCESS) @@ -279,12 +272,20 @@ static int do_log(enum mod_log_group group, const char *fmt, ...) return FWK_SUCCESS; } +#ifdef BUILD_OPTEE +static int do_flush(void) +{ + console_flush(); + + return FWK_SUCCESS; +} +#else static int do_flush(void) { int status; /* API called too early */ - if (log_driver == NULL) + if ((log_config != NULL) && (log_driver == NULL)) return FWK_E_STATE; status = fwk_module_check_call(FWK_ID_MODULE(FWK_MODULE_IDX_LOG)); @@ -297,6 +298,7 @@ static int do_flush(void) return FWK_SUCCESS; } +#endif static const struct mod_log_api module_api = { .log = do_log, @@ -316,7 +318,7 @@ static int log_init(fwk_id_t module_id, unsigned int element_count, return FWK_E_DATA; /* Check for invalid groups in the 'log_groups' mask */ - if (config->log_groups & ~ALL_GROUPS_MASK) + if (config && (config->log_groups & ~ALL_GROUPS_MASK)) return FWK_E_PARAM; log_config = config; @@ -333,6 +335,10 @@ static int log_bind(fwk_id_t id, unsigned int round) if (round == 1) return FWK_SUCCESS; + /* No expected driver => we're done */ + if (log_config == NULL) + return FWK_SUCCESS; + /* Get the device driver's API */ status = fwk_module_bind(log_config->device_id, log_config->api_id, diff --git a/module/power_domain/src/mod_power_domain.c b/module/power_domain/src/mod_power_domain.c index ce135351a9861f38a76f74c059c28b41d924663c..6f1bb961ee4d68a017f373bffea51fd59bf8f03b 100644 --- a/module/power_domain/src/mod_power_domain.c +++ b/module/power_domain/src/mod_power_domain.c @@ -294,7 +294,7 @@ static const unsigned int mod_pd_cs_level_state_shift[MOD_PD_LEVEL_COUNT] = { * Internal variables */ static struct mod_pd_ctx mod_pd_ctx; -static const char driver_error_msg[] = "[PD] Driver error %e in %s @%d\n"; +static const char driver_error_msg[] = "[PD] Driver error %s (%d) in %s @%d\n"; static const unsigned int tree_pos_level_shift[MOD_PD_LEVEL_COUNT] = { MOD_PD_TREE_POS_LEVEL_0_SHIFT, @@ -711,9 +711,9 @@ static int initiate_power_state_transition(struct pd_ctx *pd) status = pd->driver_api->set_state(pd->driver_id, state); mod_pd_ctx.log_api->log(MOD_LOG_GROUP_DEBUG, - "[PD] %s: %s->%s, %e\n", fwk_module_get_name(pd->id), + "[PD] %s: %s->%s, %s (%d)\n", fwk_module_get_name(pd->id), get_state_name(pd, pd->state_requested_to_driver), - get_state_name(pd, state), status); + get_state_name(pd, state), fwk_status_str(status), status); pd->state_requested_to_driver = state; @@ -1208,8 +1208,8 @@ static void process_system_shutdown_request( if (status != FWK_SUCCESS) mod_pd_ctx.log_api->log(MOD_LOG_GROUP_ERROR, - "[PD] Shutdown of %s returned %e\n", - fwk_module_get_name(pd_id), status); + "[PD] Shutdown of %s returned %s (%d)\n", + fwk_module_get_name(pd_id), fwk_status_str(status), status); else mod_pd_ctx.log_api->log(MOD_LOG_GROUP_DEBUG, "[PD] %s shutdown\n", fwk_module_get_name(pd_id)); @@ -1795,7 +1795,7 @@ static int pd_start(fwk_id_t id) status = pd->driver_api->get_state(pd->driver_id, &state); if (status != FWK_SUCCESS) { mod_pd_ctx.log_api->log(MOD_LOG_GROUP_ERROR, driver_error_msg, - status, __func__, __LINE__); + fwk_status_str(status), status, __func__, __LINE__); } else { pd->requested_state = pd->state_requested_to_driver = state; diff --git a/module/scmi/src/mod_scmi.c b/module/scmi/src/mod_scmi.c index b6e18500fdfb98406e2e0034db58f397602ed28b..11be9fe3312b60a3ab54b0d2251c086d301c5ca0 100644 --- a/module/scmi/src/mod_scmi.c +++ b/module/scmi/src/mod_scmi.c @@ -265,7 +265,8 @@ static void respond(fwk_id_t service_id, const void *payload, size_t size) status = ctx->respond(ctx->transport_id, payload, size); if (status != FWK_SUCCESS) scmi_ctx.log_api->log(MOD_LOG_GROUP_ERROR, - "[SCMI] Failed to send response (%e)\n", status); + "[SCMI] Failed to send response %s (%d)\n", + fwk_status_str(status), status); } static const struct mod_scmi_from_protocol_api mod_scmi_from_protocol_api = { @@ -790,8 +791,9 @@ static int scmi_process_event(const struct fwk_event *event, if (status != FWK_SUCCESS) { scmi_ctx.log_api->log(MOD_LOG_GROUP_ERROR, - "[SCMI] Protocol 0x%x handler error (%e), message_id = 0x%x\n", - ctx->scmi_protocol_id, status, ctx->scmi_message_id); + "[SCMI] Protocol 0x%x handler error %s (%d), message_id = 0x%x\n", + ctx->scmi_protocol_id, fwk_status_str(status), status, + ctx->scmi_message_id); } return FWK_SUCCESS; diff --git a/module/scmi_clock/src/mod_scmi_clock.c b/module/scmi_clock/src/mod_scmi_clock.c index d2560b89798a852caab418a07f364f34bda5c090..1dc4ffed37b3ac66d1e66e6e70680aec37263830 100644 --- a/module/scmi_clock/src/mod_scmi_clock.c +++ b/module/scmi_clock/src/mod_scmi_clock.c @@ -352,7 +352,7 @@ static int create_event_request(fwk_id_t clock_id, .target_id = fwk_module_id_scmi_clock, }; - params = (struct event_request_params *)event.params; + params = (struct event_request_params *)(void *)event.params; switch (request) { case SCMI_CLOCK_REQUEST_GET_STATE: @@ -366,7 +366,7 @@ static int create_event_request(fwk_id_t clock_id, case SCMI_CLOCK_REQUEST_SET_RATE: { struct event_set_rate_request_data *rate_data = - (struct event_set_rate_request_data *)data; + (struct event_set_rate_request_data *)(void *)data; request_data.set_rate_data.rate[0] = rate_data->rate[0]; request_data.set_rate_data.rate[1] = rate_data->rate[1]; @@ -381,7 +381,7 @@ static int create_event_request(fwk_id_t clock_id, case SCMI_CLOCK_REQUEST_SET_STATE: { struct event_set_state_request_data *state_data = - (struct event_set_state_request_data *)data; + (struct event_set_state_request_data *)(void *)data; request_data.set_state_data.state = state_data->state; params->request_data = request_data; @@ -538,7 +538,9 @@ static int scmi_clock_attributes_handler(fwk_id_t service_id, exit: response_size = (return_values.status == SCMI_SUCCESS) ? sizeof(return_values) : sizeof(return_values.status); + scmi_clock_ctx.scmi_api->respond(service_id, &return_values, response_size); + return status; } @@ -991,9 +993,8 @@ static int scmi_clock_init(fwk_id_t module_id, unsigned int element_count, return FWK_E_PANIC; /* Allocate a table of clock operations */ - scmi_clock_ctx.clock_ops = - fwk_mm_calloc((unsigned int)clock_devices, - sizeof(struct mod_clock_api)); + scmi_clock_ctx.clock_ops = fwk_mm_calloc((unsigned int)clock_devices, + sizeof(struct mod_clock_api)); if (scmi_clock_ctx.clock_ops == NULL) return FWK_E_NOMEM; @@ -1043,7 +1044,7 @@ static int process_request_event(const struct fwk_event *event) struct event_set_state_request_data set_state_data; fwk_id_t service_id; - params = (struct event_request_params *)event->params; + params = (struct event_request_params *)(void *)event->params; clock_dev_idx = fwk_id_get_element_idx(params->clock_dev_id); service_id = clock_ops_get_service(clock_dev_idx); @@ -1075,10 +1076,8 @@ static int process_request_event(const struct fwk_event *event) rate = (uint64_t)set_rate_data.rate[0] + (((uint64_t)set_rate_data.rate[1]) << 32); - status = - scmi_clock_ctx.clock_api->set_rate(params->clock_dev_id, - rate, - set_rate_data.round_mode); + status = scmi_clock_ctx.clock_api->set_rate(params->clock_dev_id, rate, + set_rate_data.round_mode); if (status != FWK_PENDING) { /* Request completed */ set_request_respond(service_id, status); @@ -1114,7 +1113,7 @@ static int process_request_event(const struct fwk_event *event) static int process_response_event(const struct fwk_event *event) { struct mod_clock_resp_params *params = - (struct mod_clock_resp_params *)event->params; + (struct mod_clock_resp_params *)(void *)event->params; unsigned int clock_dev_idx; fwk_id_t service_id; enum scmi_clock_request_type request; @@ -1134,7 +1133,7 @@ static int process_response_event(const struct fwk_event *event) clock_state = params->value.state; get_state_respond(event->source_id, service_id, &clock_state, - FWK_SUCCESS); + FWK_SUCCESS); break; diff --git a/module/scmi_power_domain/src/mod_scmi_power_domain.c b/module/scmi_power_domain/src/mod_scmi_power_domain.c index 92f10407bfa56c9f31fabefefc5f1dd1902465c3..441e9677dc443857c90fe9f88ed228e5c2c645d6 100644 --- a/module/scmi_power_domain/src/mod_scmi_power_domain.c +++ b/module/scmi_power_domain/src/mod_scmi_power_domain.c @@ -290,8 +290,8 @@ static int scmi_power_scp_set_core_state(fwk_id_t pd_id, composite_state); if (status != FWK_SUCCESS) { scmi_pd_ctx.log_api->log(MOD_LOG_GROUP_ERROR, - "[SCMI:power] Failed to send core set request (error %e)\n", - status); + "[SCMI:power] Failed to send core set request (error %s (%d))\n", + fwk_status_str(status), status); } return status;