Quoting André Draszik (2024-07-12 10:09:43) > diff --git a/drivers/clk/samsung/clk-gs101.c b/drivers/clk/samsung/clk-gs101.c > index 85098c61c15e..429690757923 100644 > --- a/drivers/clk/samsung/clk-gs101.c > +++ b/drivers/clk/samsung/clk-gs101.c > @@ -4381,6 +4386,99 @@ static const struct samsung_cmu_info peric1_cmu_info __initconst = { > > /* ---- platform_driver ----------------------------------------------------- */ > > +static struct { > + struct mutex lock; > + > + bool bump_refs; > + > + struct clk **clks; > + size_t n_clks; > +} gs101_stdout_clks __initdata = { > + .lock = __MUTEX_INITIALIZER(gs101_stdout_clks.lock), > +}; > + > +static int __init gs101_keep_uart_clocks_param(char *str) > +{ > + gs101_stdout_clks.bump_refs = true; > + return 0; > +} > +early_param("earlycon", gs101_keep_uart_clocks_param); > + > +static void __init gs101_bump_uart_clock_references(void) > +{ > + size_t n_clks; > + > + /* We only support device trees - do nothing if not available. */ > + if (!IS_ENABLED(CONFIG_OF)) > + return; > + > + n_clks = of_clk_get_parent_count(of_stdout); > + if (!n_clks || !of_stdout) > + return; I don't see anything in here that's driver specific. Please move this to the clk framework, hook something like of_clk_add_provider() similar to how of_clk_set_defaults(), and have it look at the of_stdout node for 'clocks' to munge the clks in the core framework for the serial console.