clk: qcom: clk-branch: Fix invert halt status bit check for votable clocks
commit 5eac348182d2b5ed1066459abedb7bc6b5466f81 upstream.
BRANCH_HALT_ENABLE and BRANCH_HALT_ENABLE_VOTED flags are used to check
halt status of branch clocks, which have an inverted logic for the halt
bit in CBCR register. However, the current logic in the _check_halt()
method only compares the BRANCH_HALT_ENABLE flags, ignoring the votable
branch clocks.
Update the logic to correctly handle the invert logic for votable clocks
using the BRANCH_HALT_ENABLE_VOTED flags.
Fixes: 9092d1083a
("clk: qcom: branch: Extend the invert logic for branch2 clocks")
Cc: stable@vger.kernel.org
Signed-off-by: Ajit Pandey <quic_ajipan@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20250128-push_fix-v1-1-fafec6747881@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5569a2c557
commit
541c1a5554
@@ -27,7 +27,7 @@ static bool clk_branch_in_hwcg_mode(const struct clk_branch *br)
|
|||||||
|
|
||||||
static bool clk_branch_check_halt(const struct clk_branch *br, bool enabling)
|
static bool clk_branch_check_halt(const struct clk_branch *br, bool enabling)
|
||||||
{
|
{
|
||||||
bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
|
bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
regmap_read(br->clkr.regmap, br->halt_reg, &val);
|
regmap_read(br->clkr.regmap, br->halt_reg, &val);
|
||||||
@@ -43,7 +43,7 @@ static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling)
|
|||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
u32 mask;
|
u32 mask;
|
||||||
bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
|
bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
|
||||||
|
|
||||||
mask = CBCR_NOC_FSM_STATUS;
|
mask = CBCR_NOC_FSM_STATUS;
|
||||||
mask |= CBCR_CLK_OFF;
|
mask |= CBCR_CLK_OFF;
|
||||||
|
Reference in New Issue
Block a user