On Mon, 17 Jan 2022 at 19:11, Krzysztof Kozlowski krzysztof.kozlowski@canonical.com wrote:
On 17/01/2022 17:58, Sasha Levin wrote:
From: Sam Protsenko semen.protsenko@linaro.org
[ 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....
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org Signed-off-by: Sylwester Nawrocki s.nawrocki@samsung.com Reviewed-by: Krzysztof Kozlowski krzysztof.kozlowski@canonical.com Link: https://lore.kernel.org/r/20211122144206.23134-1-semen.protsenko@linaro.org Signed-off-by: Sasha Levin sashal@kernel.org
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