summaryrefslogtreecommitdiffstats
path: root/target/linux/sunxi/patches-4.1/140-mmc-sdio-reliability-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/sunxi/patches-4.1/140-mmc-sdio-reliability-fix.patch')
-rw-r--r--target/linux/sunxi/patches-4.1/140-mmc-sdio-reliability-fix.patch16
1 files changed, 7 insertions, 9 deletions
diff --git a/target/linux/sunxi/patches-4.1/140-mmc-sdio-reliability-fix.patch b/target/linux/sunxi/patches-4.1/140-mmc-sdio-reliability-fix.patch
index 295865bbe5..76bc222738 100644
--- a/target/linux/sunxi/patches-4.1/140-mmc-sdio-reliability-fix.patch
+++ b/target/linux/sunxi/patches-4.1/140-mmc-sdio-reliability-fix.patch
@@ -22,11 +22,9 @@ Changes in v2:
drivers/mmc/host/sunxi-mmc.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
-diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
-index 4d3e1ff..daa90b7 100644
--- a/drivers/mmc/host/sunxi-mmc.c
+++ b/drivers/mmc/host/sunxi-mmc.c
-@@ -289,6 +289,24 @@ static int sunxi_mmc_init_host(struct mmc_host *mmc)
+@@ -289,6 +289,24 @@ static int sunxi_mmc_init_host(struct mm
return 0;
}
@@ -51,7 +49,7 @@ index 4d3e1ff..daa90b7 100644
static void sunxi_mmc_init_idma_des(struct sunxi_mmc_host *host,
struct mmc_data *data)
{
-@@ -383,6 +401,8 @@ static void sunxi_mmc_send_manual_stop(struct sunxi_mmc_host *host,
+@@ -383,6 +401,8 @@ static void sunxi_mmc_send_manual_stop(s
u32 arg, cmd_val, ri;
unsigned long expire = jiffies + msecs_to_jiffies(1000);
@@ -60,7 +58,7 @@ index 4d3e1ff..daa90b7 100644
cmd_val = SDXC_START | SDXC_RESP_EXPIRE |
SDXC_STOP_ABORT_CMD | SDXC_CHECK_RESPONSE_CRC;
-@@ -597,6 +617,11 @@ static int sunxi_mmc_oclk_onoff(struct sunxi_mmc_host *host, u32 oclk_en)
+@@ -597,6 +617,11 @@ static int sunxi_mmc_oclk_onoff(struct s
{
unsigned long expire = jiffies + msecs_to_jiffies(250);
u32 rval;
@@ -72,17 +70,17 @@ index 4d3e1ff..daa90b7 100644
rval = mmc_readl(host, REG_CLKCR);
rval &= ~(SDXC_CARD_CLOCK_ON | SDXC_LOW_POWER_ON);
-@@ -785,6 +810,13 @@ static void sunxi_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
+@@ -784,6 +809,13 @@ static void sunxi_mmc_request(struct mmc
+ mmc_request_done(mmc, mrq);
return;
}
-
++
+ ret = sunxi_mmc_wait_card_ready(host);
+ if (ret) {
+ mrq->cmd->error = ret;
+ mmc_request_done(mmc, mrq);
+ return;
+ }
-+
+
if (data) {
ret = sunxi_mmc_map_dma(host, data);
- if (ret < 0) {