From 8941f6ff4b5de5ac866c179e587047784b4787d9 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 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c index d621c3059694..e9e6681211b6 100644 --- a/drivers/clk/qcom/clk-rpmh.c +++ b/drivers/clk/qcom/clk-rpmh.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */ #include @@ -280,6 +280,9 @@ static int clk_rpmh_bcm_send_cmd(struct clk_rpmh *c, bool enable) cmd_state = c->aggr_state; } + if (cmd_state > BCM_TCS_CMD_VOTE_MASK) + cmd_state = BCM_TCS_CMD_VOTE_MASK; + if (c->last_sent_aggr_state == cmd_state) { mutex_unlock(&rpmh_clk_lock); return 0;