[PATCH 1/9] spi/pxa2xx: don't use subys initcall for driver init

Sebastian Andrzej Siewior bigeasy at linutronix.de
Wed Nov 24 10:39:05 EST 2010


Mark Brown wrote:
> On Wed, Nov 24, 2010 at 03:09:25PM +0100, Sebastian Andrzej Siewior wrote:
> 
>> I've been pointed out to this commit but I don't understand _why_.
>> The part I don't get is "so it can be used with cpufreq". Is it
>> refered to a driver or the subsystem as it?
> 
> We need the regulators for the CPU rails to start before the cpufreq
> driver starts so cpufreq can talk to them, and since the regulators may
> be SPI attached this means we also need the SPI controller to start
> before cpufreq.  cpufreq starts at vanilla init time.

After digging through the code I think I've found it. pxa_cpu_init()
registers a cpufreq client. cpufreq calls init and pxa then
regulator_get() to get the regulator and I guess this is the problem.
So I would suggest to defer pxa_cpu_init() via late_initcall().

The other way around will force you to hack the init code for various
drivers to make it work.

Sebastian



More information about the linux-arm-kernel mailing list