diff options
author | Lina Iyer <ilina@codeaurora.org> | 2018-06-20 16:27:06 +0300 |
---|---|---|
committer | Andy Gross <andy.gross@linaro.org> | 2018-07-21 21:33:36 +0300 |
commit | c8790cb6da58d3fa09dfa707aa486fe6769c23bc (patch) | |
tree | 4d0f9977301a4fd5964f07a589c2dc2e1f067f93 /drivers/soc/qcom/rpmh-internal.h | |
parent | 564b5e24ccd4c840a7f84dfd952e5715dd9b3966 (diff) | |
download | linux-c8790cb6da58d3fa09dfa707aa486fe6769c23bc.tar.xz |
drivers: qcom: rpmh: add support for batch RPMH request
Platform drivers need make a lot of resource state requests at the same
time, say, at the start or end of an usecase. It can be quite
inefficient to send each request separately. Instead they can give the
RPMH library a batch of requests to be sent and wait on the whole
transaction to be complete.
rpmh_write_batch() is a blocking call that can be used to send multiple
RPMH command sets. Each RPMH command set is set asynchronously and the
API blocks until all the command sets are complete and receive their
tx_done callbacks.
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
Diffstat (limited to 'drivers/soc/qcom/rpmh-internal.h')
-rw-r--r-- | drivers/soc/qcom/rpmh-internal.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/soc/qcom/rpmh-internal.h b/drivers/soc/qcom/rpmh-internal.h index 6a8a4b7aeead..a7bbbb67991c 100644 --- a/drivers/soc/qcom/rpmh-internal.h +++ b/drivers/soc/qcom/rpmh-internal.h @@ -71,11 +71,13 @@ struct rpmh_request { * @cache: the list of cached requests * @cache_lock: synchronize access to the cache data * @dirty: was the cache updated since flush + * @batch_cache: Cache sleep and wake requests sent as batch */ struct rpmh_ctrlr { struct list_head cache; spinlock_t cache_lock; bool dirty; + struct list_head batch_cache; }; /** |