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) { }