[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.
More information about the linux-arm-kernel