[PATCH 3/4] at91 : remove wait_for_interrupt definition
From: Daniel Lezcano <hidden>
Date: 2012-02-27 13:07:00
On 02/27/2012 01:50 PM, Russell King - ARM Linux wrote:
On Wed, Jan 25, 2012 at 03:39:49PM +0100, Daniel Lezcano wrote:quoted
On 01/25/2012 01:18 AM, Russell King - ARM Linux wrote:quoted
On Wed, Jan 25, 2012 at 12:56:07AM +0100, Daniel Lezcano wrote:quoted
All the "wait_for_interrupt" definition are aliases to cpu_do_idle. Only the rm9200 has an asm routine to switch to wfi. But the cpu_do_idle for this platform has exactly the same asm routine. arch/arm/mm/proc-arm920.S ... ENTRY(cpu_arm920_do_idle) mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt ... Then it is safe to invoke cpu_do_idle for this platform.No it is not. Please read Nicolas' post: http://lists.arm.linux.org.uk/lurker/message/20120112.144129.827ae490.en.html and think about what "DWB is needed before putting SDRAM into self-refresh because any subsequent access to SDRAM will force it to resume from self-refresh state" means. Consider that if you _branch_ somewhere else, you _could_ cause a cache line fetch, which will have to come from SDRAM.Oh, right. I am not familiar with this part, thanks for the clarification.quoted
From Nicolas' post, it's pretty clear to me that the AT91RM9200 requires carefully crafted assembly which can't be separated in this way to work, which I mostly supplied in this mail: http://lists.arm.linux.org.uk/lurker/message/20120109.144443.3626e5a6.en.htmlOk, this is what does the patch 4/4, it changes the self-refresh and wfi into an asm routine where cpu_do_idle call is removed. Can I consider by folding 3/4 and 4/4 ? So the buggy cpu_do_idle change won't appear...So I see your patch is in arm-soc now, inspite of my note that it's probably broken. If it's been tested, then all the asm() stuff in arch/arm/mach-at91/pm.c along with the sdram crap can be removed.
Yes, this is what the patch 4/4 does right after, also removing the cpu_do_idle. There no more asm routine in pm.c now. Thanks -- Daniel -- <http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog