• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/arm/mach-msm/
1
2
3#include <linux/linkage.h>
4#include <asm/assembler.h>
5
6ENTRY(arch_idle)
7#ifdef CONFIG_MSM7X00A_IDLE
8	mrc     p15, 0, r1, c1, c0, 0    /* read current CR    */
9	bic     r0, r1, #(1 << 2)        /* clear dcache bit   */
10	bic     r0, r0, #(1 << 12)       /* clear icache bit   */
11	mcr     p15, 0, r0, c1, c0, 0    /* disable d/i cache  */
12
13	mov     r0, #0                   /* prepare wfi value  */
14	mcr     p15, 0, r0, c7, c10, 0   /* flush the cache    */
15	mcr     p15, 0, r0, c7, c10, 4   /* memory barrier     */
16	mcr     p15, 0, r0, c7, c0, 4    /* wait for interrupt */
17
18	mcr     p15, 0, r1, c1, c0, 0    /* restore d/i cache  */
19#endif
20	mov     pc, lr
21