Messages in this thread | | | Subject | Re: [PATCH v3 2/3] clk: divider: Switch from .round_rate to .determine_rate by default | From | Marek Szyprowski <> | Date | Fri, 2 Jul 2021 14:46:11 +0200 |
| |
Hi
On 02.07.2021 11:19, Martin Blumenstingl wrote: > Hi Stephen, > > On Fri, Jul 2, 2021 at 3:02 AM Stephen Boyd <sboyd@kernel.org> wrote: > [...] >> My guess is that we have drivers copying the clk_ops from the >> divider_ops structure and so they are copying over round_rate but not >> determine_rate. > I just learned something new - thanks for investigating this as well! > > $ git grep "clk_divider_ops\.round_rate" drivers/ > drivers/clk/bcm/clk-bcm2835.c: return clk_divider_ops.round_rate(hw, > rate, parent_rate);
I confirm that this issue appears also on Raspberry Pi 3b+ board. I was about to write a bug report, but you were faster. The funny thing is that is so nondeterministic, that automated bisecting failed to catch it.
> drivers/clk/clk-stm32f4.c: return clk_divider_ops.round_rate(hw, > rate, prate); > drivers/clk/clk-stm32h7.c: return clk_divider_ops.round_rate(hw, > rate, prate); > drivers/clk/clk-stm32mp1.c: req->rate = > clk_divider_ops.round_rate(hw, req->rate, &best_parent_rate); > drivers/clk/imx/clk-divider-gate.c: return > clk_divider_ops.round_rate(hw, rate, prate); > $ git grep "clk_divider_ro_ops\.round_rate" drivers/ > $ > > Changing these over to use clk_divider_ops.determine_rate doesn't seem too hard. > The part that I am not sure about is how to organize the patches. > 1) amend the changes to all relevant drivers (from above) to this patch > 2) multiple patches: > - adding .determine_rate to the default divider ops (but not removing > .round_rate) > - a single patch for each relevant driver (from above) > - removing .round_rate from the default divider ops > > Another approach is to first create clk_divider_determine_rate() (as > done here) and export it. > Then I could have one individual patch for each relevant driver (from > above) to use: > .determine_rate = clk_divider_determine_rate, > Then finally I could remove clk_divider_round_rate() and switch over > the default divider ops to .determine_rate as well. > > Which way do you prefer? > > > Best regards, > Martin > Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland
| |