--- ../linux/arch/arm/mach-pxa/sharpsl_suspend.S 2004-03-04 11:31:19.000000000 +0900 +++ linux/arch/arm/mach-pxa/sharpsl_suspend.S 2004-07-10 00:44:19.000000000 +0900 @@ -59,10 +59,17 @@ .global sleep_param .global sleep_param_p +#if defined(CONFIG_SL_CCCR_CHANGE) + .global cccr_clkparam +#endif sleep_param: .word 0 @ virtual address of parameter array sleep_param_p: .word 0 @ physical address of parameter array +#if defined(CONFIG_SL_CCCR_CHANGE) +cccr_clkparam: .word 0 +#endif + IC_BASE: .word io_p2v(0x40D00000) @@ -228,7 +235,7 @@ str r1, [r0] @ turn off all GPIOs #endif - ldr r3, sleep_param + ldr r3, sleep_param ldr r2, =Awake_address @ store Virtual return address str r2, [r3], #4 @@ -1081,3 +1088,30 @@ .text #endif + +#if defined(CONFIG_SL_CCCR_CHANGE) +ENTRY(cpu_xscale_sl_change_speed_num) + stmfd sp!, {r0, r1, r2, r3, r4, lr} + + ldr r0, CMR_BASE + ldr r1, cccr_clkparam + str r1, [r0, #CMR_CCCR] + + ldr r0, MD_BASE + ldr r2, [r0, #MD_MDREFR] + + bl CodeOnCache_num + + .align 5 + .text +CodeOnCache_num: + mov r1, #0x2 + mcr p14, 0, r1, c6, c0, 0 + str r2, [r0, #MD_MDREFR] + ldr r2, [r0, #MD_MDREFR] + + ldmfd sp!, {r0, r1, r2, r3, r4, pc} + + .align 5 + .text +#endif