On Mon, 17 Jan 2022 at 19:11, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote: > > On 17/01/2022 17:58, Sasha Levin wrote: > > From: Sam Protsenko <semen.protsenko@xxxxxxxxxx> > > > > [ Upstream commit bcda841f9bf2cddcf2f000cba96f2e27f6f2bdbf ] > > > > Some clocks must be registered before init calls. For example MCT clock > > (from CMU_PERI) is needed for MCT timer driver, which is registered > > with TIMER_OF_DECLARE(). By the time we get to core_initcall() used for > > clk-exynos850 platform driver init, it's already too late. Inability to > > get "mct" clock in MCT driver leads to kernel panic, as functions > > registered with *_OF_DECLARE() can't do deferred calls. MCT timer driver > > can't be fixed either, as it's acting as a clock source and it's > > essential to register it in start_kernel() -> time_init(). > > > > Let's register CMU_PERI clocks early, using CLK_OF_DECLARE(). CMU_TOP > > generates clocks needed for CMU_PERI, but it's already registered early. > > > > While at it, let's cleanup the code a bit, by extracting everything > > related to CMU initialization and registration to the separate function. > > > > Similar issue was discussed at [1] and addressed in commit 1f7db7bbf031 > > ("clk: renesas: cpg-mssr: Add early clock support"), as well as in > > drivers/clk/mediatek/clk-mt2712.c. > > > > [1] https://patchwork.kernel.org/project/linux-renesas-soc/patch/20180829132954.64862-2-chris.brandt@xxxxxxxxxxx/ > > > > Signed-off-by: Sam Protsenko <semen.protsenko@xxxxxxxxxx> > > Signed-off-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> > > Link: https://lore.kernel.org/r/20211122144206.23134-1-semen.protsenko@xxxxxxxxxx > > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > > --- > > drivers/clk/samsung/clk-exynos850.c | 70 ++++++++++++++++++++--------- > > 1 file changed, 49 insertions(+), 21 deletions(-) > > > > I propose to skip this one. > > Backporting it to v5.16 does not hurt but also does not bring any > benefits for the upstream kernel users. There is no support for > mentioned Exynos850 in v5.16. > > It could have only meaning for some downstream, out-of-tree kernels > which apply Exynos850 support on top of v5.16, but then they can just > take this patch as well. > Agreed. DTS patches will be merged only in v5.17, hopefully. Till that time the whole clock driver is floating with no users. That's historical thing -- I didn't have "Ack" to submit board dts at the time, and SoC dts couldn't be applied without users (board dts). So I focused on driver work, isolated. Not much sense to backport something without having real users. > > Best regards, > Krzysztof