mmc: pwrseq: Use highest priority for eMMC restart handler

The pwrseq_emmc driver does a eMMC card reset before a system reboot to
allow broken or limited ROM boot-loaders (that don't have an eMMC reset
logic) to be able to read the second stage from the eMMC.

But this has to be called before a system reboot handler and while most
of them use the priority 128, there are other restart handlers (such as
the syscon-reboot one) that use a higher priority. So, use the highest
priority to make sure that the eMMC hw is reset before a system reboot.

Signed-off-by: Javier Martinez Canillas <[email protected]>
Tested-by: Markus Reichl <[email protected]>
Tested-by: Anand Moon <[email protected]>
Reviewed-by: Alim Akhtar <[email protected]>
Tested-by: Douglas Anderson <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
This commit is contained in:
Javier Martinez Canillas 2015-10-21 17:15:40 +02:00 • committed by Ulf Hansson
commit 1c6e58d836

View file

@ -84,11 +84,11 @@ struct mmc_pwrseq *mmc_pwrseq_emmc_alloc(struct mmc_host *host,
/*
* register reset handler to ensure emmc reset also from
* emergency_reboot(), priority 129 schedules it just before
* system reboot
* emergency_reboot(), priority 255 is the highest priority
* so it will be executed before any system reboot handler.
*/
pwrseq->reset_nb.notifier_call = mmc_pwrseq_emmc_reset_nb;
pwrseq->reset_nb.priority = 129;
pwrseq->reset_nb.priority = 255;
register_restart_handler(&pwrseq->reset_nb);
pwrseq->pwrseq.ops = &mmc_pwrseq_emmc_ops;