David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 1 | // SPDX-License-Identifier: GPL-2.0-only |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 2 | /* |
3 | * Copyright (C) 2012 Regents of the University of California | ||||
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 4 | */ |
5 | |||||
6 | #include <linux/reboot.h> | ||||
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 7 | #include <linux/pm.h> |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 8 | |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 9 | static void default_power_off(void) |
10 | { | ||||
Olivier Deprez | 157378f | 2022-04-04 15:47:50 +0200 | [diff] [blame^] | 11 | while (1) |
12 | wait_for_interrupt(); | ||||
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 13 | } |
14 | |||||
15 | void (*pm_power_off)(void) = default_power_off; | ||||
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 16 | EXPORT_SYMBOL(pm_power_off); |
17 | |||||
18 | void machine_restart(char *cmd) | ||||
19 | { | ||||
20 | do_kernel_restart(cmd); | ||||
21 | while (1); | ||||
22 | } | ||||
23 | |||||
24 | void machine_halt(void) | ||||
25 | { | ||||
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 26 | pm_power_off(); |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 27 | } |
28 | |||||
29 | void machine_power_off(void) | ||||
30 | { | ||||
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 31 | pm_power_off(); |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 32 | } |