Message ID | 20230203060924.8257-1-semen.protsenko@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | clk: samsung: Add PM support for ARM64 Exynos chips | expand |
On 03.02.2023 07:09, Sam Protsenko wrote: > In order to prepare for PM enablement in clk-exynos850, common PM code > was extracted from clk-exynos5433 to clk-exynos-arm64. Also some related > cleanups were done prior to that. More specifically: > > - patches #1..5: cleanups > - patch #6: PM code extraction > > During the extraction of the exynos5433_cmu_probe() content to > exynos_arm64_register_cmu_pm() some code was reworked a bit, and also > split into smaller functions. In particular: > > - cmu_data structure now contains a pointer to ctx, which is now > allocated in samsung_clk_init() > - cmu_data structure initialization was moved into separate function > - code for configuring gate clocks was added (optional) > > Which in turn resulted in somehow modified code of probe function: > > Original > -------- > > ... > devm_platform_ioremap_resource(...); > samsung_clk_init(...); > exynos_arm64_cmu_prepare_pm(...); > exynos_arm64_enable_bus_clk(...); > platform_set_drvdata(...); > ... > > Modified > -------- > > ... > platform_set_drvdata(...); > exynos_arm64_cmu_prepare_pm(...); > exynos_arm64_enable_bus_clk(...); > exynos_arm64_init_clocks(...); > devm_platform_ioremap_resource(...); > samsung_clk_init(...); > ... > > That shouldn't really change the logic or mode of operation. It was > preliminary tested on Exynos850 based board, with some extra patches on > top of this series (will be submitted later). > > Marek, could you please test these patches on Exynos5433 platform, and > also review accordingly? I've tested and Exynos5433 still works fine after applying your changes. Btw, you should probably rebase your changes onto arm-soc tree (or recent linux-next), as there are some conflicts between your changes and the s3c24xx removal merged there. Feel free to add: Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> I will try to review the individual patches on Monday though. > Thanks! > > Sam Protsenko (6): > clk: samsung: Don't pass reg_base to samsung_clk_register_pll() > clk: samsung: Remove np argument from samsung_clk_init() > clk: samsung: Set dev in samsung_clk_init() > clk: samsung: Extract clocks registration to common function > clk: samsung: Extract parent clock enabling to common function > clk: samsung: exynos5433: Extract PM support to common ARM64 layer > > drivers/clk/samsung/clk-exynos-arm64.c | 219 +++++++++++++++++++++-- > drivers/clk/samsung/clk-exynos-arm64.h | 3 + > drivers/clk/samsung/clk-exynos4.c | 6 +- > drivers/clk/samsung/clk-exynos4412-isp.c | 3 +- > drivers/clk/samsung/clk-exynos5250.c | 5 +- > drivers/clk/samsung/clk-exynos5420.c | 5 +- > drivers/clk/samsung/clk-exynos5433.c | 157 +--------------- > drivers/clk/samsung/clk-pll.c | 11 +- > drivers/clk/samsung/clk-s3c2410.c | 6 +- > drivers/clk/samsung/clk-s3c2412.c | 5 +- > drivers/clk/samsung/clk-s3c2443.c | 6 +- > drivers/clk/samsung/clk-s3c64xx.c | 4 +- > drivers/clk/samsung/clk-s5pv210.c | 6 +- > drivers/clk/samsung/clk.c | 64 ++++--- > drivers/clk/samsung/clk.h | 10 +- > 15 files changed, 282 insertions(+), 228 deletions(-) > Best regards
On Fri, 3 Feb 2023 at 08:33, Marek Szyprowski <m.szyprowski@samsung.com> wrote: > > On 03.02.2023 07:09, Sam Protsenko wrote: > > In order to prepare for PM enablement in clk-exynos850, common PM code > > was extracted from clk-exynos5433 to clk-exynos-arm64. Also some related > > cleanups were done prior to that. More specifically: > > > > - patches #1..5: cleanups > > - patch #6: PM code extraction > > > > During the extraction of the exynos5433_cmu_probe() content to > > exynos_arm64_register_cmu_pm() some code was reworked a bit, and also > > split into smaller functions. In particular: > > > > - cmu_data structure now contains a pointer to ctx, which is now > > allocated in samsung_clk_init() > > - cmu_data structure initialization was moved into separate function > > - code for configuring gate clocks was added (optional) > > > > Which in turn resulted in somehow modified code of probe function: > > > > Original > > -------- > > > > ... > > devm_platform_ioremap_resource(...); > > samsung_clk_init(...); > > exynos_arm64_cmu_prepare_pm(...); > > exynos_arm64_enable_bus_clk(...); > > platform_set_drvdata(...); > > ... > > > > Modified > > -------- > > > > ... > > platform_set_drvdata(...); > > exynos_arm64_cmu_prepare_pm(...); > > exynos_arm64_enable_bus_clk(...); > > exynos_arm64_init_clocks(...); > > devm_platform_ioremap_resource(...); > > samsung_clk_init(...); > > ... > > > > That shouldn't really change the logic or mode of operation. It was > > preliminary tested on Exynos850 based board, with some extra patches on > > top of this series (will be submitted later). > > > > Marek, could you please test these patches on Exynos5433 platform, and > > also review accordingly? > > I've tested and Exynos5433 still works fine after applying your changes. > Btw, you should probably rebase your changes onto arm-soc tree (or > recent linux-next), as there are some conflicts between your changes and > the s3c24xx removal merged there. > Thanks, Marek! Will send v2 soon, which will be rebased on top of soc/for-next tree. > Feel free to add: > > Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> > I have some (small) functional changes in v2, so I guess it'll nice ideally to re-test those first, if possible. > I will try to review the individual patches on Monday though. > > > > Thanks! > > > > Sam Protsenko (6): > > clk: samsung: Don't pass reg_base to samsung_clk_register_pll() > > clk: samsung: Remove np argument from samsung_clk_init() > > clk: samsung: Set dev in samsung_clk_init() > > clk: samsung: Extract clocks registration to common function > > clk: samsung: Extract parent clock enabling to common function > > clk: samsung: exynos5433: Extract PM support to common ARM64 layer > > > > drivers/clk/samsung/clk-exynos-arm64.c | 219 +++++++++++++++++++++-- > > drivers/clk/samsung/clk-exynos-arm64.h | 3 + > > drivers/clk/samsung/clk-exynos4.c | 6 +- > > drivers/clk/samsung/clk-exynos4412-isp.c | 3 +- > > drivers/clk/samsung/clk-exynos5250.c | 5 +- > > drivers/clk/samsung/clk-exynos5420.c | 5 +- > > drivers/clk/samsung/clk-exynos5433.c | 157 +--------------- > > drivers/clk/samsung/clk-pll.c | 11 +- > > drivers/clk/samsung/clk-s3c2410.c | 6 +- > > drivers/clk/samsung/clk-s3c2412.c | 5 +- > > drivers/clk/samsung/clk-s3c2443.c | 6 +- > > drivers/clk/samsung/clk-s3c64xx.c | 4 +- > > drivers/clk/samsung/clk-s5pv210.c | 6 +- > > drivers/clk/samsung/clk.c | 64 ++++--- > > drivers/clk/samsung/clk.h | 10 +- > > 15 files changed, 282 insertions(+), 228 deletions(-) > > > Best regards > -- > Marek Szyprowski, PhD > Samsung R&D Institute Poland >