diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2007-12-24 07:19:51 -0500 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-12-24 07:19:51 -0500 |
commit | a546b0ac5988348446e4fd5987df699b4c9b1f2a (patch) | |
tree | d209922c32a7ae7c6dc74f1c824bc21a9376b4aa /arch/blackfin/kernel/reboot.c | |
parent | 7cc1c4b2c44d7807f55da6a36f5b2e49977c67b7 (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/blackfin/kernel/reboot.c')
-rw-r--r-- | arch/blackfin/kernel/reboot.c | 2 |
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"); |