Fix the redundant call being made to send the sleep and wake requests
immediately to the controller.
As per the patch[1], the sleep and wake request votes are cached in rpmh
controller and sent during rpmh_flush(). These requests needs to be sent
only during entry of deeper system low power modes or suspend.
[1]https://patchwork.kernel.org/patch/10477533/
Signed-off-by: Raju P.L.S.S.S.N <[email protected]>
Reviewed-by: Lina Iyer <[email protected]>
---
drivers/soc/qcom/rpmh.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
index e6e98d4..877fe78 100644
--- a/drivers/soc/qcom/rpmh.c
+++ b/drivers/soc/qcom/rpmh.c
@@ -228,9 +228,8 @@ static int __rpmh_write(const struct device *dev, enum rpmh_state state,
WARN_ON(irqs_disabled());
ret = rpmh_rsc_send_data(ctrlr_to_drv(ctrlr), &rpm_msg->msg);
} else {
- ret = rpmh_rsc_write_ctrl_data(ctrlr_to_drv(ctrlr),
- &rpm_msg->msg);
/* Clean up our call by spoofing tx_done */
+ ret = 0;
rpmh_tx_done(&rpm_msg->msg, ret);
}
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of the Code Aurora Forum, hosted by The Linux Foundation.
On Tue, Oct 23, 2018 at 10:29 AM Raju P.L.S.S.S.N
<[email protected]> wrote:
>
> Fix the redundant call being made to send the sleep and wake requests
> immediately to the controller.
>
> As per the patch[1], the sleep and wake request votes are cached in rpmh
> controller and sent during rpmh_flush(). These requests needs to be sent
> only during entry of deeper system low power modes or suspend.
>
> [1]https://patchwork.kernel.org/patch/10477533/
>
> Signed-off-by: Raju P.L.S.S.S.N <[email protected]>
> Reviewed-by: Lina Iyer <[email protected]>
> ---
> drivers/soc/qcom/rpmh.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
> index e6e98d4..877fe78 100644
> --- a/drivers/soc/qcom/rpmh.c
> +++ b/drivers/soc/qcom/rpmh.c
> @@ -228,9 +228,8 @@ static int __rpmh_write(const struct device *dev, enum rpmh_state state,
> WARN_ON(irqs_disabled());
> ret = rpmh_rsc_send_data(ctrlr_to_drv(ctrlr), &rpm_msg->msg);
> } else {
> - ret = rpmh_rsc_write_ctrl_data(ctrlr_to_drv(ctrlr),
> - &rpm_msg->msg);
> /* Clean up our call by spoofing tx_done */
> + ret = 0;
> rpmh_tx_done(&rpm_msg->msg, ret);
> }
>
> --
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
> of the Code Aurora Forum, hosted by The Linux Foundation.
>
I think this makes sense to me, though the paths through here can be a
little winding.
Reviewed-by: Evan Green <[email protected]>
On Tue, Oct 23 2018 at 11:29 -0600, Raju P.L.S.S.S.N wrote:
>Fix the redundant call being made to send the sleep and wake requests
>immediately to the controller.
>
>As per the patch[1], the sleep and wake request votes are cached in rpmh
>controller and sent during rpmh_flush(). These requests needs to be sent
>only during entry of deeper system low power modes or suspend.
>
>[1]https://patchwork.kernel.org/patch/10477533/
>
nit: [1] https://
>Signed-off-by: Raju P.L.S.S.S.N <[email protected]>
>Reviewed-by: Lina Iyer <[email protected]>
>---
> drivers/soc/qcom/rpmh.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
>diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
>index e6e98d4..877fe78 100644
>--- a/drivers/soc/qcom/rpmh.c
>+++ b/drivers/soc/qcom/rpmh.c
>@@ -228,9 +228,8 @@ static int __rpmh_write(const struct device *dev, enum rpmh_state state,
> WARN_ON(irqs_disabled());
> ret = rpmh_rsc_send_data(ctrlr_to_drv(ctrlr), &rpm_msg->msg);
> } else {
>- ret = rpmh_rsc_write_ctrl_data(ctrlr_to_drv(ctrlr),
>- &rpm_msg->msg);
> /* Clean up our call by spoofing tx_done */
>+ ret = 0;
> rpmh_tx_done(&rpm_msg->msg, ret);
> }
>
>--
>QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
>of the Code Aurora Forum, hosted by The Linux Foundation.
>