From d3dbbe0b5993c55f3ad0c71e77fdc9e2f409f832 Mon Sep 17 00:00:00 2001 From: Mike Tipton Date: Mon, 1 Feb 2021 15:59:57 -0800 Subject: [PATCH] clk: qcom: clk-rpmh: Fix overflow in BCM vote 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. Change-Id: I6d64815ee93c5c604ec0bea86eca00aca570bb9e Signed-off-by: Mike Tipton --- drivers/clk/qcom/clk-rpmh.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c index 77dabe9e1176..a08a329ebb9b 100644 --- a/drivers/clk/qcom/clk-rpmh.c +++ b/drivers/clk/qcom/clk-rpmh.c @@ -310,6 +310,9 @@ static int clk_rpmh_bcm_send_cmd(struct clk_rpmh *c, bool enable) cmd_state = 0; } + if (cmd_state > BCM_TCS_CMD_VOTE_MASK) + 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);