diff options
author | Oleg Matcovschi <omatcovschi@google.com> | 2021-04-13 21:11:56 -0700 |
---|---|---|
committer | Oleg Matcovschi <omatcovschi@google.com> | 2021-04-14 17:53:49 +0000 |
commit | 05a51400909bf7b0adc07bc649fc4cb4dd4e9290 (patch) | |
tree | 6ebb9b0be22fbe67424e7fd17b3110ace1df75ad | |
parent | 8ce9a792a486dc69400a0eeeb2d8511d1b0905e9 (diff) | |
download | reset-05a51400909bf7b0adc07bc649fc4cb4dd4e9290.tar.gz |
power: reset: exynos-reboot: add dm-verity reboot reason
Bug: 181261704
Signed-off-by: Oleg Matcovschi <omatcovschi@google.com>
Change-Id: Iada99f780169f9145c56be88decdc9c57c25f5d3
-rw-r--r-- | exynos-reboot.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/exynos-reboot.c b/exynos-reboot.c index 158951b..6fe3759 100644 --- a/exynos-reboot.c +++ b/exynos-reboot.c @@ -30,7 +30,9 @@ #include <linux/soc/samsung/exynos-smc.h> #include "../../bms/google_bms.h" -#define BMS_RSBM_VALID BIT(31) +#define EXYNOS_PMU_SYSIP_DAT0 (0x0810) + +#define BMS_RSBM_VALID BIT(31) static struct regmap *pmureg; static u32 warm_reboot_offset, warm_reboot_trigger; @@ -40,6 +42,17 @@ static u32 shutdown_offset, shutdown_trigger; static phys_addr_t pmu_alive_base; static bool rsbm_supported; +enum pon_reboot_mode { + REBOOT_MODE_NORMAL = 0x00, + REBOOT_MODE_CHARGE = 0x0A, + + REBOOT_MODE_DMVERITY_CORRUPTED = 0x50, + + REBOOT_MODE_FASTBOOT = 0xFC, + REBOOT_MODE_FACTORY = 0xFD, + REBOOT_MODE_RECOVERY = 0xFF, +}; + static void exynos_power_off(void) { u32 poweroff_try = 0; @@ -98,13 +111,6 @@ static void exynos_power_off(void) } } -#define EXYNOS_PMU_SYSIP_DAT0 (0x0810) -#define REBOOT_MODE_NORMAL (0x00) -#define REBOOT_MODE_CHARGE (0x0A) -#define REBOOT_MODE_FASTBOOT (0xFC) -#define REBOOT_MODE_FACTORY (0xFD) -#define REBOOT_MODE_RECOVERY (0xFF) - static void exynos_reboot_mode_set(u32 val) { int ret; @@ -142,8 +148,9 @@ static void exynos_reboot_parse(const char *cmd) exynos_reboot_mode_set(REBOOT_MODE_FASTBOOT); } else if (!strcmp(cmd, "recovery")) { exynos_reboot_mode_set(REBOOT_MODE_RECOVERY); - } else if (!strcmp(cmd, "dm-verity device corrupted") || - !strcmp(cmd, "from_fastboot") || + } else if (!strcmp(cmd, "dm-verity device corrupted")) { + exynos_reboot_mode_set(REBOOT_MODE_DMVERITY_CORRUPTED); + } else if (!strcmp(cmd, "from_fastboot") || !strcmp(cmd, "shell") || !strcmp(cmd, "userrequested") || !strcmp(cmd, "userrequested,fastboot") || |