[PATCH 1/2] clk: samsung: exynos5260: Move struct samsung_cmu_info to init section
From: cw00.choi@samsung.com (Chanwoo Choi)
Date: 2016-08-23 02:35:32
Also in:
linux-clk, linux-samsung-soc, lkml
Hi Stephen, On 2016? 08? 23? 09:55, Stephen Boyd wrote:
On 08/22, Chanwoo Choi wrote:quoted
This patch moves the all samsung_cmu_info struct to initconst section because they are used only in initconst section. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- drivers/clk/samsung/clk-exynos5260.c | 350 +++++++++++++++++------------------ 1 file changed, 175 insertions(+), 175 deletions(-)diff --git a/drivers/clk/samsung/clk-exynos5260.c b/drivers/clk/samsung/clk-exynos5260.c index a43642c36039..fd1d9bfc151b 100644 --- a/drivers/clk/samsung/clk-exynos5260.c +++ b/drivers/clk/samsung/clk-exynos5260.c@@ -131,21 +131,21 @@ static const struct samsung_gate_clock aud_gate_clks[] __initconst = { EN_IP_AUD, 4, 0, 0), }; +static const struct samsung_cmu_info aud_cmu __initconst = { + .mux_clks = aud_mux_clks, + .nr_mux_clks = ARRAY_SIZE(aud_mux_clks), + .div_clks = aud_div_clks, + .nr_div_clks = ARRAY_SIZE(aud_div_clks), + .gate_clks = aud_gate_clks, + .nr_gate_clks = ARRAY_SIZE(aud_gate_clks), + .nr_clk_ids = AUD_NR_CLK, + .clk_regs = aud_clk_regs, + .nr_clk_regs = ARRAY_SIZE(aud_clk_regs), +}; + static void __init exynos5260_clk_aud_init(struct device_node *np) { - struct samsung_cmu_info cmu = { NULL }; -I presume this was done this way to save some initdata space by only allocating the array that's needed at runtime? I would expect to see some more kernel image bloat from this change but runtime memory usage would stay the same. Is there any real benefit from this patch though?
After this patch, 'struct samsung_cmu_info' size should be added to kernel image and then the size of deleted code should be removed from kernel image. I think that it is not bloating. (struct samsung_cmu_info includes the pointer and integer value.) This patch make the code more simple and improve the readability. And, the samsung_cmu_register_on() requires the 'const' type argument for 'struct samsung_cmu_info'. Regards, Chanwoo Choi