From: Benjamin Bara <benjamin.bara@xxxxxxxxxxx> The current restart handler registration does not specify whether the restart is a cold or a warm one. Instead, cold ones are typically registered with a HIGH prio. Now, as do_kernel_restart() knows about the type, the priorization is implicitly done (cold restarts are executed first) and the reboot_mode kernel parameter (which is currently mostly ignored) can be respected. Signed-off-by: Benjamin Bara <benjamin.bara@xxxxxxxxxxx> --- v2: - improve commit message --- drivers/mfd/tps65219.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/mfd/tps65219.c b/drivers/mfd/tps65219.c index 0e0c42e4fdfc..85752b93256e 100644 --- a/drivers/mfd/tps65219.c +++ b/drivers/mfd/tps65219.c @@ -278,12 +278,21 @@ static int tps65219_probe(struct i2c_client *client) } } - ret = devm_register_restart_handler(tps->dev, - tps65219_restart_handler, - tps); + ret = devm_register_cold_restart_handler(tps->dev, + tps65219_restart_handler, + tps); if (ret) { - dev_err(tps->dev, "cannot register restart handler, %d\n", ret); + dev_err(tps->dev, "cannot register cold restart handler, %d\n", ret); + return ret; + } + + ret = devm_register_warm_restart_handler(tps->dev, + tps65219_restart_handler, + tps); + + if (ret) { + dev_err(tps->dev, "cannot register warm restart handler, %d\n", ret); return ret; } -- 2.34.1