summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exynos-gs101-reboot.c4
-rw-r--r--exynos-gs201-reboot.c3
2 files changed, 4 insertions, 3 deletions
diff --git a/exynos-gs101-reboot.c b/exynos-gs101-reboot.c
index 91be306..ed69e4d 100644
--- a/exynos-gs101-reboot.c
+++ b/exynos-gs101-reboot.c
@@ -202,8 +202,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()) {
ret = set_priv_reg(pmu_alive_base + warm_reboot_offset, warm_reboot_trigger);
/* TODO: this is a temporary workaround. must remove. see b/169128860 */
diff --git a/exynos-gs201-reboot.c b/exynos-gs201-reboot.c
index 5c0f044..e40ee5e 100644
--- a/exynos-gs201-reboot.c
+++ b/exynos-gs201-reboot.c
@@ -163,7 +163,8 @@ static int exynos_restart_handler(struct notifier_block *this, unsigned long mod
/* Do S/W Reset */
pr_emerg("%s: Exynos SoC reset right now\n", __func__);
- if (!dbg_snapshot_get_reboot_status()) {
+ if (!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");