diff options
Diffstat (limited to 'arch/mips/cobalt/reset.c')
-rw-r--r-- | arch/mips/cobalt/reset.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/arch/mips/cobalt/reset.c b/arch/mips/cobalt/reset.c index 71eb4ccc4bc1..c3d1baa5bcf1 100644 --- a/arch/mips/cobalt/reset.c +++ b/arch/mips/cobalt/reset.c | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <linux/jiffies.h> | ||
14 | #include <linux/leds.h> | 13 | #include <linux/leds.h> |
15 | 14 | ||
16 | #include <cobalt.h> | 15 | #include <cobalt.h> |
@@ -29,29 +28,13 @@ device_initcall(ledtrig_power_off_init); | |||
29 | 28 | ||
30 | void cobalt_machine_halt(void) | 29 | void cobalt_machine_halt(void) |
31 | { | 30 | { |
32 | int state, last, diff; | ||
33 | unsigned long mark; | ||
34 | |||
35 | /* | 31 | /* |
36 | * turn on power off LED on RaQ | 32 | * turn on power off LED on RaQ |
37 | * | ||
38 | * restart if ENTER and SELECT are pressed | ||
39 | */ | 33 | */ |
40 | |||
41 | last = COBALT_KEY_PORT; | ||
42 | |||
43 | led_trigger_event(power_off_led_trigger, LED_FULL); | 34 | led_trigger_event(power_off_led_trigger, LED_FULL); |
44 | 35 | ||
45 | for (state = 0;;) { | 36 | local_irq_disable(); |
46 | diff = COBALT_KEY_PORT ^ last; | 37 | while (1) ; |
47 | last ^= diff; | ||
48 | |||
49 | if((diff & (COBALT_KEY_ENTER | COBALT_KEY_SELECT)) && !(~last & (COBALT_KEY_ENTER | COBALT_KEY_SELECT))) | ||
50 | writeb(RESET, RESET_PORT); | ||
51 | |||
52 | for (mark = jiffies; jiffies - mark < HZ;) | ||
53 | ; | ||
54 | } | ||
55 | } | 38 | } |
56 | 39 | ||
57 | void cobalt_machine_restart(char *command) | 40 | void cobalt_machine_restart(char *command) |