aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicola Mazzucato <nicola.mazzucato@arm.com>2020-03-20 14:25:53 +0000
committerjimqui01 <54316584+jimqui01@users.noreply.github.com>2020-04-03 12:51:34 +0100
commitabc107aca91b92843d77c8ea8c51c45d15d108f7 (patch)
treebc940c032a3f6f4810426e22b3258e5f3003c6cb
parent64726c5fe76e72e503a51f16238ee21a78d2776e (diff)
scmi_clock: Use per-event clock response identifiers
With this patch scmi_clock uses the per-request event identifiers exposed by the clock module. As a consequence, the internal request variable can be removed. Change-Id: I11d851df63869713da04349b1dc255f9cee43334 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
-rw-r--r--module/scmi_clock/src/mod_scmi_clock.c28
1 files changed, 5 insertions, 23 deletions
diff --git a/module/scmi_clock/src/mod_scmi_clock.c b/module/scmi_clock/src/mod_scmi_clock.c
index ed213a2c..1fe91a1e 100644
--- a/module/scmi_clock/src/mod_scmi_clock.c
+++ b/module/scmi_clock/src/mod_scmi_clock.c
@@ -34,9 +34,6 @@ struct clock_operations {
* A 'none' value indicates that there is no pending request.
*/
fwk_id_t service_id;
-
- /* Type of request being requested */
- enum scmi_clock_request_type request;
};
struct scmi_clock_ctx {
@@ -228,18 +225,6 @@ static inline bool clock_ops_is_available(unsigned int clock_dev_idx)
FWK_ID_NONE);
}
-static inline void clock_ops_set_request(unsigned int clock_dev_idx,
- enum scmi_clock_request_type request)
-{
- scmi_clock_ctx.clock_ops[clock_dev_idx].request = request;
-}
-
-static inline enum scmi_clock_request_type clock_ops_get_request(
- unsigned int clock_dev_idx)
-{
- return scmi_clock_ctx.clock_ops[clock_dev_idx].request;
-}
-
/*
* Helper for the 'get_state' response
*/
@@ -407,7 +392,6 @@ static int create_event_request(fwk_id_t clock_id,
return status;
clock_ops_set_busy(clock_dev_idx, service_id);
- clock_ops_set_request(clock_dev_idx, request);
return FWK_SUCCESS;
}
@@ -1110,19 +1094,17 @@ static int process_response_event(const struct fwk_event *event)
(struct mod_clock_resp_params *)event->params;
unsigned int clock_dev_idx;
fwk_id_t service_id;
- enum scmi_clock_request_type request;
enum mod_clock_state clock_state;
uint64_t rate;
clock_dev_idx = fwk_id_get_element_idx(event->source_id);
- request = clock_ops_get_request(clock_dev_idx);
service_id = clock_ops_get_service(clock_dev_idx);
if (params->status != FWK_SUCCESS)
request_response(params->status, service_id);
else {
- switch (request) {
- case SCMI_CLOCK_REQUEST_GET_STATE:
+ switch (fwk_id_get_event_idx(event->id)) {
+ case MOD_CLOCK_EVENT_IDX_GET_STATE_REQUEST:
clock_state = params->value.state;
get_state_respond(event->source_id, service_id, &clock_state,
@@ -1130,15 +1112,15 @@ static int process_response_event(const struct fwk_event *event)
break;
- case SCMI_CLOCK_REQUEST_GET_RATE:
+ case MOD_CLOCK_EVENT_IDX_GET_RATE_REQUEST:
rate = params->value.rate;
get_rate_respond(service_id, &rate, FWK_SUCCESS);
break;
- case SCMI_CLOCK_REQUEST_SET_RATE:
- case SCMI_CLOCK_REQUEST_SET_STATE:
+ case MOD_CLOCK_EVENT_IDX_SET_RATE_REQUEST:
+ case MOD_CLOCK_EVENT_IDX_SET_STATE_REQUEST:
set_request_respond(service_id, FWK_SUCCESS);
break;