aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichael Hennerich <michael.hennerich@analog.com>2007-12-24 07:19:51 -0500
committerBryan Wu <bryan.wu@analog.com>2007-12-24 07:19:51 -0500
commita546b0ac5988348446e4fd5987df699b4c9b1f2a (patch)
treed209922c32a7ae7c6dc74f1c824bc21a9376b4aa /arch
parent7cc1c4b2c44d7807f55da6a36f5b2e49977c67b7 (diff)
[Blackfin] arch: Fix BUG - kernel sometimes would stuck with KEYBOARD_GPIO on
Make sure the SYSTEM reset completes before we issue the CORE reset Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/blackfin/kernel/reboot.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/reboot.c b/arch/blackfin/kernel/reboot.c
index ae28aac6fec1..06501a594dda 100644
--- a/arch/blackfin/kernel/reboot.c
+++ b/arch/blackfin/kernel/reboot.c
@@ -34,9 +34,11 @@ void bfin_reset(void)
34 while (1) { 34 while (1) {
35 /* initiate system soft reset with magic 0x7 */ 35 /* initiate system soft reset with magic 0x7 */
36 bfin_write_SWRST(0x7); 36 bfin_write_SWRST(0x7);
37 bfin_read_SWRST();
37 asm("ssync;"); 38 asm("ssync;");
38 /* clear system soft reset */ 39 /* clear system soft reset */
39 bfin_write_SWRST(0); 40 bfin_write_SWRST(0);
41 bfin_read_SWRST();
40 asm("ssync;"); 42 asm("ssync;");
41 /* issue core reset */ 43 /* issue core reset */
42 asm("raise 1"); 44 asm("raise 1");