From 3601181d1ba7238760e7bd22fef09b0afee9663d Mon Sep 17 00:00:00 2001 From: Maulik Shah Date: Fri, 1 May 2020 16:38:11 +0530 Subject: [PATCH] soc: qcom: rpmh: Add rpmh_write_sleep_and_wake() function Let clients call rpmh_write_sleep_and_wake() to immediately write cached sleep and wake data to the TCSes. Change-Id: I04a94ee622a39a0aa0e829f4c40190a870fb2fb1 Signed-off-by: Maulik Shah --- drivers/soc/qcom/rpmh.c | 15 +++++++++++++++ include/soc/qcom/rpmh.h | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c index 166552d0255f..3f44e8526a7f 100644 --- a/drivers/soc/qcom/rpmh.c +++ b/drivers/soc/qcom/rpmh.c @@ -530,6 +530,21 @@ int rpmh_flush(struct rpmh_ctrlr *ctrlr) return ret; } +/** + * rpmh_write_sleep_and_wake: Writes the buffered wake and sleep sets to TCSes + * + * @dev: The device making the request + * + * Return: + * * 0 - Success + * * Error code - Otherwise + */ +int rpmh_write_sleep_and_wake(const struct device *dev) +{ + return rpmh_flush(get_rpmh_ctrlr(dev)); +} +EXPORT_SYMBOL(rpmh_write_sleep_and_wake); + /** * rpmh_invalidate: Invalidate sleep and wake sets in batch_cache * diff --git a/include/soc/qcom/rpmh.h b/include/soc/qcom/rpmh.h index a3fa8af8b35f..dd4fada3b7e2 100644 --- a/include/soc/qcom/rpmh.h +++ b/include/soc/qcom/rpmh.h @@ -22,6 +22,8 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state, int rpmh_mode_solver_set(const struct device *dev, bool enable); +int rpmh_write_sleep_and_wake(const struct device *dev); + void rpmh_invalidate(const struct device *dev); #else @@ -43,6 +45,9 @@ static inline int rpmh_write_batch(const struct device *dev, static int rpmh_mode_solver_set(const struct device *dev, bool enable) { return -ENODEV; } +static int rpmh_write_sleep_and_wake(const struct device *dev) +{ return -ENODEV; } + static inline void rpmh_invalidate(const struct device *dev) { }