On Thu, Feb 17, 2011 at 09:18:11AM +0100, Yong Shen wrote:
return 0;
+}
+late_initcall(imx_cpuidle_init);
We have a late_initcall here which needs to be protected from other cpus. On the other hand we depend on board code calling imx_cpuidle_board_params() before this initcall. I think the board code should call a imx_cpuidle_init(struct imx_cpuidle_params *cpuidle_params) instead which makes the flow of execution more clear.
imx_cpuidle_init can not be called directly in board code, since it is too
early to register cpuidle driver and device which depend on some other system resource.
I see. Maybe we should make this a platform driver then like for example davinci does.
Sascha