On Thu, Oct 17, 2024 at 11:03:20AM -0700, Stephen Boyd wrote: > Quoting Dmitry Baryshkov (2024-10-17 09:56:56) > > From: Kalpak Kawadkar <quic_kkawadka@xxxxxxxxxxx> > > > > On some platforms branch clock will be enabled before Linux. > > It is expectated from the clock provider is to poll on the clock > > Unfortunately 'expectated' is not a word. The sentence is also > grammatically incorrect. > > > to ensure it is indeed enabled and not HW gated, thus add > > the BRANCH_HALT_POLL flag. > [...] > > diff --git a/drivers/clk/qcom/clk-branch.c b/drivers/clk/qcom/clk-branch.c > > index 229480c5b075a0e70dc05b1cb15b88d29fd475ce..c4c7bd565cc9a3926e24bb12ed6355ec6ddd19fb 100644 > > --- a/drivers/clk/qcom/clk-branch.c > > +++ b/drivers/clk/qcom/clk-branch.c > > @@ -76,6 +76,7 @@ static int clk_branch_wait(const struct clk_branch *br, bool enabling, > > udelay(10); > > } else if (br->halt_check == BRANCH_HALT_ENABLE || > > br->halt_check == BRANCH_HALT || > > + br->halt_check == BRANCH_HALT_POLL || > > The name is confusing. The halt check is already "polling", i.e. this > isn't a different type of halt check. This is really something like > another branch flag that doesn't have to do with the halt checking and > only to do with skipping writing the enable bit. Maybe we should > introduce another clk_ops for these types of clks instead. SGTM. All clocks with this flag use clk_branch2_aon_ops, so it is easy to switch to a separate clk_ops. > > > (enabling && voted)) { > > int count = 200; > > > > @@ -97,6 +98,10 @@ static int clk_branch_toggle(struct clk_hw *hw, bool en, > > struct clk_branch *br = to_clk_branch(hw); > > int ret; > > > > + if (br->halt_check == BRANCH_HALT_POLL) { > > Remove braces > > > + return clk_branch_wait(br, en, check_halt); > > Remove extra space ^ > > > + } > > + -- With best wishes Dmitry