diff mbox series

clk: meson: g12a: mark fclk_div2 as CLK_IGNORE_UNUSED

Message ID 20200828130707.9045-1-m.szyprowski@samsung.com (mailing list archive)
State Changes Requested, archived
Headers show
Series clk: meson: g12a: mark fclk_div2 as CLK_IGNORE_UNUSED | expand

Commit Message

Marek Szyprowski Aug. 28, 2020, 1:07 p.m. UTC
Add CLK_IGNORE_UNUSED flag to the "fclk_div2" clock to fix boot hang on
the Hardkernel's Odroid N2 board (with bootloader booted from SD card and
kernel loaded via FTFP).

It looks that this clock is disabled by the generic unused clocks
scanning code before it gets enabled by the meson-gx-mmc driver.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
Without this patch the only way to boot OdroidN2 board with mainline
kernel is to append clk_ignore_unused kernel parameter. I've build the
kernel from the default arm64's defconfig. The kernel is loaded via TFTP
using vendor's u-boot.
---
 drivers/clk/clk.c        | 5 +++++
 drivers/clk/meson/g12a.c | 1 +
 2 files changed, 6 insertions(+)

Comments

Jerome Brunet Aug. 28, 2020, 1:41 p.m. UTC | #1
On Fri 28 Aug 2020 at 15:07, Marek Szyprowski <m.szyprowski@samsung.com> wrote:

> Add CLK_IGNORE_UNUSED flag to the "fclk_div2" clock to fix boot hang on
> the Hardkernel's Odroid N2 board (with bootloader booted from SD card and
> kernel loaded via FTFP).
>
> It looks that this clock is disabled by the generic unused clocks
> scanning code before it gets enabled by the meson-gx-mmc driver.
>
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
> Without this patch the only way to boot OdroidN2 board with mainline
> kernel is to append clk_ignore_unused kernel parameter. I've build the
> kernel from the default arm64's defconfig. The kernel is loaded via TFTP
> using vendor's u-boot.
> ---
>  drivers/clk/clk.c        | 5 +++++
>  drivers/clk/meson/g12a.c | 1 +
>  2 files changed, 6 insertions(+)
>
> diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c
> index 9803d44bb157..4106b6231be4 100644
> --- a/drivers/clk/meson/g12a.c
> +++ b/drivers/clk/meson/g12a.c
> @@ -298,6 +298,7 @@ static struct clk_regmap g12a_fclk_div2 = {
>  			&g12a_fclk_div2_div.hw
>  		},
>  		.num_parents = 1,
> +		.flags = CLK_IGNORE_UNUSED,

Hi Marek,

I just received another patch making this clock critical which I'm more
inclined to take. It should solve this problem you reporting as well.

In general CLK_IGNORE_UNUSED is not best way to address these problems as
a particular race condition (with probe defferal for ex) could still
turn the clock off ... which is apparently something we can't tolerate.

Thanks for reporting

>  	},
>  };
diff mbox series

Patch

diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c
index 9803d44bb157..4106b6231be4 100644
--- a/drivers/clk/meson/g12a.c
+++ b/drivers/clk/meson/g12a.c
@@ -298,6 +298,7 @@  static struct clk_regmap g12a_fclk_div2 = {
 			&g12a_fclk_div2_div.hw
 		},
 		.num_parents = 1,
+		.flags = CLK_IGNORE_UNUSED,
 	},
 };