Update to 3.4.46 kernel release
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 May 2013 19:28:20 +0000 (12:28 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 May 2013 19:28:20 +0000 (12:28 -0700)
20 files changed:
KERNEL_VERSION
patches.at91/0149-mmc-atmel-mci-the-r-w-proof-capability-lack-was-not-.patch
patches.at91/0150-mmc-atmel-mci-change-the-state-machine-for-compatibi.patch
patches.at91/0151-mmc-atmel-mci-add-support-for-version-lower-than-v2x.patch
patches.at91/0152-mmc-atmel-mci-add-debug-logs.patch
patches.at91/0153-mmc-atmel-mci-fix-data-timeout-issue.patch
patches.at91/0156-mmc-atmel-mci-fix-burst-chunk-size-modification.patch
patches.at91/0157-mmc-atmel-mci-add-device-tree-support.patch
patches.at91/0161-mmc-atmel-mci-remove-not-needed-DMA-capability-test.patch
patches.at91/0163-mmc-atmel-mci-remove-the-need-for-CONFIG_MMC_ATMELMC.patch [deleted file]
patches.at91/0164-ARM-dts-fix-add-mmc-irq-priority.patch
patches.at91/0165-mmc-atmel-mci-support-8-bit-buswidth.patch
patches.at91/0166-mmc-atmel-mci-fix-incorrect-setting-of-host-data-to-.patch
patches.at91/0168-mmc-atmel-mci-modify-CLKDIV-displaying-in-debugfs.patch
patches.at91/0170-mmc-atmel-mci-not-busy-flag-has-also-to-be-used-for-.patch
patches.at91/0227-mmc-at91-add-pinctrl.patch
patches.at91/0239-MMC-atmel-mci-add-device-tree-property-for-configura.patch
patches.fixes/arm-shmobile-r8a7779-correct-tmu-clock-support-again.patch
patches.ltsi/ltsi-makefile-addition.patch
series

index 1ded3663d3ef3f117baf5ddb83464daf1d6b841e..d794598181ccf983b696d1eef82911017bfc6a82 100644 (file)
@@ -1 +1 @@
-3.4.39
+3.4.46
index 109ea46ca18aa3264c7f34a5c40a40a5f46ced39..e072178c0ce15c36c8fb7f5b363d9a3846f0eccb 100644 (file)
@@ -13,11 +13,9 @@ even if we stop the transfer to perform this switch.
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 Signed-off-by: Chris Ball <cjb@laptop.org>
 ---
- drivers/mmc/host/atmel-mci.c | 92 +++++++++++++++++++++++++++++++++++++-------
+ drivers/mmc/host/atmel-mci.c |   92 ++++++++++++++++++++++++++++++++++++-------
  1 file changed, 78 insertions(+), 14 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index e94476b..6f56ef0 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
 @@ -91,6 +91,11 @@ struct atmel_mci_dma {
@@ -32,9 +30,9 @@ index e94476b..6f56ef0 100644
   * @cur_slot: The slot which is currently using the controller.
   * @mrq: The request currently being processed on @cur_slot,
   *    or NULL if the controller is idle.
-@@ -166,6 +171,9 @@ struct atmel_mci {
+@@ -167,6 +172,9 @@ struct atmel_mci {
        struct scatterlist      *sg;
+       unsigned int            sg_len;
        unsigned int            pio_offset;
 +      unsigned int            *buffer;
 +      unsigned int            buf_size;
@@ -42,7 +40,7 @@ index e94476b..6f56ef0 100644
  
        struct atmel_mci_slot   *cur_slot;
        struct mmc_request      *mrq;
-@@ -480,6 +488,11 @@ err:
+@@ -481,6 +489,11 @@ err:
        dev_err(&mmc->class_dev, "failed to initialize debugfs for slot\n");
  }
  
@@ -54,7 +52,7 @@ index e94476b..6f56ef0 100644
  static inline unsigned int atmci_ns_to_clocks(struct atmel_mci *host,
                                        unsigned int ns)
  {
-@@ -603,6 +616,7 @@ static void atmci_pdc_set_single_buf(struct atmel_mci *host,
+@@ -604,6 +617,7 @@ static void atmci_pdc_set_single_buf(str
        enum atmci_xfer_dir dir, enum atmci_pdc_buf buf_nb)
  {
        u32 pointer_reg, counter_reg;
@@ -62,7 +60,7 @@ index e94476b..6f56ef0 100644
  
        if (dir == XFER_RECEIVE) {
                pointer_reg = ATMEL_PDC_RPR;
-@@ -617,8 +631,15 @@ static void atmci_pdc_set_single_buf(struct atmel_mci *host,
+@@ -618,8 +632,15 @@ static void atmci_pdc_set_single_buf(str
                counter_reg += ATMEL_PDC_SCND_BUF_OFF;
        }
  
@@ -80,7 +78,7 @@ index e94476b..6f56ef0 100644
                if (host->data_size & 0x3) {
                        /* If size is different from modulo 4, transfer bytes */
                        atmci_writel(host, counter_reg, host->data_size);
-@@ -670,7 +691,15 @@ static void atmci_pdc_cleanup(struct atmel_mci *host)
+@@ -671,7 +692,15 @@ static void atmci_pdc_cleanup(struct atm
   */
  static void atmci_pdc_complete(struct atmel_mci *host)
  {
@@ -96,7 +94,7 @@ index e94476b..6f56ef0 100644
        atmci_pdc_cleanup(host);
  
        /*
-@@ -818,6 +847,12 @@ atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data)
+@@ -820,6 +849,12 @@ atmci_prepare_data_pdc(struct atmel_mci
        /* Configure PDC */
        host->data_size = data->blocks * data->blksz;
        sg_len = dma_map_sg(&host->pdev->dev, data->sg, data->sg_len, dir);
@@ -109,7 +107,7 @@ index e94476b..6f56ef0 100644
        if (host->data_size)
                atmci_pdc_set_both_buf(host,
                        ((dir == DMA_FROM_DEVICE) ? XFER_RECEIVE : XFER_TRANSMIT));
-@@ -1877,13 +1912,26 @@ static int __init atmci_init_slot(struct atmel_mci *host,
+@@ -1883,13 +1918,26 @@ static int __init atmci_init_slot(struct
                mmc->caps |= MMC_CAP_SDIO_IRQ;
        if (host->caps.has_highspeed)
                mmc->caps |= MMC_CAP_SD_HIGHSPEED;
@@ -141,7 +139,7 @@ index e94476b..6f56ef0 100644
  
        /* Assume card is present initially */
        set_bit(ATMCI_CARD_PRESENT, &slot->flags);
-@@ -2007,11 +2055,6 @@ static bool atmci_configure_dma(struct atmel_mci *host)
+@@ -2013,11 +2061,6 @@ static bool atmci_configure_dma(struct a
        }
  }
  
@@ -153,7 +151,7 @@ index e94476b..6f56ef0 100644
  /*
   * HSMCI (High Speed MCI) module is not fully compatible with MCI module.
   * HSMCI provides DMA support and a new config register but no more supports
-@@ -2138,14 +2181,20 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2144,14 +2187,20 @@ static int __init atmci_probe(struct pla
        if (pdata->slot[0].bus_width) {
                ret = atmci_init_slot(host, &pdata->slot[0],
                                0, ATMCI_SDCSEL_SLOT_A, ATMCI_SDIOIRQA);
@@ -176,7 +174,7 @@ index e94476b..6f56ef0 100644
        }
  
        if (!nr_slots) {
-@@ -2153,6 +2202,17 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2159,6 +2208,17 @@ static int __init atmci_probe(struct pla
                goto err_init_slot;
        }
  
@@ -194,7 +192,7 @@ index e94476b..6f56ef0 100644
        dev_info(&pdev->dev,
                        "Atmel MCI controller at 0x%08lx irq %d, %u slots\n",
                        host->mapbase, irq, nr_slots);
-@@ -2179,6 +2239,10 @@ static int __exit atmci_remove(struct platform_device *pdev)
+@@ -2185,6 +2245,10 @@ static int __exit atmci_remove(struct pl
  
        platform_set_drvdata(pdev, NULL);
  
@@ -205,6 +203,3 @@ index e94476b..6f56ef0 100644
        for (i = 0; i < ATMCI_MAX_NR_SLOTS; i++) {
                if (host->slot[i])
                        atmci_cleanup_slot(host->slot[i], i);
--- 
-1.8.0.197.g5a90748
-
index 8ad6ba3c2f7cfb2afa73ce6cf028e72adbd06c9b..f1fd37c4be63f185c6c20df664e6d86ce03e1103 100644 (file)
@@ -13,11 +13,9 @@ versions in order to remove at91-mci driver only used for old versions.
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 Signed-off-by: Chris Ball <cjb@laptop.org>
 ---
- drivers/mmc/host/atmel-mci.c | 278 +++++++++++++++++++++++++------------------
+ drivers/mmc/host/atmel-mci.c |  278 +++++++++++++++++++++++++------------------
  1 file changed, 162 insertions(+), 116 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 6f56ef0..1baaaebb 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
 @@ -45,19 +45,19 @@
@@ -45,7 +43,7 @@ index 6f56ef0..1baaaebb 100644
  };
  
  enum atmci_xfer_dir {
-@@ -709,7 +709,6 @@ static void atmci_pdc_complete(struct atmel_mci *host)
+@@ -710,7 +710,6 @@ static void atmci_pdc_complete(struct at
        if (host->data) {
                atmci_set_pending(host, EVENT_XFER_COMPLETE);
                tasklet_schedule(&host->tasklet);
@@ -53,7 +51,7 @@ index 6f56ef0..1baaaebb 100644
        }
  }
  
-@@ -835,7 +834,7 @@ atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data)
+@@ -837,7 +836,7 @@ atmci_prepare_data_pdc(struct atmel_mci
                iflags |= ATMCI_ENDRX | ATMCI_RXBUFF;
        } else {
                dir = DMA_TO_DEVICE;
@@ -62,7 +60,7 @@ index 6f56ef0..1baaaebb 100644
        }
  
        /* Set BLKLEN */
-@@ -975,8 +974,7 @@ static void atmci_stop_transfer(struct atmel_mci *host)
+@@ -977,8 +976,7 @@ static void atmci_stop_transfer(struct a
   */
  static void atmci_stop_transfer_pdc(struct atmel_mci *host)
  {
@@ -72,7 +70,7 @@ index 6f56ef0..1baaaebb 100644
  }
  
  static void atmci_stop_transfer_dma(struct atmel_mci *host)
-@@ -1012,6 +1010,7 @@ static void atmci_start_request(struct atmel_mci *host,
+@@ -1014,6 +1012,7 @@ static void atmci_start_request(struct a
  
        host->pending_events = 0;
        host->completed_events = 0;
@@ -80,7 +78,7 @@ index 6f56ef0..1baaaebb 100644
        host->data_status = 0;
  
        if (host->need_reset) {
-@@ -1029,7 +1028,7 @@ static void atmci_start_request(struct atmel_mci *host,
+@@ -1031,7 +1030,7 @@ static void atmci_start_request(struct a
  
        iflags = atmci_readl(host, ATMCI_IMR);
        if (iflags & ~(ATMCI_SDIOIRQA | ATMCI_SDIOIRQB))
@@ -89,7 +87,7 @@ index 6f56ef0..1baaaebb 100644
                                iflags);
  
        if (unlikely(test_and_clear_bit(ATMCI_CARD_NEED_INIT, &slot->flags))) {
-@@ -1367,19 +1366,6 @@ static void atmci_command_complete(struct atmel_mci *host,
+@@ -1369,19 +1368,6 @@ static void atmci_command_complete(struc
                cmd->error = -EIO;
        else
                cmd->error = 0;
@@ -109,7 +107,7 @@ index 6f56ef0..1baaaebb 100644
  }
  
  static void atmci_detect_change(unsigned long data)
-@@ -1442,23 +1428,21 @@ static void atmci_detect_change(unsigned long data)
+@@ -1444,23 +1430,21 @@ static void atmci_detect_change(unsigned
                                        break;
                                case STATE_SENDING_CMD:
                                        mrq->cmd->error = -ENOMEDIUM;
@@ -142,7 +140,7 @@ index 6f56ef0..1baaaebb 100644
                                }
  
                                atmci_request_end(host, mrq);
-@@ -1486,7 +1470,6 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1488,7 +1472,6 @@ static void atmci_tasklet_func(unsigned
        struct atmel_mci        *host = (struct atmel_mci *)priv;
        struct mmc_request      *mrq = host->mrq;
        struct mmc_data         *data = host->data;
@@ -150,7 +148,7 @@ index 6f56ef0..1baaaebb 100644
        enum atmel_mci_state    state = host->state;
        enum atmel_mci_state    prev_state;
        u32                     status;
-@@ -1508,101 +1491,164 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1510,101 +1493,164 @@ static void atmci_tasklet_func(unsigned
                        break;
  
                case STATE_SENDING_CMD:
@@ -371,7 +369,7 @@ index 6f56ef0..1baaaebb 100644
        spin_unlock(&host->lock);
  }
  
-@@ -1655,9 +1701,6 @@ static void atmci_read_data_pio(struct atmel_mci *host)
+@@ -1659,9 +1705,6 @@ static void atmci_read_data_pio(struct a
                                                | ATMCI_DATA_ERROR_FLAGS));
                        host->data_status = status;
                        data->bytes_xfered += nbytes;
@@ -381,7 +379,7 @@ index 6f56ef0..1baaaebb 100644
                        return;
                }
        } while (status & ATMCI_RXRDY);
-@@ -1726,9 +1769,6 @@ static void atmci_write_data_pio(struct atmel_mci *host)
+@@ -1732,9 +1775,6 @@ static void atmci_write_data_pio(struct
                                                | ATMCI_DATA_ERROR_FLAGS));
                        host->data_status = status;
                        data->bytes_xfered += nbytes;
@@ -391,7 +389,7 @@ index 6f56ef0..1baaaebb 100644
                        return;
                }
        } while (status & ATMCI_TXRDY);
-@@ -1746,16 +1786,6 @@ done:
+@@ -1752,16 +1792,6 @@ done:
        atmci_set_pending(host, EVENT_XFER_COMPLETE);
  }
  
@@ -408,7 +406,7 @@ index 6f56ef0..1baaaebb 100644
  static void atmci_sdio_interrupt(struct atmel_mci *host, u32 status)
  {
        int     i;
-@@ -1784,8 +1814,9 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1790,8 +1820,9 @@ static irqreturn_t atmci_interrupt(int i
  
                if (pending & ATMCI_DATA_ERROR_FLAGS) {
                        atmci_writel(host, ATMCI_IDR, ATMCI_DATA_ERROR_FLAGS
@@ -420,7 +418,7 @@ index 6f56ef0..1baaaebb 100644
  
                        host->data_status = status;
                        smp_wmb();
-@@ -1843,23 +1874,38 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1849,23 +1880,38 @@ static irqreturn_t atmci_interrupt(int i
                        }
                }
  
@@ -466,6 +464,3 @@ index 6f56ef0..1baaaebb 100644
  
                if (pending & (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB))
                        atmci_sdio_interrupt(host, status);
--- 
-1.8.0.197.g5a90748
-
index edef5ce6e85042d40b6c2cf3c9155484ed3a85d3..b28d001fc4faf956c50f0a5db93d47b5d2ec35da 100644 (file)
@@ -10,11 +10,9 @@ Fix mci IP bugs and endianness issue.
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 Signed-off-by: Chris Ball <cjb@laptop.org>
 ---
- drivers/mmc/host/atmel-mci.c | 62 +++++++++++++++++++++++++++++++++++++++++---
+ drivers/mmc/host/atmel-mci.c |   62 ++++++++++++++++++++++++++++++++++++++++---
  1 file changed, 58 insertions(+), 4 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 1baaaebb..5fe8300 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
 @@ -78,6 +78,9 @@ struct atmel_mci_caps {
@@ -35,7 +33,7 @@ index 1baaaebb..5fe8300 100644
   * @mode_reg: Value of the MR register.
   * @cfg_reg: Value of the CFG register.
   * @bus_hz: The rate of @mck in Hz. This forms the basis for MMC bus
-@@ -197,6 +201,7 @@ struct atmel_mci {
+@@ -198,6 +202,7 @@ struct atmel_mci {
  
        bool                    need_clock_update;
        bool                    need_reset;
@@ -43,7 +41,7 @@ index 1baaaebb..5fe8300 100644
        u32                     mode_reg;
        u32                     cfg_reg;
        unsigned long           bus_hz;
-@@ -493,6 +498,27 @@ static inline unsigned int atmci_get_version(struct atmel_mci *host)
+@@ -494,6 +499,27 @@ static inline unsigned int atmci_get_ver
        return atmci_readl(host, ATMCI_VERSION) & 0x00000fff;
  }
  
@@ -71,7 +69,7 @@ index 1baaaebb..5fe8300 100644
  static inline unsigned int atmci_ns_to_clocks(struct atmel_mci *host,
                                        unsigned int ns)
  {
-@@ -692,13 +718,18 @@ static void atmci_pdc_cleanup(struct atmel_mci *host)
+@@ -693,13 +719,18 @@ static void atmci_pdc_cleanup(struct atm
  static void atmci_pdc_complete(struct atmel_mci *host)
  {
        int transfer_size = host->data->blocks * host->data->blksz;
@@ -91,7 +89,7 @@ index 1baaaebb..5fe8300 100644
  
        atmci_pdc_cleanup(host);
  
-@@ -819,6 +850,7 @@ atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data)
+@@ -821,6 +852,7 @@ atmci_prepare_data_pdc(struct atmel_mci
        u32 iflags, tmp;
        unsigned int sg_len;
        enum dma_data_direction dir;
@@ -99,7 +97,7 @@ index 1baaaebb..5fe8300 100644
  
        data->error = -EINPROGRESS;
  
-@@ -848,9 +880,13 @@ atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data)
+@@ -850,9 +882,13 @@ atmci_prepare_data_pdc(struct atmel_mci
        sg_len = dma_map_sg(&host->pdev->dev, data->sg, data->sg_len, dir);
  
        if ((!host->caps.has_rwproof)
@@ -114,7 +112,7 @@ index 1baaaebb..5fe8300 100644
  
        if (host->data_size)
                atmci_pdc_set_both_buf(host,
-@@ -1013,7 +1049,7 @@ static void atmci_start_request(struct atmel_mci *host,
+@@ -1015,7 +1051,7 @@ static void atmci_start_request(struct a
        host->cmd_status = 0;
        host->data_status = 0;
  
@@ -123,7 +121,7 @@ index 1baaaebb..5fe8300 100644
                iflags = atmci_readl(host, ATMCI_IMR);
                iflags &= (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB);
                atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST);
-@@ -1077,6 +1113,8 @@ static void atmci_start_request(struct atmel_mci *host,
+@@ -1079,6 +1115,8 @@ static void atmci_start_request(struct a
         * prepared yet.)
         */
        atmci_writel(host, ATMCI_IER, iflags);
@@ -132,7 +130,7 @@ index 1baaaebb..5fe8300 100644
  }
  
  static void atmci_queue_request(struct atmel_mci *host,
-@@ -1342,6 +1380,8 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq)
+@@ -1344,6 +1382,8 @@ static void atmci_request_end(struct atm
                host->state = STATE_IDLE;
        }
  
@@ -141,7 +139,7 @@ index 1baaaebb..5fe8300 100644
        spin_unlock(&host->lock);
        mmc_request_done(prev_mmc, mrq);
        spin_lock(&host->lock);
-@@ -1364,7 +1404,12 @@ static void atmci_command_complete(struct atmel_mci *host,
+@@ -1366,7 +1406,12 @@ static void atmci_command_complete(struc
                cmd->error = -EILSEQ;
        else if (status & (ATMCI_RINDE | ATMCI_RDIRE | ATMCI_RENDE))
                cmd->error = -EIO;
@@ -155,7 +153,7 @@ index 1baaaebb..5fe8300 100644
                cmd->error = 0;
  }
  
-@@ -2121,6 +2166,9 @@ static void __init atmci_get_cap(struct atmel_mci *host)
+@@ -2127,6 +2172,9 @@ static void __init atmci_get_cap(struct
        host->caps.has_highspeed = 0;
        host->caps.has_rwproof = 0;
        host->caps.has_odd_clk_div = 0;
@@ -165,7 +163,7 @@ index 1baaaebb..5fe8300 100644
  
        /* keep only major version number */
        switch (version & 0xf00) {
-@@ -2140,7 +2188,11 @@ static void __init atmci_get_cap(struct atmel_mci *host)
+@@ -2146,7 +2194,11 @@ static void __init atmci_get_cap(struct
                host->caps.has_highspeed = 1;
        case 0x200:
                host->caps.has_rwproof = 1;
@@ -177,7 +175,7 @@ index 1baaaebb..5fe8300 100644
                break;
        default:
                host->caps.has_pdc = 0;
-@@ -2259,6 +2311,8 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2265,6 +2317,8 @@ static int __init atmci_probe(struct pla
                }
        }
  
@@ -186,6 +184,3 @@ index 1baaaebb..5fe8300 100644
        dev_info(&pdev->dev,
                        "Atmel MCI controller at 0x%08lx irq %d, %u slots\n",
                        host->mapbase, irq, nr_slots);
--- 
-1.8.0.197.g5a90748
-
index 5873beb935354497bef410e867cc1b6956c25524..7ce0adb27dc6054989f5a859f5b72f3880e83502 100644 (file)
@@ -8,14 +8,12 @@ commit 6801c41a77123712accfde898820972a1f6fc117 upstream.
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 Signed-off-by: Chris Ball <cjb@laptop.org>
 ---
- drivers/mmc/host/atmel-mci.c | 41 +++++++++++++++++++++++++++++++++++++++++
+ drivers/mmc/host/atmel-mci.c |   41 +++++++++++++++++++++++++++++++++++++++++
  1 file changed, 41 insertions(+)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 5fe8300..420aca6 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -630,6 +630,7 @@ static void atmci_send_command(struct atmel_mci *host,
+@@ -631,6 +631,7 @@ static void atmci_send_command(struct at
  
  static void atmci_send_stop_cmd(struct atmel_mci *host, struct mmc_data *data)
  {
@@ -23,7 +21,7 @@ index 5fe8300..420aca6 100644
        atmci_send_command(host, data->stop, host->stop_cmdr);
        atmci_writel(host, ATMCI_IER, ATMCI_CMDRDY);
  }
-@@ -738,6 +739,8 @@ static void atmci_pdc_complete(struct atmel_mci *host)
+@@ -739,6 +740,8 @@ static void atmci_pdc_complete(struct at
         * to send the stop command or waiting for NBUSY in this case.
         */
        if (host->data) {
@@ -32,7 +30,7 @@ index 5fe8300..420aca6 100644
                atmci_set_pending(host, EVENT_XFER_COMPLETE);
                tasklet_schedule(&host->tasklet);
        }
-@@ -775,6 +778,8 @@ static void atmci_dma_complete(void *arg)
+@@ -776,6 +779,8 @@ static void atmci_dma_complete(void *arg
         * to send the stop command or waiting for NBUSY in this case.
         */
        if (data) {
@@ -41,7 +39,7 @@ index 5fe8300..420aca6 100644
                atmci_set_pending(host, EVENT_XFER_COMPLETE);
                tasklet_schedule(&host->tasklet);
  
-@@ -1001,6 +1006,8 @@ atmci_submit_data_dma(struct atmel_mci *host, struct mmc_data *data)
+@@ -1003,6 +1008,8 @@ atmci_submit_data_dma(struct atmel_mci *
  
  static void atmci_stop_transfer(struct atmel_mci *host)
  {
@@ -50,7 +48,7 @@ index 5fe8300..420aca6 100644
        atmci_set_pending(host, EVENT_XFER_COMPLETE);
        atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY);
  }
-@@ -1022,6 +1029,8 @@ static void atmci_stop_transfer_dma(struct atmel_mci *host)
+@@ -1024,6 +1031,8 @@ static void atmci_stop_transfer_dma(stru
                atmci_dma_cleanup(host);
        } else {
                /* Data transfer was stopped by the interrupt handler */
@@ -59,7 +57,7 @@ index 5fe8300..420aca6 100644
                atmci_set_pending(host, EVENT_XFER_COMPLETE);
                atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY);
        }
-@@ -1049,6 +1058,8 @@ static void atmci_start_request(struct atmel_mci *host,
+@@ -1051,6 +1060,8 @@ static void atmci_start_request(struct a
        host->cmd_status = 0;
        host->data_status = 0;
  
@@ -68,7 +66,7 @@ index 5fe8300..420aca6 100644
        if (host->need_reset || host->caps.need_reset_after_xfer) {
                iflags = atmci_readl(host, ATMCI_IMR);
                iflags &= (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB);
-@@ -1129,6 +1140,7 @@ static void atmci_queue_request(struct atmel_mci *host,
+@@ -1131,6 +1142,7 @@ static void atmci_queue_request(struct a
                host->state = STATE_SENDING_CMD;
                atmci_start_request(host, slot);
        } else {
@@ -76,7 +74,7 @@ index 5fe8300..420aca6 100644
                list_add_tail(&slot->queue_node, &host->queue);
        }
        spin_unlock_bh(&host->lock);
-@@ -1141,6 +1153,7 @@ static void atmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
+@@ -1143,6 +1155,7 @@ static void atmci_request(struct mmc_hos
        struct mmc_data         *data;
  
        WARN_ON(slot->mrq);
@@ -84,7 +82,7 @@ index 5fe8300..420aca6 100644
  
        /*
         * We may "know" the card is gone even though there's still an
-@@ -1530,6 +1543,7 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1532,6 +1545,7 @@ static void atmci_tasklet_func(unsigned
  
        do {
                prev_state = state;
@@ -92,7 +90,7 @@ index 5fe8300..420aca6 100644
  
                switch (state) {
                case STATE_IDLE:
-@@ -1542,14 +1556,18 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1544,14 +1558,18 @@ static void atmci_tasklet_func(unsigned
                         * END_REQUEST by default, WAITING_NOTBUSY if it's a
                         * command needing it or DATA_XFER if there is data.
                         */
@@ -111,7 +109,7 @@ index 5fe8300..420aca6 100644
                                /*
                                 * If there is a command error don't start
                                 * data transfer.
-@@ -1564,6 +1582,8 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1566,6 +1584,8 @@ static void atmci_tasklet_func(unsigned
                                } else
                                        state = STATE_DATA_XFER;
                        } else if ((!mrq->data) && (mrq->cmd->flags & MMC_RSP_BUSY)) {
@@ -120,7 +118,7 @@ index 5fe8300..420aca6 100644
                                atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY);
                                state = STATE_WAITING_NOTBUSY;
                        } else
-@@ -1574,6 +1594,7 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1576,6 +1596,7 @@ static void atmci_tasklet_func(unsigned
                case STATE_DATA_XFER:
                        if (atmci_test_and_clear_pending(host,
                                                EVENT_DATA_ERROR)) {
@@ -128,7 +126,7 @@ index 5fe8300..420aca6 100644
                                atmci_set_completed(host, EVENT_DATA_ERROR);
                                state = STATE_END_REQUEST;
                                break;
-@@ -1586,10 +1607,14 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1588,10 +1609,14 @@ static void atmci_tasklet_func(unsigned
                         * to the next step which is WAITING_NOTBUSY in write
                         * case and directly SENDING_STOP in read case.
                         */
@@ -143,7 +141,7 @@ index 5fe8300..420aca6 100644
                        atmci_set_completed(host, EVENT_XFER_COMPLETE);
  
                        if (host->data->flags & MMC_DATA_WRITE) {
-@@ -1614,10 +1639,12 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1616,10 +1641,12 @@ static void atmci_tasklet_func(unsigned
                         * included) or a write operation. In the latest case,
                         * we need to send a stop command.
                         */
@@ -156,7 +154,7 @@ index 5fe8300..420aca6 100644
                        atmci_set_completed(host, EVENT_NOTBUSY);
  
                        if (host->data) {
-@@ -1649,10 +1676,12 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1651,10 +1678,12 @@ static void atmci_tasklet_func(unsigned
                         * in order to go to the end request state instead of
                         * sending stop again.
                         */
@@ -169,7 +167,7 @@ index 5fe8300..420aca6 100644
                        host->cmd = NULL;
                        host->data = NULL;
                        data->bytes_xfered = data->blocks * data->blksz;
-@@ -1858,18 +1887,21 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1864,18 +1893,21 @@ static irqreturn_t atmci_interrupt(int i
                        break;
  
                if (pending & ATMCI_DATA_ERROR_FLAGS) {
@@ -191,7 +189,7 @@ index 5fe8300..420aca6 100644
                        atmci_writel(host, ATMCI_IDR, ATMCI_TXBUFE);
                        atmci_writel(host, ATMCI_IDR, ATMCI_ENDTX);
                        /*
-@@ -1885,6 +1917,7 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1891,6 +1923,7 @@ static irqreturn_t atmci_interrupt(int i
                                atmci_pdc_complete(host);
                        }
                } else if (pending & ATMCI_ENDTX) {
@@ -199,7 +197,7 @@ index 5fe8300..420aca6 100644
                        atmci_writel(host, ATMCI_IDR, ATMCI_ENDTX);
  
                        if (host->data_size) {
-@@ -1895,6 +1928,7 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1901,6 +1934,7 @@ static irqreturn_t atmci_interrupt(int i
                }
  
                if (pending & ATMCI_RXBUFF) {
@@ -207,7 +205,7 @@ index 5fe8300..420aca6 100644
                        atmci_writel(host, ATMCI_IDR, ATMCI_RXBUFF);
                        atmci_writel(host, ATMCI_IDR, ATMCI_ENDRX);
                        /*
-@@ -1910,6 +1944,7 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1916,6 +1950,7 @@ static irqreturn_t atmci_interrupt(int i
                                atmci_pdc_complete(host);
                        }
                } else if (pending & ATMCI_ENDRX) {
@@ -215,7 +213,7 @@ index 5fe8300..420aca6 100644
                        atmci_writel(host, ATMCI_IDR, ATMCI_ENDRX);
  
                        if (host->data_size) {
-@@ -1926,15 +1961,19 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1932,15 +1967,19 @@ static irqreturn_t atmci_interrupt(int i
                 * The appropriate workaround is to use the BLKE signal.
                 */
                if (pending & ATMCI_BLKE) {
@@ -235,7 +233,7 @@ index 5fe8300..420aca6 100644
                        atmci_set_pending(host, EVENT_NOTBUSY);
                        tasklet_schedule(&host->tasklet);
                }
-@@ -1945,9 +1984,11 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
+@@ -1951,9 +1990,11 @@ static irqreturn_t atmci_interrupt(int i
                        atmci_write_data_pio(host);
  
                if (pending & ATMCI_CMDRDY) {
@@ -247,6 +245,3 @@ index 5fe8300..420aca6 100644
                        atmci_set_pending(host, EVENT_CMD_RDY);
                        tasklet_schedule(&host->tasklet);
                }
--- 
-1.8.0.197.g5a90748
-
index c0b180649138247169b70e9dd62cd3d0824b06f2..d37b53ba33286ddb622e16de4ed91df5e4dea2fa 100644 (file)
@@ -11,14 +11,12 @@ non setup timer.
 
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 ---
- drivers/mmc/host/atmel-mci.c | 4 ++--
+ drivers/mmc/host/atmel-mci.c |    4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 420aca6..456c077 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -2314,6 +2314,8 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2320,6 +2320,8 @@ static int __init atmci_probe(struct pla
  
        platform_set_drvdata(pdev, host);
  
@@ -27,7 +25,7 @@ index 420aca6..456c077 100644
        /* We need at least one slot to succeed */
        nr_slots = 0;
        ret = -ENODEV;
-@@ -2352,8 +2354,6 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2358,8 +2360,6 @@ static int __init atmci_probe(struct pla
                }
        }
  
@@ -36,6 +34,3 @@ index 420aca6..456c077 100644
        dev_info(&pdev->dev,
                        "Atmel MCI controller at 0x%08lx irq %d, %u slots\n",
                        host->mapbase, irq, nr_slots);
--- 
-1.8.0.197.g5a90748
-
index ae5d93b2b61ae577a697ec11845ae117ae62c4a3..7179959c8bc5aadc01a589dec3b07653ed1b063c 100644 (file)
@@ -11,12 +11,10 @@ Modify atmel-mci slave driver to use this specification on its side.
 
 Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
 ---
- drivers/mmc/host/atmel-mci-regs.h | 14 ++++++++++++++
- drivers/mmc/host/atmel-mci.c      |  8 +++++---
+ drivers/mmc/host/atmel-mci-regs.h |   14 ++++++++++++++
+ drivers/mmc/host/atmel-mci.c      |    8 +++++---
  2 files changed, 19 insertions(+), 3 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci-regs.h b/drivers/mmc/host/atmel-mci-regs.h
-index 787aba1..ab56f7d 100644
 --- a/drivers/mmc/host/atmel-mci-regs.h
 +++ b/drivers/mmc/host/atmel-mci-regs.h
 @@ -140,4 +140,18 @@
@@ -38,11 +36,9 @@ index 787aba1..ab56f7d 100644
 +}
 +
  #endif /* __DRIVERS_MMC_ATMEL_MCI_H__ */
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 456c077..f2c115e 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -910,6 +910,7 @@ atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
+@@ -912,6 +912,7 @@ atmci_prepare_data_dma(struct atmel_mci
        enum dma_data_direction         direction;
        enum dma_transfer_direction     slave_dirn;
        unsigned int                    sglen;
@@ -50,7 +46,7 @@ index 456c077..f2c115e 100644
        u32 iflags;
  
        data->error = -EINPROGRESS;
-@@ -943,17 +944,18 @@ atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
+@@ -945,17 +946,18 @@ atmci_prepare_data_dma(struct atmel_mci
        if (!chan)
                return -ENODEV;
  
@@ -72,6 +68,3 @@ index 456c077..f2c115e 100644
        sglen = dma_map_sg(chan->device->dev, data->sg,
                        data->sg_len, direction);
  
--- 
-1.8.0.197.g5a90748
-
index 924cbbc3d4d429cfac5dbc14898d98896dd027ed..807af7b61eea94eeb291919f163ccab2a558f70d 100644 (file)
@@ -7,14 +7,11 @@ commit e919fd200033e80b26f152d22c00a8fae7f8d548 upstream.
 
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 ---
.../devicetree/bindings/mmc/atmel-hsmci.txt        | 67 +++++++++++++++++
- drivers/mmc/host/atmel-mci.c                       | 85 +++++++++++++++++++++-
Documentation/devicetree/bindings/mmc/atmel-hsmci.txt |   67 ++++++++++++++
+ drivers/mmc/host/atmel-mci.c                          |   85 +++++++++++++++++-
  2 files changed, 150 insertions(+), 2 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/mmc/atmel-hsmci.txt
 
-diff --git a/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt b/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt
-new file mode 100644
-index 0000000..81c20cc
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mmc/atmel-hsmci.txt
 @@ -0,0 +1,67 @@
@@ -85,8 +82,6 @@ index 0000000..81c20cc
 +              bus-width = <4>;
 +      };
 +};
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index f2c115e..47421fc 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
 @@ -19,6 +19,9 @@
@@ -99,7 +94,7 @@ index f2c115e..47421fc 100644
  #include <linux/platform_device.h>
  #include <linux/scatterlist.h>
  #include <linux/seq_file.h>
-@@ -493,6 +496,70 @@ err:
+@@ -494,6 +497,70 @@ err:
        dev_err(&mmc->class_dev, "failed to initialize debugfs for slot\n");
  }
  
@@ -170,7 +165,7 @@ index f2c115e..47421fc 100644
  static inline unsigned int atmci_get_version(struct atmel_mci *host)
  {
        return atmci_readl(host, ATMCI_VERSION) & 0x00000fff;
-@@ -2038,6 +2105,13 @@ static int __init atmci_init_slot(struct atmel_mci *host,
+@@ -2044,6 +2111,13 @@ static int __init atmci_init_slot(struct
        slot->sdc_reg = sdc_reg;
        slot->sdio_irq = sdio_irq;
  
@@ -184,7 +179,7 @@ index f2c115e..47421fc 100644
        mmc->ops = &atmci_ops;
        mmc->f_min = DIV_ROUND_UP(host->bus_hz, 512);
        mmc->f_max = host->bus_hz / 2;
-@@ -2258,8 +2332,14 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2264,8 +2338,14 @@ static int __init atmci_probe(struct pla
        if (!regs)
                return -ENXIO;
        pdata = pdev->dev.platform_data;
@@ -201,7 +196,7 @@ index f2c115e..47421fc 100644
        irq = platform_get_irq(pdev, 0);
        if (irq < 0)
                return irq;
-@@ -2477,6 +2557,7 @@ static struct platform_driver atmci_driver = {
+@@ -2481,6 +2561,7 @@ static struct platform_driver atmci_driv
        .driver         = {
                .name           = "atmel_mci",
                .pm             = ATMCI_PM_OPS,
@@ -209,6 +204,3 @@ index f2c115e..47421fc 100644
        },
  };
  
--- 
-1.8.0.197.g5a90748
-
index 30391ce3aefb4eddee63a0ccb4cfd5ab04c6210e..b9b590429477021178f9f8d77417028cc30d0088 100644 (file)
@@ -8,14 +8,12 @@ performed in DMA-only functions: so remove it.
 
 Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
 ---
- drivers/mmc/host/atmel-mci.c | 5 ++---
+ drivers/mmc/host/atmel-mci.c |    5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 47421fc..7d9812c 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -834,9 +834,8 @@ static void atmci_dma_complete(void *arg)
+@@ -835,9 +835,8 @@ static void atmci_dma_complete(void *arg
  
        dev_vdbg(&host->pdev->dev, "DMA complete\n");
  
@@ -27,6 +25,3 @@ index 47421fc..7d9812c 100644
  
        atmci_dma_cleanup(host);
  
--- 
-1.8.0.197.g5a90748
-
diff --git a/patches.at91/0163-mmc-atmel-mci-remove-the-need-for-CONFIG_MMC_ATMELMC.patch b/patches.at91/0163-mmc-atmel-mci-remove-the-need-for-CONFIG_MMC_ATMELMC.patch
deleted file mode 100644 (file)
index 80219a5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From 85edd366befdc9eed99473da3ad3f5a8a325c085 Mon Sep 17 00:00:00 2001
-From: Nicolas Ferre <nicolas.ferre@atmel.com>
-Date: Thu, 15 Mar 2012 14:28:58 +0100
-Subject: mmc: atmel-mci: remove the need for CONFIG_MMC_ATMELMCI_DMA
-
-This Kconfig option is not needed anymore, so remove it.
-
-Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
-Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
-
-Conflicts:
-
-       drivers/mmc/host/Kconfig
----
- drivers/mmc/host/Kconfig     | 10 ----------
- drivers/mmc/host/atmel-mci.c |  2 --
- 2 files changed, 12 deletions(-)
-
-diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
-index 2bc06e7..dbdd907 100644
---- a/drivers/mmc/host/Kconfig
-+++ b/drivers/mmc/host/Kconfig
-@@ -297,16 +297,6 @@ config MMC_ATMELMCI
- endchoice
--config MMC_ATMELMCI_DMA
--      bool "Atmel MCI DMA support"
--      depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE
--      help
--        Say Y here to have the Atmel MCI driver use a DMA engine to
--        do data transfers and thus increase the throughput and
--        reduce the CPU utilization.
--
--        If unsure, say N.
--
- config MMC_IMX
-       tristate "Motorola i.MX Multimedia Card Interface support"
-       depends on ARCH_MX1
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 7d9812c..cc81ef8 100644
---- a/drivers/mmc/host/atmel-mci.c
-+++ b/drivers/mmc/host/atmel-mci.c
-@@ -2476,10 +2476,8 @@ static int __exit atmci_remove(struct platform_device *pdev)
-       atmci_readl(host, ATMCI_SR);
-       clk_disable(host->mck);
--#ifdef CONFIG_MMC_ATMELMCI_DMA
-       if (host->dma.chan)
-               dma_release_channel(host->dma.chan);
--#endif
-       free_irq(platform_get_irq(pdev, 0), host);
-       iounmap(host->regs);
--- 
-1.8.0.197.g5a90748
-
index fd1508c08071779c228600270691f7dc9504645b..d1c088653cb2cdb99f441d2a97f7f4a5da3d58a9 100644 (file)
@@ -5,15 +5,13 @@ Subject: ARM: dts: fix add mmc irq priority
 
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 ---
- arch/arm/boot/dts/at91sam9260.dtsi | 2 +-
- arch/arm/boot/dts/at91sam9263.dtsi | 4 ++--
- arch/arm/boot/dts/at91sam9g45.dtsi | 4 ++--
- arch/arm/boot/dts/at91sam9n12.dtsi | 2 +-
- arch/arm/boot/dts/at91sam9x5.dtsi  | 4 ++--
+ arch/arm/boot/dts/at91sam9260.dtsi |    2 +-
+ arch/arm/boot/dts/at91sam9263.dtsi |    4 ++--
+ arch/arm/boot/dts/at91sam9g45.dtsi |    4 ++--
+ arch/arm/boot/dts/at91sam9n12.dtsi |    2 +-
+ arch/arm/boot/dts/at91sam9x5.dtsi  |    4 ++--
  5 files changed, 8 insertions(+), 8 deletions(-)
 
-diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
-index 1f2c7d0..8d95e83c 100644
 --- a/arch/arm/boot/dts/at91sam9260.dtsi
 +++ b/arch/arm/boot/dts/at91sam9260.dtsi
 @@ -205,7 +205,7 @@
@@ -25,8 +23,6 @@ index 1f2c7d0..8d95e83c 100644
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
-diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
-index a76f6cd..54e6984 100644
 --- a/arch/arm/boot/dts/at91sam9263.dtsi
 +++ b/arch/arm/boot/dts/at91sam9263.dtsi
 @@ -189,7 +189,7 @@
@@ -47,8 +43,6 @@ index a76f6cd..54e6984 100644
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
-diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
-index 4b833d4..da135f9 100644
 --- a/arch/arm/boot/dts/at91sam9g45.dtsi
 +++ b/arch/arm/boot/dts/at91sam9g45.dtsi
 @@ -209,7 +209,7 @@
@@ -69,8 +63,6 @@ index 4b833d4..da135f9 100644
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
-diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
-index aead257..42d5fc2 100644
 --- a/arch/arm/boot/dts/at91sam9n12.dtsi
 +++ b/arch/arm/boot/dts/at91sam9n12.dtsi
 @@ -85,7 +85,7 @@
@@ -82,8 +74,6 @@ index aead257..42d5fc2 100644
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
-diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
-index 1be3df7..ad7016a 100644
 --- a/arch/arm/boot/dts/at91sam9x5.dtsi
 +++ b/arch/arm/boot/dts/at91sam9x5.dtsi
 @@ -199,7 +199,7 @@
@@ -104,6 +94,3 @@ index 1be3df7..ad7016a 100644
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
--- 
-1.8.0.197.g5a90748
-
index 9f4e1c60153c07b604b860aa878db8839c888daf..5d5dad22a247b0bac17480ca7bde4db4fe240a54 100644 (file)
@@ -10,14 +10,12 @@ Derived from a patch by Jaehoon Chung on dw_mmc.
 
 Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
 ---
- drivers/mmc/host/atmel-mci.c | 3 +++
+ drivers/mmc/host/atmel-mci.c |    3 +++
  1 file changed, 3 insertions(+)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index cc81ef8..b626d1e 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -1261,6 +1261,9 @@ static void atmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
+@@ -1263,6 +1263,9 @@ static void atmci_set_ios(struct mmc_hos
        case MMC_BUS_WIDTH_4:
                slot->sdc_reg |= ATMCI_SDCBUS_4BIT;
                break;
@@ -27,6 +25,3 @@ index cc81ef8..b626d1e 100644
        }
  
        if (ios->clock) {
--- 
-1.8.0.197.g5a90748
-
index b85fb88ca23348054b811060e200b92fdf331f60..8bbc763c79d77e88dd75b54a98ecbda03d09abaf 100644 (file)
@@ -14,14 +14,12 @@ Idea taken form dw_mmc by Seungwon Jeon.
 Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
 Cc: Seungwon Jeon <tgih.jun@samsung.com>
 ---
- drivers/mmc/host/atmel-mci.c | 2 +-
+ drivers/mmc/host/atmel-mci.c |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index b626d1e..90df83b 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -1754,7 +1754,6 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1756,7 +1756,6 @@ static void atmci_tasklet_func(unsigned
  
                        dev_dbg(&host->pdev->dev, "FSM: cmd ready\n");
                        host->cmd = NULL;
@@ -29,7 +27,7 @@ index b626d1e..90df83b 100644
                        data->bytes_xfered = data->blocks * data->blksz;
                        data->error = 0;
                        atmci_command_complete(host, mrq->stop);
-@@ -1768,6 +1767,7 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1770,6 +1769,7 @@ static void atmci_tasklet_func(unsigned
                                atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY);
                                state = STATE_WAITING_NOTBUSY;
                        }
@@ -37,6 +35,3 @@ index b626d1e..90df83b 100644
                        break;
  
                case STATE_END_REQUEST:
--- 
-1.8.0.197.g5a90748
-
index ef4ca6dc5a9af59e3639d561867227c88442e1f8..554da8c3b81e965971e77e626c9344acf5f2c7da 100644 (file)
@@ -11,14 +11,12 @@ Is using the has_odd_clk_div property to choose the proper format.
 
 Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
 ---
- drivers/mmc/host/atmel-mci.c | 12 +++++++++---
+ drivers/mmc/host/atmel-mci.c |   12 +++++++++---
  1 file changed, 9 insertions(+), 3 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 90df83b..e03367c 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -394,11 +394,17 @@ static int atmci_regs_show(struct seq_file *s, void *v)
+@@ -395,11 +395,17 @@ static int atmci_regs_show(struct seq_fi
        clk_disable(host->mck);
        spin_unlock_bh(&host->lock);
  
@@ -39,6 +37,3 @@ index 90df83b..e03367c 100644
        seq_printf(s, "DTOR:\t0x%08x\n", buf[ATMCI_DTOR / 4]);
        seq_printf(s, "SDCR:\t0x%08x\n", buf[ATMCI_SDCR / 4]);
        seq_printf(s, "ARGR:\t0x%08x\n", buf[ATMCI_ARGR / 4]);
--- 
-1.8.0.197.g5a90748
-
index a1d51680cc1b12dedd5d1698c3961a17d74c887f..f1879a98cefc9adcefdde749123d106d7eac801a 100644 (file)
@@ -12,11 +12,9 @@ hang-up during some SD card initialization.
 
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 ---
- drivers/mmc/host/atmel-mci.c | 6 +++++-
+ drivers/mmc/host/atmel-mci.c |    6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 05a293e..3d9c7b8 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
 @@ -84,6 +84,7 @@ struct atmel_mci_caps {
@@ -27,7 +25,7 @@ index 05a293e..3d9c7b8 100644
  };
  
  struct atmel_mci_dma {
-@@ -1694,7 +1695,8 @@ static void atmci_tasklet_func(unsigned long priv)
+@@ -1696,7 +1697,8 @@ static void atmci_tasklet_func(unsigned
                                __func__);
                        atmci_set_completed(host, EVENT_XFER_COMPLETE);
  
@@ -37,7 +35,7 @@ index 05a293e..3d9c7b8 100644
                                atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY);
                                state = STATE_WAITING_NOTBUSY;
                        } else if (host->mrq->stop) {
-@@ -2294,6 +2296,7 @@ static void __init atmci_get_cap(struct atmel_mci *host)
+@@ -2300,6 +2302,7 @@ static void __init atmci_get_cap(struct
        host->caps.has_bad_data_ordering = 1;
        host->caps.need_reset_after_xfer = 1;
        host->caps.need_blksz_mul_4 = 1;
@@ -45,7 +43,7 @@ index 05a293e..3d9c7b8 100644
  
        /* keep only major version number */
        switch (version & 0xf00) {
-@@ -2314,6 +2317,7 @@ static void __init atmci_get_cap(struct atmel_mci *host)
+@@ -2320,6 +2323,7 @@ static void __init atmci_get_cap(struct
        case 0x200:
                host->caps.has_rwproof = 1;
                host->caps.need_blksz_mul_4 = 0;
@@ -53,6 +51,3 @@ index 05a293e..3d9c7b8 100644
        case 0x100:
                host->caps.has_bad_data_ordering = 0;
                host->caps.need_reset_after_xfer = 0;
--- 
-1.8.0.197.g5a90748
-
index 43815eae47d2271e0769ee21f076329a1ba912da..e58fd8396d4467dc2fa7be2077b0c05c91d27ab2 100644 (file)
@@ -5,11 +5,9 @@ Subject: mmc: at91: add pinctrl
 
 Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
 ---
- drivers/mmc/host/atmel-mci.c | 36 ++++++++++++++++++++++++++++++------
+ drivers/mmc/host/atmel-mci.c |   36 ++++++++++++++++++++++++++++++------
  1 file changed, 30 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 3d9c7b8..9739604 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
 @@ -28,6 +28,7 @@
@@ -20,7 +18,7 @@ index 3d9c7b8..9739604 100644
  
  #include <linux/mmc/host.h>
  #include <linux/mmc/sdio.h>
-@@ -2154,12 +2155,20 @@ static int __init atmci_init_slot(struct atmel_mci *host,
+@@ -2160,12 +2161,20 @@ static int __init atmci_init_slot(struct
        /* Assume card is present initially */
        set_bit(ATMCI_CARD_PRESENT, &slot->flags);
        if (gpio_is_valid(slot->detect_pin)) {
@@ -46,7 +44,7 @@ index 3d9c7b8..9739604 100644
                }
        }
  
-@@ -2167,9 +2176,17 @@ static int __init atmci_init_slot(struct atmel_mci *host,
+@@ -2173,9 +2182,17 @@ static int __init atmci_init_slot(struct
                mmc->caps |= MMC_CAP_NEEDS_POLL;
  
        if (gpio_is_valid(slot->wp_pin)) {
@@ -65,7 +63,7 @@ index 3d9c7b8..9739604 100644
                }
        }
  
-@@ -2339,6 +2356,7 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2345,6 +2362,7 @@ static int __init atmci_probe(struct pla
        unsigned int                    nr_slots;
        int                             irq;
        int                             ret;
@@ -73,7 +71,7 @@ index 3d9c7b8..9739604 100644
  
        regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!regs)
-@@ -2352,6 +2370,12 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2358,6 +2376,12 @@ static int __init atmci_probe(struct pla
                }
        }
  
@@ -86,6 +84,3 @@ index 3d9c7b8..9739604 100644
        irq = platform_get_irq(pdev, 0);
        if (irq < 0)
                return irq;
--- 
-1.8.0.197.g5a90748
-
index eb4eadc6e311f4444673acfbb85fd48e11181659..d120881d3806eab40885ff29c002d6304af3a911 100644 (file)
@@ -8,14 +8,12 @@ that links to the corresponding DMA controller.
 
 Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
 ---
- drivers/mmc/host/atmel-mci.c | 82 ++++++++++++++++++++++++++++++++++++++++----
+ drivers/mmc/host/atmel-mci.c |   82 +++++++++++++++++++++++++++++++++++++++----
  1 file changed, 75 insertions(+), 7 deletions(-)
 
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 9739604..17dc598 100644
 --- a/drivers/mmc/host/atmel-mci.c
 +++ b/drivers/mmc/host/atmel-mci.c
-@@ -512,12 +512,65 @@ static const struct of_device_id atmci_dt_ids[] = {
+@@ -513,12 +513,65 @@ static const struct of_device_id atmci_d
  
  MODULE_DEVICE_TABLE(of, atmci_dt_ids);
  
@@ -81,7 +79,7 @@ index 9739604..17dc598 100644
        u32 slot_id;
  
        if (!np) {
-@@ -531,6 +584,24 @@ atmci_of_init(struct platform_device *pdev)
+@@ -532,6 +585,24 @@ atmci_of_init(struct platform_device *pd
                return ERR_PTR(-ENOMEM);
        }
  
@@ -106,7 +104,7 @@ index 9739604..17dc598 100644
        for_each_child_of_node(np, cnp) {
                if (of_property_read_u32(cnp, "reg", &slot_id)) {
                        dev_warn(&pdev->dev, "reg property is missing for %s\n",
-@@ -2253,16 +2324,13 @@ static bool atmci_filter(struct dma_chan *chan, void *slave)
+@@ -2259,16 +2330,13 @@ static bool atmci_filter(struct dma_chan
        }
  }
  
@@ -126,7 +124,7 @@ index 9739604..17dc598 100644
                dma_cap_mask_t mask;
  
                /* Try to grab a DMA channel */
-@@ -2414,7 +2482,7 @@ static int __init atmci_probe(struct platform_device *pdev)
+@@ -2420,7 +2488,7 @@ static int __init atmci_probe(struct pla
  
        /* Get MCI capabilities and set operations according to it */
        atmci_get_cap(host);
@@ -135,6 +133,3 @@ index 9739604..17dc598 100644
                host->prepare_data = &atmci_prepare_data_dma;
                host->submit_data = &atmci_submit_data_dma;
                host->stop_transfer = &atmci_stop_transfer_dma;
--- 
-1.8.0.197.g5a90748
-
index 9aaf30fe454fa220073e1132708c206b8db5e018..b9024307d175803ec6cae33b4df9a726b6441562 100644 (file)
@@ -77,4 +77,3 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
        CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */
        CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */
        CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */
-
index 5ea9effdb2ed9882245af9c6205f10ddba609185..efadaafa2d94e575a04d22eaeea1d5bcf2d7a1cd 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 @@ -1,7 +1,7 @@
  VERSION = 3
  PATCHLEVEL = 4
- SUBLEVEL = 39
+ SUBLEVEL = 46
 -EXTRAVERSION =
 +EXTRAVERSION = -ltsi
  NAME = Saber-toothed Squirrel
diff --git a/series b/series
index 429fc322097bf67a4ea77944cedf2759379339c2..3edc5783de29bd1f5d43a17383c4b23bb7e7c871 100644 (file)
--- a/series
+++ b/series
@@ -594,7 +594,6 @@ patches.at91/0159-ARM-dts-add-nodes-for-atmel-hsmci-controllers-for-at.patch
 patches.at91/0160-ARM-dts-add-nodes-for-atmel-hsmci-controllers-for-at.patch
 patches.at91/0161-mmc-atmel-mci-remove-not-needed-DMA-capability-test.patch
 patches.at91/0162-ARM-at91-atmel-mci-remove-unused-setup_dma_addr-macr.patch
-patches.at91/0163-mmc-atmel-mci-remove-the-need-for-CONFIG_MMC_ATMELMC.patch
 patches.at91/0164-ARM-dts-fix-add-mmc-irq-priority.patch
 patches.at91/0165-mmc-atmel-mci-support-8-bit-buswidth.patch
 patches.at91/0166-mmc-atmel-mci-fix-incorrect-setting-of-host-data-to-.patch