mmc: bcm2835: reset host on timeout
authorMichal Suchanek <msuchanek@suse.de>
Sun, 11 Nov 2018 20:23:53 +0000 (21:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Feb 2019 18:47:10 +0000 (19:47 +0100)
commitffc1770245c776df235595107b95c00caf4507a4
tree17658a9f68ce2dbd112f907799fba0c629fd2898
parent3d71a02198ac5696382ce60b301a25037c68c720
mmc: bcm2835: reset host on timeout

[ Upstream commit f6000a4eb34e6462bc0dd39809c1bb99f9633269 ]

The bcm2835 mmc host tends to lock up for unknown reason so reset it on
timeout. The upper mmc block layer tries retransimitting with single
blocks which tends to work out after a long wait.

This is better than giving up and leaving the machine broken for no
obvious reason.

Fixes: 660fc733bd74 ("mmc: bcm2835: Add new driver for the sdhost controller.")
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Acked-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mmc/host/bcm2835.c