summaryrefslogtreecommitdiff
path: root/drivers/mmc/host/bcm2835.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/host/bcm2835.c')
-rw-r--r--drivers/mmc/host/bcm2835.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
index 4301bc563e70..beec8d01fabc 100644
--- a/drivers/mmc/host/bcm2835.c
+++ b/drivers/mmc/host/bcm2835.c
@@ -275,6 +275,7 @@ static void bcm2835_reset(struct mmc_host *mmc)
if (host->dma_chan)
dmaengine_terminate_sync(host->dma_chan);
+ host->dma_chan = NULL;
bcm2835_reset_internal(host);
}
@@ -826,6 +827,8 @@ static void bcm2835_timeout(struct work_struct *work)
dev_err(dev, "timeout waiting for hardware interrupt.\n");
bcm2835_dumpregs(host);
+ bcm2835_reset(host->mmc);
+
if (host->data) {
host->data->error = -ETIMEDOUT;
bcm2835_finish_data(host);