Hi Sascha,
I had sent out v3 patch before the your last comments. I noticed how davinci is doing, but some SOCs like omap, they also do it in another way like my code. However, if you prefer the way davinci is doing, I will redo it. Please confirm.
thanks Yong
On Thu, Feb 17, 2011 at 11:54 AM, Sascha Hauer s.hauer@pengutronix.dewrote:
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
-- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |