]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clk: qcom: clk-rpmh: Fix overflow in BCM vote
authorMike Tipton <quic_mdtipton@quicinc.com>
Fri, 9 Aug 2024 05:21:29 +0000 (10:51 +0530)
committerBjorn Andersson <andersson@kernel.org>
Thu, 15 Aug 2024 19:14:54 +0000 (14:14 -0500)
Valid frequencies may result in BCM votes that exceed the max HW value.
Set vote ceiling to BCM_TCS_CMD_VOTE_MASK to ensure the votes aren't
truncated, which can result in lower frequencies than desired.

Fixes: 04053f4d23a4 ("clk: qcom: clk-rpmh: Add IPA clock support")
Cc: stable@vger.kernel.org
Signed-off-by: Mike Tipton <quic_mdtipton@quicinc.com>
Reviewed-by: Taniya Das <quic_tdas@quicinc.com>
Signed-off-by: Imran Shaik <quic_imrashai@quicinc.com>
Link: https://lore.kernel.org/r/20240809-clk-rpmh-bcm-vote-fix-v2-1-240c584b7ef9@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/clk-rpmh.c

index bb82abeed88f3bbc49d08fa192ea3e3ac0ac6286..4acde937114af3d7fdc15f3d125a72d42d0fde21 100644 (file)
@@ -263,6 +263,8 @@ static int clk_rpmh_bcm_send_cmd(struct clk_rpmh *c, bool enable)
                cmd_state = 0;
        }
 
+       cmd_state = min(cmd_state, BCM_TCS_CMD_VOTE_MASK);
+
        if (c->last_sent_aggr_state != cmd_state) {
                cmd.addr = c->res_addr;
                cmd.data = BCM_TCS_CMD(1, enable, 0, cmd_state);