[PATCH linux dev-4.17 1/7] clk: Aspeed: Modify clk-aspeed.c driver probe sequence

Ryan Chen ryanchen.aspeed at gmail.com
Tue Jul 17 16:04:11 AEST 2018


On Wed, Jul 11, 2018 at 03:47:56PM +1000, Benjamin Herrenschmidt wrote:
> On Wed, 2018-07-11 at 13:17 +0800, Ryan Chen wrote:
> > In Aspeed's SoC, all IP clk gating and pll parameter is in scu
> > controller, before IP driver probe, scu driver need prepare for it.
> > So buildin_platform_driver to core_initcall.
> > 
> > Signed-off-by: Ryan Chen <ryanchen.aspeed at gmail.com>
> > ---
> >  drivers/clk/clk-aspeed.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/clk/clk-aspeed.c b/drivers/clk/clk-aspeed.c
> > index 8796b8a..9e55743 100644
> > --- a/drivers/clk/clk-aspeed.c
> > +++ b/drivers/clk/clk-aspeed.c
> > @@ -573,7 +573,12 @@ static struct platform_driver aspeed_clk_driver = {
> >  		.suppress_bind_attrs = true,
> >  	},
> >  };
> > -builtin_platform_driver(aspeed_clk_driver);
> > +
> > +static int __init aspeed_clk_init(void)
> > +{
> > +	return platform_driver_register(&aspeed_clk_driver);
> > +}
> > +core_initcall(aspeed_clk_init);
> >  
> >  static void __init aspeed_ast2400_cc(struct regmap *map)
> >  {
> 
> It's generally considered dangerous to register drivers at core
> initcall time.

Understand. 

But if interrupt controller have clk gating. 
the scu driver should be eraly than irq chip driver probe. 
Is this point is reasonable? 

> 
> Any reason we don't use the generic clock driver registration mechanism
> that runs at of_clk_init() time ?

I will use "if (gate->reset_idx == aspeed_resets[ASPEED_RESET_SDHCI])", 
is it suitable ?  


Ryan Chen

> 
> Cheers,
> Ben.
> 


More information about the openbmc mailing list