Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
1da177e4 LT |
2 | /* |
3 | * Reset a DECstation machine. | |
4 | * | |
5 | * Copyright (C) 199x the Anonymous | |
6 | * Copyright (C) 2001, 2002, 2003 Maciej W. Rozycki | |
7 | */ | |
8 | #include <linux/interrupt.h> | |
9 | #include <linux/linkage.h> | |
10 | ||
11 | #include <asm/addrspace.h> | |
1da177e4 | 12 | |
b3f6df9f | 13 | typedef void __noreturn (* noret_func_t)(void); |
1da177e4 | 14 | |
b3f6df9f | 15 | static inline void __noreturn back_to_prom(void) |
1da177e4 | 16 | { |
3bd4c902 | 17 | noret_func_t func = (void *)CKSEG1ADDR(0x1fc00000); |
1da177e4 LT |
18 | |
19 | func(); | |
20 | } | |
21 | ||
b3f6df9f | 22 | void __noreturn dec_machine_restart(char *command) |
1da177e4 LT |
23 | { |
24 | back_to_prom(); | |
25 | } | |
26 | ||
b3f6df9f | 27 | void __noreturn dec_machine_halt(void) |
1da177e4 LT |
28 | { |
29 | back_to_prom(); | |
30 | } | |
31 | ||
b3f6df9f | 32 | void __noreturn dec_machine_power_off(void) |
1da177e4 LT |
33 | { |
34 | /* DECstations don't have a software power switch */ | |
35 | back_to_prom(); | |
36 | } | |
37 | ||
d62801e9 | 38 | irqreturn_t dec_intr_halt(int irq, void *dev_id) |
1da177e4 LT |
39 | { |
40 | dec_machine_halt(); | |
41 | } |