oxnas: delete linux 4.1 support
[openwrt/openwrt.git] / target / linux / sunxi / patches-4.1 / 140-mmc-sdio-reliability-fix.patch
index 295865bbe5c3d27d1214693dc6ae48d7c719758e..76bc222738e339e4152b8383414c5ebb2a51f260 100644 (file)
@@ -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) {