Skip to contentSkip to conversation

FAILED: patch "[PATCH] mmc: dw_mmc: fix the error handling for dma operation" failed to apply to 4.4-stable tree

PATCH [email protected] 1 participant 1 message Nov 29, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 647f80a1f233bb66fc58fb25664d029e0f12f3ae Mon Sep 17 00:00:00 2001

From: Jaehoon Chung <[email protected]>
Date: Mon, 21 Nov 2016 10:51:48 +0900
Subject: [PATCH] mmc: dw_mmc: fix the error handling for dma operation

When dma->start is failed,then it has to fall back to PIO mode for current transfer.

But Host controller was already set to bits relevant to DMA operation. If needs to use the PIO mode, Host controller has to stop the DMA operation. (It's more stable than now.)

When it occurred error, it's not running any request.

Fixes 3fc7eaef44db ("mmc: dw_mmc: Add external dma interface support")
Cc <[email protected]> # v4.3+
drivers/mmc/host/dw_mmc.c +1 -0
index 50a674be6655..df478ae72e23 100644
@@ -1058,6 +1058,7 @@ static int dw_mci_submit_data_dma(struct dw_mci *host, struct mmc_data *data)
 	spin_unlock_irqrestore(&host->irq_lock, irqflags);
 
 	if (host->dma_ops->start(host, sg_len)) {
+		host->dma_ops->stop(host);
 		/* We can't do DMA, try PIO for this one */
 		dev_dbg(host->dev,
 			"%s: fall back to PIO mode for current transfer\n",