--- ../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
