[PATCH 1/5] soc: qcom: Add suspend to idle support

Andy Gross andy.gross at linaro.org
Fri Jun 10 08:26:15 PDT 2016


On Fri, Jun 10, 2016 at 10:47:35AM +0200, Ulf Hansson wrote:

<snip>

> >>
> >> I don't think this will work!
> >>
> >> When building a multi defconfig for ARM, you might overwrite the
> >> suspend_ops (there's only one set) as here you don't know that it's
> >> actually the QCOM platform that is running, right!?
> >>
> >> Perhaps this code actually belongs closer to the cpuidle driver?
> >
> > Hmmmm, I might have to get creative.  I originally had a DT entry for the pm,
> > but that doesn't make sense as this is purely a software construct.  The db410c
> > uses the arm cpuidle driver so I can't really hook it in there.  I'll have to
> > come up with something else.
> 
> I did a little research.
> 
> I think you should be able to use the struct cpuidle_ops->init()
> callback. This is being invoked when the arm cpuidle driver is
> initialized.
> 
> arm_idle_init()
>   ->arm_cpuidle_init()
>      ->cpuidle_ops->init()

Ah I'll see if I can get that to work.  Thanks for the pointer.

> 
> In the QCOM case, it's the spm driver that registers these cpuidle_ops
> (drivers/soc/qcom/spm.c). If you fold in the code from $subject patch
> in qcom_cpuidle_init(), that should work I think.

Only for the 32 bit processor case.  The SPM is not used for the 64 bit procs.


Regards,

Andy



More information about the linux-arm-kernel mailing list