All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jernej Škrabec" <jernej.skrabec@gmail.com>
To: Chen-Yu Tsai <wens@csie.org>, Samuel Holland <samuel@sholland.org>
Cc: Samuel Holland <samuel@sholland.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev
Subject: Re: [PATCH] clk: sunxi-ng: Deduplicate ccu_clks arrays
Date: Sun, 05 Jun 2022 22:38:14 +0200	[thread overview]
Message-ID: <2102959.irdbgypaU6@jernej-laptop> (raw)
In-Reply-To: <20220531043539.41549-1-samuel@sholland.org>

Dne torek, 31. maj 2022 ob 06:35:39 CEST je Samuel Holland napisal(a):
> The ccu_clks arrays are used to link ccu_common objects to a platform
> device during probe. There is no requirement that the clk_hw inside the
> ccu_common object ever gets registered with the clock framework. So the
> drivers do not need a separate ccu_clks array for each CCU variant.
> A single array per driver, containing the union of the CCU clocks from
> all variants, is sufficient.
> 
> Let's save some space by combining the ccu_clks arrays in each driver.
> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej

> ---
> 
>  drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c |  16 +---
>  drivers/clk/sunxi-ng/ccu-sun8i-de2.c   |  77 +++++------------
>  drivers/clk/sunxi-ng/ccu-sun8i-h3.c    | 113 +------------------------
>  drivers/clk/sunxi-ng/ccu-sun8i-r.c     |  40 ++-------
>  drivers/clk/sunxi-ng/ccu-sun8i-v3s.c   |  80 +----------------
>  5 files changed, 37 insertions(+), 289 deletions(-)
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
> b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c index 29a8c710ae06..001582ea71ba
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
> @@ -138,19 +138,9 @@ static struct ccu_common *sun50i_h6_r_ccu_clks[] = {
>  	&r_apb2_rsb_clk.common,
>  	&r_apb1_ir_clk.common,
>  	&r_apb1_w1_clk.common,
> -	&ir_clk.common,
> -	&w1_clk.common,
> -};
> -
> -static struct ccu_common *sun50i_h616_r_ccu_clks[] = {
> -	&r_apb1_clk.common,
> -	&r_apb2_clk.common,
> -	&r_apb1_twd_clk.common,
> -	&r_apb2_i2c_clk.common,
> -	&r_apb2_rsb_clk.common,
> -	&r_apb1_ir_clk.common,
>  	&r_apb1_rtc_clk.common,
>  	&ir_clk.common,
> +	&w1_clk.common,
>  };
> 
>  static struct clk_hw_onecell_data sun50i_h6_r_hw_clks = {
> @@ -218,8 +208,8 @@ static const struct sunxi_ccu_desc sun50i_h6_r_ccu_desc
> = { };
> 
>  static const struct sunxi_ccu_desc sun50i_h616_r_ccu_desc = {
> -	.ccu_clks	= sun50i_h616_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_h616_r_ccu_clks),
> +	.ccu_clks	= sun50i_h6_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun50i_h6_r_ccu_clks),
> 
>  	.hw_clks	= &sun50i_h616_r_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c index e7e3ddf4a227..2f6f02f00be2
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
> @@ -53,65 +53,26 @@ static SUNXI_CCU_M(wb_div_a83_clk, "wb-div", "pll-de",
> 0x0c, 8, 4, static SUNXI_CCU_M(rot_div_a83_clk, "rot-div", "pll-de", 0x0c,
> 0x0c, 4, CLK_SET_RATE_PARENT);
> 
> -static struct ccu_common *sun8i_a83t_de2_clks[] = {
> +static struct ccu_common *sun8i_de2_ccu_clks[] = {
>  	&mixer0_clk.common,
>  	&mixer1_clk.common,
>  	&wb_clk.common,
> -
> -	&bus_mixer0_clk.common,
> -	&bus_mixer1_clk.common,
> -	&bus_wb_clk.common,
> -
> -	&mixer0_div_a83_clk.common,
> -	&mixer1_div_a83_clk.common,
> -	&wb_div_a83_clk.common,
> -
> -	&bus_rot_clk.common,
>  	&rot_clk.common,
> -	&rot_div_a83_clk.common,
> -};
> -
> -static struct ccu_common *sun8i_h3_de2_clks[] = {
> -	&mixer0_clk.common,
> -	&mixer1_clk.common,
> -	&wb_clk.common,
> -
> -	&bus_mixer0_clk.common,
> -	&bus_mixer1_clk.common,
> -	&bus_wb_clk.common,
> -
> -	&mixer0_div_clk.common,
> -	&mixer1_div_clk.common,
> -	&wb_div_clk.common,
> -};
> -
> -static struct ccu_common *sun8i_v3s_de2_clks[] = {
> -	&mixer0_clk.common,
> -	&wb_clk.common,
> -
> -	&bus_mixer0_clk.common,
> -	&bus_wb_clk.common,
> -
> -	&mixer0_div_clk.common,
> -	&wb_div_clk.common,
> -};
> -
> -static struct ccu_common *sun50i_a64_de2_clks[] = {
> -	&mixer0_clk.common,
> -	&mixer1_clk.common,
> -	&wb_clk.common,
> 
>  	&bus_mixer0_clk.common,
>  	&bus_mixer1_clk.common,
>  	&bus_wb_clk.common,
> +	&bus_rot_clk.common,
> 
>  	&mixer0_div_clk.common,
>  	&mixer1_div_clk.common,
>  	&wb_div_clk.common,
> -
> -	&bus_rot_clk.common,
> -	&rot_clk.common,
>  	&rot_div_clk.common,
> +
> +	&mixer0_div_a83_clk.common,
> +	&mixer1_div_a83_clk.common,
> +	&wb_div_a83_clk.common,
> +	&rot_div_a83_clk.common,
>  };
> 
>  static struct clk_hw_onecell_data sun8i_a83t_de2_hw_clks = {
> @@ -219,8 +180,8 @@ static struct ccu_reset_map sun50i_h5_de2_resets[] = {
>  };
> 
>  static const struct sunxi_ccu_desc sun8i_a83t_de2_clk_desc = {
> -	.ccu_clks	= sun8i_a83t_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_a83t_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_a83t_de2_hw_clks,
> 
> @@ -229,8 +190,8 @@ static const struct sunxi_ccu_desc
> sun8i_a83t_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun8i_h3_de2_clk_desc = {
> -	.ccu_clks	= sun8i_h3_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_h3_de2_hw_clks,
> 
> @@ -239,8 +200,8 @@ static const struct sunxi_ccu_desc sun8i_h3_de2_clk_desc
> = { };
> 
>  static const struct sunxi_ccu_desc sun8i_r40_de2_clk_desc = {
> -	.ccu_clks	= sun50i_a64_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_a64_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun50i_a64_de2_hw_clks,
> 
> @@ -249,8 +210,8 @@ static const struct sunxi_ccu_desc
> sun8i_r40_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun8i_v3s_de2_clk_desc = {
> -	.ccu_clks	= sun8i_v3s_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_v3s_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_v3s_de2_hw_clks,
> 
> @@ -259,8 +220,8 @@ static const struct sunxi_ccu_desc
> sun8i_v3s_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun50i_a64_de2_clk_desc = {
> -	.ccu_clks	= sun50i_a64_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_a64_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun50i_a64_de2_hw_clks,
> 
> @@ -269,8 +230,8 @@ static const struct sunxi_ccu_desc
> sun50i_a64_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun50i_h5_de2_clk_desc = {
> -	.ccu_clks	= sun8i_h3_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_h3_de2_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c index e058cf691aea..d3fcb983c17c
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
> @@ -562,6 +562,7 @@ static struct ccu_common *sun8i_h3_ccu_clks[] = {
>  	&bus_uart2_clk.common,
>  	&bus_uart3_clk.common,
>  	&bus_scr0_clk.common,
> +	&bus_scr1_clk.common,
>  	&bus_ephy_clk.common,
>  	&bus_dbg_clk.common,
>  	&ths_clk.common,
> @@ -612,114 +613,6 @@ static struct ccu_common *sun8i_h3_ccu_clks[] = {
>  	&gpu_clk.common,
>  };
> 
> -static struct ccu_common *sun50i_h5_ccu_clks[] = {
> -	&pll_cpux_clk.common,
> -	&pll_audio_base_clk.common,
> -	&pll_video_clk.common,
> -	&pll_ve_clk.common,
> -	&pll_ddr_clk.common,
> -	&pll_periph0_clk.common,
> -	&pll_gpu_clk.common,
> -	&pll_periph1_clk.common,
> -	&pll_de_clk.common,
> -	&cpux_clk.common,
> -	&axi_clk.common,
> -	&ahb1_clk.common,
> -	&apb1_clk.common,
> -	&apb2_clk.common,
> -	&ahb2_clk.common,
> -	&bus_ce_clk.common,
> -	&bus_dma_clk.common,
> -	&bus_mmc0_clk.common,
> -	&bus_mmc1_clk.common,
> -	&bus_mmc2_clk.common,
> -	&bus_nand_clk.common,
> -	&bus_dram_clk.common,
> -	&bus_emac_clk.common,
> -	&bus_ts_clk.common,
> -	&bus_hstimer_clk.common,
> -	&bus_spi0_clk.common,
> -	&bus_spi1_clk.common,
> -	&bus_otg_clk.common,
> -	&bus_ehci0_clk.common,
> -	&bus_ehci1_clk.common,
> -	&bus_ehci2_clk.common,
> -	&bus_ehci3_clk.common,
> -	&bus_ohci0_clk.common,
> -	&bus_ohci1_clk.common,
> -	&bus_ohci2_clk.common,
> -	&bus_ohci3_clk.common,
> -	&bus_ve_clk.common,
> -	&bus_tcon0_clk.common,
> -	&bus_tcon1_clk.common,
> -	&bus_deinterlace_clk.common,
> -	&bus_csi_clk.common,
> -	&bus_tve_clk.common,
> -	&bus_hdmi_clk.common,
> -	&bus_de_clk.common,
> -	&bus_gpu_clk.common,
> -	&bus_msgbox_clk.common,
> -	&bus_spinlock_clk.common,
> -	&bus_codec_clk.common,
> -	&bus_spdif_clk.common,
> -	&bus_pio_clk.common,
> -	&bus_ths_clk.common,
> -	&bus_i2s0_clk.common,
> -	&bus_i2s1_clk.common,
> -	&bus_i2s2_clk.common,
> -	&bus_i2c0_clk.common,
> -	&bus_i2c1_clk.common,
> -	&bus_i2c2_clk.common,
> -	&bus_uart0_clk.common,
> -	&bus_uart1_clk.common,
> -	&bus_uart2_clk.common,
> -	&bus_uart3_clk.common,
> -	&bus_scr0_clk.common,
> -	&bus_scr1_clk.common,
> -	&bus_ephy_clk.common,
> -	&bus_dbg_clk.common,
> -	&ths_clk.common,
> -	&nand_clk.common,
> -	&mmc0_clk.common,
> -	&mmc1_clk.common,
> -	&mmc2_clk.common,
> -	&ts_clk.common,
> -	&ce_clk.common,
> -	&spi0_clk.common,
> -	&spi1_clk.common,
> -	&i2s0_clk.common,
> -	&i2s1_clk.common,
> -	&i2s2_clk.common,
> -	&spdif_clk.common,
> -	&usb_phy0_clk.common,
> -	&usb_phy1_clk.common,
> -	&usb_phy2_clk.common,
> -	&usb_phy3_clk.common,
> -	&usb_ohci0_clk.common,
> -	&usb_ohci1_clk.common,
> -	&usb_ohci2_clk.common,
> -	&usb_ohci3_clk.common,
> -	&dram_clk.common,
> -	&dram_ve_clk.common,
> -	&dram_csi_clk.common,
> -	&dram_deinterlace_clk.common,
> -	&dram_ts_clk.common,
> -	&de_clk.common,
> -	&tcon_clk.common,
> -	&tve_clk.common,
> -	&deinterlace_clk.common,
> -	&csi_misc_clk.common,
> -	&csi_sclk_clk.common,
> -	&csi_mclk_clk.common,
> -	&ve_clk.common,
> -	&ac_dig_clk.common,
> -	&avs_clk.common,
> -	&hdmi_clk.common,
> -	&hdmi_ddc_clk.common,
> -	&mbus_clk.common,
> -	&gpu_clk.common,
> -};
> -
>  static const struct clk_hw *clk_parent_pll_audio[] = {
>  	&pll_audio_base_clk.common.hw
>  };
> @@ -1116,8 +1009,8 @@ static const struct sunxi_ccu_desc sun8i_h3_ccu_desc =
> { };
> 
>  static const struct sunxi_ccu_desc sun50i_h5_ccu_desc = {
> -	.ccu_clks	= sun50i_h5_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_h5_ccu_clks),
> +	.ccu_clks	= sun8i_h3_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_ccu_clks),
> 
>  	.hw_clks	= &sun50i_h5_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-r.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-r.c index 5b7fab832a52..4221649b311f
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-r.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-r.c
> @@ -114,32 +114,7 @@ static struct ccu_mp a83t_ir_clk = {
>  	},
>  };
> 
> -static struct ccu_common *sun8i_a83t_r_ccu_clks[] = {
> -	&ar100_clk.common,
> -	&apb0_clk.common,
> -	&apb0_pio_clk.common,
> -	&apb0_ir_clk.common,
> -	&apb0_timer_clk.common,
> -	&apb0_rsb_clk.common,
> -	&apb0_uart_clk.common,
> -	&apb0_i2c_clk.common,
> -	&apb0_twd_clk.common,
> -	&a83t_ir_clk.common,
> -};
> -
> -static struct ccu_common *sun8i_h3_r_ccu_clks[] = {
> -	&ar100_clk.common,
> -	&apb0_clk.common,
> -	&apb0_pio_clk.common,
> -	&apb0_ir_clk.common,
> -	&apb0_timer_clk.common,
> -	&apb0_uart_clk.common,
> -	&apb0_i2c_clk.common,
> -	&apb0_twd_clk.common,
> -	&ir_clk.common,
> -};
> -
> -static struct ccu_common *sun50i_a64_r_ccu_clks[] = {
> +static struct ccu_common *sun8i_r_ccu_clks[] = {
>  	&ar100_clk.common,
>  	&apb0_clk.common,
>  	&apb0_pio_clk.common,
> @@ -150,6 +125,7 @@ static struct ccu_common *sun50i_a64_r_ccu_clks[] = {
>  	&apb0_i2c_clk.common,
>  	&apb0_twd_clk.common,
>  	&ir_clk.common,
> +	&a83t_ir_clk.common,
>  };
> 
>  static struct clk_hw_onecell_data sun8i_a83t_r_hw_clks = {
> @@ -226,8 +202,8 @@ static struct ccu_reset_map sun50i_a64_r_ccu_resets[] =
> { };
> 
>  static const struct sunxi_ccu_desc sun8i_a83t_r_ccu_desc = {
> -	.ccu_clks	= sun8i_a83t_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_a83t_r_ccu_clks),
> +	.ccu_clks	= sun8i_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_r_ccu_clks),
> 
>  	.hw_clks	= &sun8i_a83t_r_hw_clks,
> 
> @@ -236,8 +212,8 @@ static const struct sunxi_ccu_desc sun8i_a83t_r_ccu_desc
> = { };
> 
>  static const struct sunxi_ccu_desc sun8i_h3_r_ccu_desc = {
> -	.ccu_clks	= sun8i_h3_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_r_ccu_clks),
> +	.ccu_clks	= sun8i_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_r_ccu_clks),
> 
>  	.hw_clks	= &sun8i_h3_r_hw_clks,
> 
> @@ -246,8 +222,8 @@ static const struct sunxi_ccu_desc sun8i_h3_r_ccu_desc =
> { };
> 
>  static const struct sunxi_ccu_desc sun50i_a64_r_ccu_desc = {
> -	.ccu_clks	= sun50i_a64_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_a64_r_ccu_clks),
> +	.ccu_clks	= sun8i_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_r_ccu_clks),
> 
>  	.hw_clks	= &sun50i_a64_r_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c index 87f87d6ea3ad..fbb3529f0d3e
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
> @@ -421,6 +421,7 @@ static struct ccu_common *sun8i_v3s_ccu_clks[] = {
>  	&bus_de_clk.common,
>  	&bus_codec_clk.common,
>  	&bus_pio_clk.common,
> +	&bus_i2s0_clk.common,
>  	&bus_i2c0_clk.common,
>  	&bus_i2c1_clk.common,
>  	&bus_uart0_clk.common,
> @@ -439,6 +440,7 @@ static struct ccu_common *sun8i_v3s_ccu_clks[] = {
>  	&mmc2_output_clk.common,
>  	&ce_clk.common,
>  	&spi0_clk.common,
> +	&i2s0_clk.common,
>  	&usb_phy0_clk.common,
>  	&usb_ohci0_clk.common,
>  	&dram_clk.common,
> @@ -463,80 +465,6 @@ static const struct clk_hw *clk_parent_pll_audio[] = {
>  	&pll_audio_base_clk.common.hw
>  };
> 
> -static struct ccu_common *sun8i_v3_ccu_clks[] = {
> -	&pll_cpu_clk.common,
> -	&pll_audio_base_clk.common,
> -	&pll_video_clk.common,
> -	&pll_ve_clk.common,
> -	&pll_ddr0_clk.common,
> -	&pll_periph0_clk.common,
> -	&pll_isp_clk.common,
> -	&pll_periph1_clk.common,
> -	&pll_ddr1_clk.common,
> -	&cpu_clk.common,
> -	&axi_clk.common,
> -	&ahb1_clk.common,
> -	&apb1_clk.common,
> -	&apb2_clk.common,
> -	&ahb2_clk.common,
> -	&bus_ce_clk.common,
> -	&bus_dma_clk.common,
> -	&bus_mmc0_clk.common,
> -	&bus_mmc1_clk.common,
> -	&bus_mmc2_clk.common,
> -	&bus_dram_clk.common,
> -	&bus_emac_clk.common,
> -	&bus_hstimer_clk.common,
> -	&bus_spi0_clk.common,
> -	&bus_otg_clk.common,
> -	&bus_ehci0_clk.common,
> -	&bus_ohci0_clk.common,
> -	&bus_ve_clk.common,
> -	&bus_tcon0_clk.common,
> -	&bus_csi_clk.common,
> -	&bus_de_clk.common,
> -	&bus_codec_clk.common,
> -	&bus_pio_clk.common,
> -	&bus_i2s0_clk.common,
> -	&bus_i2c0_clk.common,
> -	&bus_i2c1_clk.common,
> -	&bus_uart0_clk.common,
> -	&bus_uart1_clk.common,
> -	&bus_uart2_clk.common,
> -	&bus_ephy_clk.common,
> -	&bus_dbg_clk.common,
> -	&mmc0_clk.common,
> -	&mmc0_sample_clk.common,
> -	&mmc0_output_clk.common,
> -	&mmc1_clk.common,
> -	&mmc1_sample_clk.common,
> -	&mmc1_output_clk.common,
> -	&mmc2_clk.common,
> -	&mmc2_sample_clk.common,
> -	&mmc2_output_clk.common,
> -	&ce_clk.common,
> -	&spi0_clk.common,
> -	&i2s0_clk.common,
> -	&usb_phy0_clk.common,
> -	&usb_ohci0_clk.common,
> -	&dram_clk.common,
> -	&dram_ve_clk.common,
> -	&dram_csi_clk.common,
> -	&dram_ohci_clk.common,
> -	&dram_ehci_clk.common,
> -	&de_clk.common,
> -	&tcon_clk.common,
> -	&csi_misc_clk.common,
> -	&csi0_mclk_clk.common,
> -	&csi1_sclk_clk.common,
> -	&csi1_mclk_clk.common,
> -	&ve_clk.common,
> -	&ac_dig_clk.common,
> -	&avs_clk.common,
> -	&mbus_clk.common,
> -	&mipi_csi_clk.common,
> -};
> -
>  /* We hardcode the divider to 1 for SDM support */
>  static CLK_FIXED_FACTOR_HWS(pll_audio_clk, "pll-audio",
>  			    clk_parent_pll_audio,
> @@ -798,8 +726,8 @@ static const struct sunxi_ccu_desc sun8i_v3s_ccu_desc =
> { };
> 
>  static const struct sunxi_ccu_desc sun8i_v3_ccu_desc = {
> -	.ccu_clks	= sun8i_v3_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_v3_ccu_clks),
> +	.ccu_clks	= sun8i_v3s_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_v3s_ccu_clks),
> 
>  	.hw_clks	= &sun8i_v3_hw_clks,





WARNING: multiple messages have this Message-ID (diff)
From: "Jernej Škrabec" <jernej.skrabec@gmail.com>
To: Chen-Yu Tsai <wens@csie.org>, Samuel Holland <samuel@sholland.org>
Cc: Samuel Holland <samuel@sholland.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev
Subject: Re: [PATCH] clk: sunxi-ng: Deduplicate ccu_clks arrays
Date: Sun, 05 Jun 2022 22:38:14 +0200	[thread overview]
Message-ID: <2102959.irdbgypaU6@jernej-laptop> (raw)
In-Reply-To: <20220531043539.41549-1-samuel@sholland.org>

Dne torek, 31. maj 2022 ob 06:35:39 CEST je Samuel Holland napisal(a):
> The ccu_clks arrays are used to link ccu_common objects to a platform
> device during probe. There is no requirement that the clk_hw inside the
> ccu_common object ever gets registered with the clock framework. So the
> drivers do not need a separate ccu_clks array for each CCU variant.
> A single array per driver, containing the union of the CCU clocks from
> all variants, is sufficient.
> 
> Let's save some space by combining the ccu_clks arrays in each driver.
> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej

> ---
> 
>  drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c |  16 +---
>  drivers/clk/sunxi-ng/ccu-sun8i-de2.c   |  77 +++++------------
>  drivers/clk/sunxi-ng/ccu-sun8i-h3.c    | 113 +------------------------
>  drivers/clk/sunxi-ng/ccu-sun8i-r.c     |  40 ++-------
>  drivers/clk/sunxi-ng/ccu-sun8i-v3s.c   |  80 +----------------
>  5 files changed, 37 insertions(+), 289 deletions(-)
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
> b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c index 29a8c710ae06..001582ea71ba
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
> @@ -138,19 +138,9 @@ static struct ccu_common *sun50i_h6_r_ccu_clks[] = {
>  	&r_apb2_rsb_clk.common,
>  	&r_apb1_ir_clk.common,
>  	&r_apb1_w1_clk.common,
> -	&ir_clk.common,
> -	&w1_clk.common,
> -};
> -
> -static struct ccu_common *sun50i_h616_r_ccu_clks[] = {
> -	&r_apb1_clk.common,
> -	&r_apb2_clk.common,
> -	&r_apb1_twd_clk.common,
> -	&r_apb2_i2c_clk.common,
> -	&r_apb2_rsb_clk.common,
> -	&r_apb1_ir_clk.common,
>  	&r_apb1_rtc_clk.common,
>  	&ir_clk.common,
> +	&w1_clk.common,
>  };
> 
>  static struct clk_hw_onecell_data sun50i_h6_r_hw_clks = {
> @@ -218,8 +208,8 @@ static const struct sunxi_ccu_desc sun50i_h6_r_ccu_desc
> = { };
> 
>  static const struct sunxi_ccu_desc sun50i_h616_r_ccu_desc = {
> -	.ccu_clks	= sun50i_h616_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_h616_r_ccu_clks),
> +	.ccu_clks	= sun50i_h6_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun50i_h6_r_ccu_clks),
> 
>  	.hw_clks	= &sun50i_h616_r_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c index e7e3ddf4a227..2f6f02f00be2
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c
> @@ -53,65 +53,26 @@ static SUNXI_CCU_M(wb_div_a83_clk, "wb-div", "pll-de",
> 0x0c, 8, 4, static SUNXI_CCU_M(rot_div_a83_clk, "rot-div", "pll-de", 0x0c,
> 0x0c, 4, CLK_SET_RATE_PARENT);
> 
> -static struct ccu_common *sun8i_a83t_de2_clks[] = {
> +static struct ccu_common *sun8i_de2_ccu_clks[] = {
>  	&mixer0_clk.common,
>  	&mixer1_clk.common,
>  	&wb_clk.common,
> -
> -	&bus_mixer0_clk.common,
> -	&bus_mixer1_clk.common,
> -	&bus_wb_clk.common,
> -
> -	&mixer0_div_a83_clk.common,
> -	&mixer1_div_a83_clk.common,
> -	&wb_div_a83_clk.common,
> -
> -	&bus_rot_clk.common,
>  	&rot_clk.common,
> -	&rot_div_a83_clk.common,
> -};
> -
> -static struct ccu_common *sun8i_h3_de2_clks[] = {
> -	&mixer0_clk.common,
> -	&mixer1_clk.common,
> -	&wb_clk.common,
> -
> -	&bus_mixer0_clk.common,
> -	&bus_mixer1_clk.common,
> -	&bus_wb_clk.common,
> -
> -	&mixer0_div_clk.common,
> -	&mixer1_div_clk.common,
> -	&wb_div_clk.common,
> -};
> -
> -static struct ccu_common *sun8i_v3s_de2_clks[] = {
> -	&mixer0_clk.common,
> -	&wb_clk.common,
> -
> -	&bus_mixer0_clk.common,
> -	&bus_wb_clk.common,
> -
> -	&mixer0_div_clk.common,
> -	&wb_div_clk.common,
> -};
> -
> -static struct ccu_common *sun50i_a64_de2_clks[] = {
> -	&mixer0_clk.common,
> -	&mixer1_clk.common,
> -	&wb_clk.common,
> 
>  	&bus_mixer0_clk.common,
>  	&bus_mixer1_clk.common,
>  	&bus_wb_clk.common,
> +	&bus_rot_clk.common,
> 
>  	&mixer0_div_clk.common,
>  	&mixer1_div_clk.common,
>  	&wb_div_clk.common,
> -
> -	&bus_rot_clk.common,
> -	&rot_clk.common,
>  	&rot_div_clk.common,
> +
> +	&mixer0_div_a83_clk.common,
> +	&mixer1_div_a83_clk.common,
> +	&wb_div_a83_clk.common,
> +	&rot_div_a83_clk.common,
>  };
> 
>  static struct clk_hw_onecell_data sun8i_a83t_de2_hw_clks = {
> @@ -219,8 +180,8 @@ static struct ccu_reset_map sun50i_h5_de2_resets[] = {
>  };
> 
>  static const struct sunxi_ccu_desc sun8i_a83t_de2_clk_desc = {
> -	.ccu_clks	= sun8i_a83t_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_a83t_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_a83t_de2_hw_clks,
> 
> @@ -229,8 +190,8 @@ static const struct sunxi_ccu_desc
> sun8i_a83t_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun8i_h3_de2_clk_desc = {
> -	.ccu_clks	= sun8i_h3_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_h3_de2_hw_clks,
> 
> @@ -239,8 +200,8 @@ static const struct sunxi_ccu_desc sun8i_h3_de2_clk_desc
> = { };
> 
>  static const struct sunxi_ccu_desc sun8i_r40_de2_clk_desc = {
> -	.ccu_clks	= sun50i_a64_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_a64_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun50i_a64_de2_hw_clks,
> 
> @@ -249,8 +210,8 @@ static const struct sunxi_ccu_desc
> sun8i_r40_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun8i_v3s_de2_clk_desc = {
> -	.ccu_clks	= sun8i_v3s_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_v3s_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_v3s_de2_hw_clks,
> 
> @@ -259,8 +220,8 @@ static const struct sunxi_ccu_desc
> sun8i_v3s_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun50i_a64_de2_clk_desc = {
> -	.ccu_clks	= sun50i_a64_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_a64_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun50i_a64_de2_hw_clks,
> 
> @@ -269,8 +230,8 @@ static const struct sunxi_ccu_desc
> sun50i_a64_de2_clk_desc = { };
> 
>  static const struct sunxi_ccu_desc sun50i_h5_de2_clk_desc = {
> -	.ccu_clks	= sun8i_h3_de2_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_de2_clks),
> +	.ccu_clks	= sun8i_de2_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_de2_ccu_clks),
> 
>  	.hw_clks	= &sun8i_h3_de2_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c index e058cf691aea..d3fcb983c17c
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
> @@ -562,6 +562,7 @@ static struct ccu_common *sun8i_h3_ccu_clks[] = {
>  	&bus_uart2_clk.common,
>  	&bus_uart3_clk.common,
>  	&bus_scr0_clk.common,
> +	&bus_scr1_clk.common,
>  	&bus_ephy_clk.common,
>  	&bus_dbg_clk.common,
>  	&ths_clk.common,
> @@ -612,114 +613,6 @@ static struct ccu_common *sun8i_h3_ccu_clks[] = {
>  	&gpu_clk.common,
>  };
> 
> -static struct ccu_common *sun50i_h5_ccu_clks[] = {
> -	&pll_cpux_clk.common,
> -	&pll_audio_base_clk.common,
> -	&pll_video_clk.common,
> -	&pll_ve_clk.common,
> -	&pll_ddr_clk.common,
> -	&pll_periph0_clk.common,
> -	&pll_gpu_clk.common,
> -	&pll_periph1_clk.common,
> -	&pll_de_clk.common,
> -	&cpux_clk.common,
> -	&axi_clk.common,
> -	&ahb1_clk.common,
> -	&apb1_clk.common,
> -	&apb2_clk.common,
> -	&ahb2_clk.common,
> -	&bus_ce_clk.common,
> -	&bus_dma_clk.common,
> -	&bus_mmc0_clk.common,
> -	&bus_mmc1_clk.common,
> -	&bus_mmc2_clk.common,
> -	&bus_nand_clk.common,
> -	&bus_dram_clk.common,
> -	&bus_emac_clk.common,
> -	&bus_ts_clk.common,
> -	&bus_hstimer_clk.common,
> -	&bus_spi0_clk.common,
> -	&bus_spi1_clk.common,
> -	&bus_otg_clk.common,
> -	&bus_ehci0_clk.common,
> -	&bus_ehci1_clk.common,
> -	&bus_ehci2_clk.common,
> -	&bus_ehci3_clk.common,
> -	&bus_ohci0_clk.common,
> -	&bus_ohci1_clk.common,
> -	&bus_ohci2_clk.common,
> -	&bus_ohci3_clk.common,
> -	&bus_ve_clk.common,
> -	&bus_tcon0_clk.common,
> -	&bus_tcon1_clk.common,
> -	&bus_deinterlace_clk.common,
> -	&bus_csi_clk.common,
> -	&bus_tve_clk.common,
> -	&bus_hdmi_clk.common,
> -	&bus_de_clk.common,
> -	&bus_gpu_clk.common,
> -	&bus_msgbox_clk.common,
> -	&bus_spinlock_clk.common,
> -	&bus_codec_clk.common,
> -	&bus_spdif_clk.common,
> -	&bus_pio_clk.common,
> -	&bus_ths_clk.common,
> -	&bus_i2s0_clk.common,
> -	&bus_i2s1_clk.common,
> -	&bus_i2s2_clk.common,
> -	&bus_i2c0_clk.common,
> -	&bus_i2c1_clk.common,
> -	&bus_i2c2_clk.common,
> -	&bus_uart0_clk.common,
> -	&bus_uart1_clk.common,
> -	&bus_uart2_clk.common,
> -	&bus_uart3_clk.common,
> -	&bus_scr0_clk.common,
> -	&bus_scr1_clk.common,
> -	&bus_ephy_clk.common,
> -	&bus_dbg_clk.common,
> -	&ths_clk.common,
> -	&nand_clk.common,
> -	&mmc0_clk.common,
> -	&mmc1_clk.common,
> -	&mmc2_clk.common,
> -	&ts_clk.common,
> -	&ce_clk.common,
> -	&spi0_clk.common,
> -	&spi1_clk.common,
> -	&i2s0_clk.common,
> -	&i2s1_clk.common,
> -	&i2s2_clk.common,
> -	&spdif_clk.common,
> -	&usb_phy0_clk.common,
> -	&usb_phy1_clk.common,
> -	&usb_phy2_clk.common,
> -	&usb_phy3_clk.common,
> -	&usb_ohci0_clk.common,
> -	&usb_ohci1_clk.common,
> -	&usb_ohci2_clk.common,
> -	&usb_ohci3_clk.common,
> -	&dram_clk.common,
> -	&dram_ve_clk.common,
> -	&dram_csi_clk.common,
> -	&dram_deinterlace_clk.common,
> -	&dram_ts_clk.common,
> -	&de_clk.common,
> -	&tcon_clk.common,
> -	&tve_clk.common,
> -	&deinterlace_clk.common,
> -	&csi_misc_clk.common,
> -	&csi_sclk_clk.common,
> -	&csi_mclk_clk.common,
> -	&ve_clk.common,
> -	&ac_dig_clk.common,
> -	&avs_clk.common,
> -	&hdmi_clk.common,
> -	&hdmi_ddc_clk.common,
> -	&mbus_clk.common,
> -	&gpu_clk.common,
> -};
> -
>  static const struct clk_hw *clk_parent_pll_audio[] = {
>  	&pll_audio_base_clk.common.hw
>  };
> @@ -1116,8 +1009,8 @@ static const struct sunxi_ccu_desc sun8i_h3_ccu_desc =
> { };
> 
>  static const struct sunxi_ccu_desc sun50i_h5_ccu_desc = {
> -	.ccu_clks	= sun50i_h5_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_h5_ccu_clks),
> +	.ccu_clks	= sun8i_h3_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_ccu_clks),
> 
>  	.hw_clks	= &sun50i_h5_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-r.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-r.c index 5b7fab832a52..4221649b311f
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-r.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-r.c
> @@ -114,32 +114,7 @@ static struct ccu_mp a83t_ir_clk = {
>  	},
>  };
> 
> -static struct ccu_common *sun8i_a83t_r_ccu_clks[] = {
> -	&ar100_clk.common,
> -	&apb0_clk.common,
> -	&apb0_pio_clk.common,
> -	&apb0_ir_clk.common,
> -	&apb0_timer_clk.common,
> -	&apb0_rsb_clk.common,
> -	&apb0_uart_clk.common,
> -	&apb0_i2c_clk.common,
> -	&apb0_twd_clk.common,
> -	&a83t_ir_clk.common,
> -};
> -
> -static struct ccu_common *sun8i_h3_r_ccu_clks[] = {
> -	&ar100_clk.common,
> -	&apb0_clk.common,
> -	&apb0_pio_clk.common,
> -	&apb0_ir_clk.common,
> -	&apb0_timer_clk.common,
> -	&apb0_uart_clk.common,
> -	&apb0_i2c_clk.common,
> -	&apb0_twd_clk.common,
> -	&ir_clk.common,
> -};
> -
> -static struct ccu_common *sun50i_a64_r_ccu_clks[] = {
> +static struct ccu_common *sun8i_r_ccu_clks[] = {
>  	&ar100_clk.common,
>  	&apb0_clk.common,
>  	&apb0_pio_clk.common,
> @@ -150,6 +125,7 @@ static struct ccu_common *sun50i_a64_r_ccu_clks[] = {
>  	&apb0_i2c_clk.common,
>  	&apb0_twd_clk.common,
>  	&ir_clk.common,
> +	&a83t_ir_clk.common,
>  };
> 
>  static struct clk_hw_onecell_data sun8i_a83t_r_hw_clks = {
> @@ -226,8 +202,8 @@ static struct ccu_reset_map sun50i_a64_r_ccu_resets[] =
> { };
> 
>  static const struct sunxi_ccu_desc sun8i_a83t_r_ccu_desc = {
> -	.ccu_clks	= sun8i_a83t_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_a83t_r_ccu_clks),
> +	.ccu_clks	= sun8i_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_r_ccu_clks),
> 
>  	.hw_clks	= &sun8i_a83t_r_hw_clks,
> 
> @@ -236,8 +212,8 @@ static const struct sunxi_ccu_desc sun8i_a83t_r_ccu_desc
> = { };
> 
>  static const struct sunxi_ccu_desc sun8i_h3_r_ccu_desc = {
> -	.ccu_clks	= sun8i_h3_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_h3_r_ccu_clks),
> +	.ccu_clks	= sun8i_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_r_ccu_clks),
> 
>  	.hw_clks	= &sun8i_h3_r_hw_clks,
> 
> @@ -246,8 +222,8 @@ static const struct sunxi_ccu_desc sun8i_h3_r_ccu_desc =
> { };
> 
>  static const struct sunxi_ccu_desc sun50i_a64_r_ccu_desc = {
> -	.ccu_clks	= sun50i_a64_r_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun50i_a64_r_ccu_clks),
> +	.ccu_clks	= sun8i_r_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_r_ccu_clks),
> 
>  	.hw_clks	= &sun50i_a64_r_hw_clks,
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
> b/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c index 87f87d6ea3ad..fbb3529f0d3e
> 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
> @@ -421,6 +421,7 @@ static struct ccu_common *sun8i_v3s_ccu_clks[] = {
>  	&bus_de_clk.common,
>  	&bus_codec_clk.common,
>  	&bus_pio_clk.common,
> +	&bus_i2s0_clk.common,
>  	&bus_i2c0_clk.common,
>  	&bus_i2c1_clk.common,
>  	&bus_uart0_clk.common,
> @@ -439,6 +440,7 @@ static struct ccu_common *sun8i_v3s_ccu_clks[] = {
>  	&mmc2_output_clk.common,
>  	&ce_clk.common,
>  	&spi0_clk.common,
> +	&i2s0_clk.common,
>  	&usb_phy0_clk.common,
>  	&usb_ohci0_clk.common,
>  	&dram_clk.common,
> @@ -463,80 +465,6 @@ static const struct clk_hw *clk_parent_pll_audio[] = {
>  	&pll_audio_base_clk.common.hw
>  };
> 
> -static struct ccu_common *sun8i_v3_ccu_clks[] = {
> -	&pll_cpu_clk.common,
> -	&pll_audio_base_clk.common,
> -	&pll_video_clk.common,
> -	&pll_ve_clk.common,
> -	&pll_ddr0_clk.common,
> -	&pll_periph0_clk.common,
> -	&pll_isp_clk.common,
> -	&pll_periph1_clk.common,
> -	&pll_ddr1_clk.common,
> -	&cpu_clk.common,
> -	&axi_clk.common,
> -	&ahb1_clk.common,
> -	&apb1_clk.common,
> -	&apb2_clk.common,
> -	&ahb2_clk.common,
> -	&bus_ce_clk.common,
> -	&bus_dma_clk.common,
> -	&bus_mmc0_clk.common,
> -	&bus_mmc1_clk.common,
> -	&bus_mmc2_clk.common,
> -	&bus_dram_clk.common,
> -	&bus_emac_clk.common,
> -	&bus_hstimer_clk.common,
> -	&bus_spi0_clk.common,
> -	&bus_otg_clk.common,
> -	&bus_ehci0_clk.common,
> -	&bus_ohci0_clk.common,
> -	&bus_ve_clk.common,
> -	&bus_tcon0_clk.common,
> -	&bus_csi_clk.common,
> -	&bus_de_clk.common,
> -	&bus_codec_clk.common,
> -	&bus_pio_clk.common,
> -	&bus_i2s0_clk.common,
> -	&bus_i2c0_clk.common,
> -	&bus_i2c1_clk.common,
> -	&bus_uart0_clk.common,
> -	&bus_uart1_clk.common,
> -	&bus_uart2_clk.common,
> -	&bus_ephy_clk.common,
> -	&bus_dbg_clk.common,
> -	&mmc0_clk.common,
> -	&mmc0_sample_clk.common,
> -	&mmc0_output_clk.common,
> -	&mmc1_clk.common,
> -	&mmc1_sample_clk.common,
> -	&mmc1_output_clk.common,
> -	&mmc2_clk.common,
> -	&mmc2_sample_clk.common,
> -	&mmc2_output_clk.common,
> -	&ce_clk.common,
> -	&spi0_clk.common,
> -	&i2s0_clk.common,
> -	&usb_phy0_clk.common,
> -	&usb_ohci0_clk.common,
> -	&dram_clk.common,
> -	&dram_ve_clk.common,
> -	&dram_csi_clk.common,
> -	&dram_ohci_clk.common,
> -	&dram_ehci_clk.common,
> -	&de_clk.common,
> -	&tcon_clk.common,
> -	&csi_misc_clk.common,
> -	&csi0_mclk_clk.common,
> -	&csi1_sclk_clk.common,
> -	&csi1_mclk_clk.common,
> -	&ve_clk.common,
> -	&ac_dig_clk.common,
> -	&avs_clk.common,
> -	&mbus_clk.common,
> -	&mipi_csi_clk.common,
> -};
> -
>  /* We hardcode the divider to 1 for SDM support */
>  static CLK_FIXED_FACTOR_HWS(pll_audio_clk, "pll-audio",
>  			    clk_parent_pll_audio,
> @@ -798,8 +726,8 @@ static const struct sunxi_ccu_desc sun8i_v3s_ccu_desc =
> { };
> 
>  static const struct sunxi_ccu_desc sun8i_v3_ccu_desc = {
> -	.ccu_clks	= sun8i_v3_ccu_clks,
> -	.num_ccu_clks	= ARRAY_SIZE(sun8i_v3_ccu_clks),
> +	.ccu_clks	= sun8i_v3s_ccu_clks,
> +	.num_ccu_clks	= ARRAY_SIZE(sun8i_v3s_ccu_clks),
> 
>  	.hw_clks	= &sun8i_v3_hw_clks,





_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-06-05 20:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-31  4:35 [PATCH] clk: sunxi-ng: Deduplicate ccu_clks arrays Samuel Holland
2022-05-31  4:35 ` Samuel Holland
2022-06-01 15:05 ` Andre Przywara
2022-06-01 15:05   ` Andre Przywara
2022-06-05 20:38 ` Jernej Škrabec [this message]
2022-06-05 20:38   ` Jernej Škrabec
2022-06-06 21:14 ` Jernej Škrabec
2022-06-06 21:14   ` Jernej Škrabec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2102959.irdbgypaU6@jernej-laptop \
    --to=jernej.skrabec@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=mturquette@baylibre.com \
    --cc=samuel@sholland.org \
    --cc=sboyd@kernel.org \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.