[PATCH V2 2/2] clk: imx8m: check mcore_booted before register clk

Abel Vesa abel.vesa at nxp.com
Tue Apr 12 01:14:03 PDT 2022


On 22-04-12 11:11:17, Abel Vesa wrote:
> On 22-02-28 20:41:12, Peng Fan (OSS) wrote:
> > From: Peng Fan <peng.fan at nxp.com>
> >
> > If mcore_booted is true, ignore the clk root gate registration and
> > this will simplify AMP clock management and avoid system hang unexpectly
> > especially Linux shutdown clk used by mcore.
> >
> > Signed-off-by: Peng Fan <peng.fan at nxp.com>
> > ---
> >
> > V2:
> >  None
> >
> >  drivers/clk/imx/clk-composite-8m.c | 21 +++++++++++++--------
> >  1 file changed, 13 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/clk/imx/clk-composite-8m.c b/drivers/clk/imx/clk-composite-8m.c
> > index 2dfd6149e528..b16c2c0ea9f6 100644
> > --- a/drivers/clk/imx/clk-composite-8m.c
> > +++ b/drivers/clk/imx/clk-composite-8m.c
> > @@ -223,14 +223,19 @@ struct clk_hw *__imx8m_clk_hw_composite(const char *name,
> >  	div->lock = &imx_ccm_lock;
> >  	div->flags = CLK_DIVIDER_ROUND_CLOSEST;
> >
> > -	gate = kzalloc(sizeof(*gate), GFP_KERNEL);
> > -	if (!gate)
> > -		goto fail;
> > -
> > -	gate_hw = &gate->hw;
> > -	gate->reg = reg;
> > -	gate->bit_idx = PCG_CGC_SHIFT;
> > -	gate->lock = &imx_ccm_lock;
> > +	/* skip registering the gate ops if M4 is enabled */
> > +	if (mcore_booted) {
> > +		gate_hw = NULL;
>
> Lets have the gate_hw set to NULL when declared and get rid of this if
> case.
>

On a second thought, no need to resend, I'll squash this in myself.

> > +	} else {
>
> And then lets do here:
>
> 	if (!mcore_booted) {
> > +		gate = kzalloc(sizeof(*gate), GFP_KERNEL);
> > +		if (!gate)
> > +			goto fail;
> > +
> > +		gate_hw = &gate->hw;
> > +		gate->reg = reg;
> > +		gate->bit_idx = PCG_CGC_SHIFT;
> > +		gate->lock = &imx_ccm_lock;
> > +	}
> >
>
> Would look a bit cleaner this way.
>
> With that done:
>
> Reviewed-by: Abel Vesa <abel.vesa at nxp.com>
>
> >  	hw = clk_hw_register_composite(NULL, name, parent_names, num_parents,
> >  			mux_hw, mux_ops, div_hw,
> > --
> > 2.25.1
> >



More information about the linux-arm-kernel mailing list