diff options
-rw-r--r-- | arch/arm/mach-imx/imx.c | 6 | ||||
-rw-r--r-- | drivers/watchdog/imxwd.c | 10 |
2 files changed, 8 insertions, 8 deletions
diff --git a/arch/arm/mach-imx/imx.c b/arch/arm/mach-imx/imx.c index ad227663dd..63914d306e 100644 --- a/arch/arm/mach-imx/imx.c +++ b/arch/arm/mach-imx/imx.c @@ -199,12 +199,8 @@ void imx_set_reset_reason(void __iomem *srsr, } } - /* - * Report this with above default priority in order to make - * sure we'll always override info from watchdog driver. - */ reset_source_set_priority(type, - RESET_SOURCE_DEFAULT_PRIORITY + 1); + RESET_SOURCE_DEFAULT_PRIORITY); reset_source_set_instance(type, instance); pr_info("i.MX reset reason %s (SRSR: 0x%08x)\n", diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c index a66fae400c..8dba662392 100644 --- a/drivers/watchdog/imxwd.c +++ b/drivers/watchdog/imxwd.c @@ -162,19 +162,23 @@ static void __noreturn imxwd_force_soc_reset(struct restart_handler *rst) static void imx_watchdog_detect_reset_source(struct imx_wd *priv) { u16 val = readw(priv->base + IMX21_WDOG_WSTR); + int priority = RESET_SOURCE_DEFAULT_PRIORITY; + + if (reset_source_get() == RESET_WDG) + priority++; if (val & WSTR_COLDSTART) { - reset_source_set(RESET_POR); + reset_source_set_priority(RESET_POR, priority); return; } if (val & (WSTR_HARDRESET | WSTR_WARMSTART)) { - reset_source_set(RESET_RST); + reset_source_set_priority(RESET_RST, priority); return; } if (val & WSTR_WDOG) { - reset_source_set(RESET_WDG); + reset_source_set_priority(RESET_WDG, priority); return; } |