summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJone Chou <jonechou@google.com>2021-09-04 02:04:10 +0800
committerTreeHugger Robot <treehugger-gerrit@google.com>2021-09-09 03:21:53 +0000
commit5d409bb0f662b98127cab5b0bbf95fa6b7174264 (patch)
tree9823a350692d2adc84ac9e4c26f165cca7e299dd
parent46580bd47f108e3e05b74edea52f7394e4ff5d0c (diff)
downloadreset-5d409bb0f662b98127cab5b0bbf95fa6b7174264.tar.gz
power: reset: add in_panic and in_warm for swreset
- in_panic: in_reboot can't handle all of panic cases. Like to trigger a NULL pointer dereference, it will go 'efi_reboot(reboot_mode, NULL)' instead of 'do_kernel_restart(cmd)'. - in_warm: a hook for user to request warm reset for any other cold reboot cases, like adb reboot xxx. Bug: 196236629 Bug: 196237493 Signed-off-by: Jone Chou <jonechou@google.com> Change-Id: I453e57dd68f96aeb0594689de008412660762c38
-rw-r--r--exynos-reboot.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/exynos-reboot.c b/exynos-reboot.c
index f5a096e..b52b1f7 100644
--- a/exynos-reboot.c
+++ b/exynos-reboot.c
@@ -188,8 +188,8 @@ static int exynos_restart_handler(struct notifier_block *this, unsigned long mod
pr_emerg("%s: Exynos SoC reset right now\n", __func__);
if (s2mpg10_get_rev_id() == S2MPG10_EVT0 ||
- !rsbm_supported ||
- !dbg_snapshot_get_reboot_status()) {
+ !rsbm_supported || !dbg_snapshot_get_reboot_status() ||
+ dbg_snapshot_get_panic_status() || dbg_snapshot_get_warm_status()) {
set_priv_reg(pmu_alive_base + warm_reboot_offset, warm_reboot_trigger);
} else {
pr_emerg("Set PS_HOLD Low.\n");