diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-05-21 12:28:20 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-05-21 12:28:20 -0700 |
commit | 91d1193e34564f3d5100e701f7c352e9ab23ad6d (patch) | |
tree | e0c220c0982e26ce44a2463682d98ca0c648e9ef | |
parent | 65311d813461295c85f338d99de7c7b8fcccbb9b (diff) | |
download | ltsi-kernel-91d1193e34564f3d5100e701f7c352e9ab23ad6d.tar.gz |
Update to 3.4.46 kernel release
20 files changed, 106 insertions, 253 deletions
diff --git a/KERNEL_VERSION b/KERNEL_VERSION index 1ded3663d3ef3f..d794598181ccf9 100644 --- a/KERNEL_VERSION +++ b/KERNEL_VERSION @@ -1 +1 @@ -3.4.39 +3.4.46 diff --git a/patches.at91/0149-mmc-atmel-mci-the-r-w-proof-capability-lack-was-not-.patch b/patches.at91/0149-mmc-atmel-mci-the-r-w-proof-capability-lack-was-not-.patch index 109ea46ca18aa3..e072178c0ce15c 100644 --- a/patches.at91/0149-mmc-atmel-mci-the-r-w-proof-capability-lack-was-not-.patch +++ b/patches.at91/0149-mmc-atmel-mci-the-r-w-proof-capability-lack-was-not-.patch @@ -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 - diff --git a/patches.at91/0150-mmc-atmel-mci-change-the-state-machine-for-compatibi.patch b/patches.at91/0150-mmc-atmel-mci-change-the-state-machine-for-compatibi.patch index 8ad6ba3c2f7cfb..f1fd37c4be63f1 100644 --- a/patches.at91/0150-mmc-atmel-mci-change-the-state-machine-for-compatibi.patch +++ b/patches.at91/0150-mmc-atmel-mci-change-the-state-machine-for-compatibi.patch @@ -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 - diff --git a/patches.at91/0151-mmc-atmel-mci-add-support-for-version-lower-than-v2x.patch b/patches.at91/0151-mmc-atmel-mci-add-support-for-version-lower-than-v2x.patch index edef5ce6e85042..b28d001fc4faf9 100644 --- a/patches.at91/0151-mmc-atmel-mci-add-support-for-version-lower-than-v2x.patch +++ b/patches.at91/0151-mmc-atmel-mci-add-support-for-version-lower-than-v2x.patch @@ -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 - diff --git a/patches.at91/0152-mmc-atmel-mci-add-debug-logs.patch b/patches.at91/0152-mmc-atmel-mci-add-debug-logs.patch index 5873beb9353544..7ce0adb27dc605 100644 --- a/patches.at91/0152-mmc-atmel-mci-add-debug-logs.patch +++ b/patches.at91/0152-mmc-atmel-mci-add-debug-logs.patch @@ -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 - diff --git a/patches.at91/0153-mmc-atmel-mci-fix-data-timeout-issue.patch b/patches.at91/0153-mmc-atmel-mci-fix-data-timeout-issue.patch index c0b18064913824..d37b53ba33286d 100644 --- a/patches.at91/0153-mmc-atmel-mci-fix-data-timeout-issue.patch +++ b/patches.at91/0153-mmc-atmel-mci-fix-data-timeout-issue.patch @@ -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 - diff --git a/patches.at91/0156-mmc-atmel-mci-fix-burst-chunk-size-modification.patch b/patches.at91/0156-mmc-atmel-mci-fix-burst-chunk-size-modification.patch index ae5d93b2b61ae5..7179959c8bc5aa 100644 --- a/patches.at91/0156-mmc-atmel-mci-fix-burst-chunk-size-modification.patch +++ b/patches.at91/0156-mmc-atmel-mci-fix-burst-chunk-size-modification.patch @@ -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 - diff --git a/patches.at91/0157-mmc-atmel-mci-add-device-tree-support.patch b/patches.at91/0157-mmc-atmel-mci-add-device-tree-support.patch index 924cbbc3d4d429..807af7b61eea94 100644 --- a/patches.at91/0157-mmc-atmel-mci-add-device-tree-support.patch +++ b/patches.at91/0157-mmc-atmel-mci-add-device-tree-support.patch @@ -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 - diff --git a/patches.at91/0161-mmc-atmel-mci-remove-not-needed-DMA-capability-test.patch b/patches.at91/0161-mmc-atmel-mci-remove-not-needed-DMA-capability-test.patch index 30391ce3aefb4e..b9b59042947702 100644 --- a/patches.at91/0161-mmc-atmel-mci-remove-not-needed-DMA-capability-test.patch +++ b/patches.at91/0161-mmc-atmel-mci-remove-not-needed-DMA-capability-test.patch @@ -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 index 80219a538465d1..00000000000000 --- a/patches.at91/0163-mmc-atmel-mci-remove-the-need-for-CONFIG_MMC_ATMELMC.patch +++ /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 - diff --git a/patches.at91/0164-ARM-dts-fix-add-mmc-irq-priority.patch b/patches.at91/0164-ARM-dts-fix-add-mmc-irq-priority.patch index fd1508c0807177..d1c088653cb2cd 100644 --- a/patches.at91/0164-ARM-dts-fix-add-mmc-irq-priority.patch +++ b/patches.at91/0164-ARM-dts-fix-add-mmc-irq-priority.patch @@ -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 - diff --git a/patches.at91/0165-mmc-atmel-mci-support-8-bit-buswidth.patch b/patches.at91/0165-mmc-atmel-mci-support-8-bit-buswidth.patch index 9f4e1c60153c07..5d5dad22a247b0 100644 --- a/patches.at91/0165-mmc-atmel-mci-support-8-bit-buswidth.patch +++ b/patches.at91/0165-mmc-atmel-mci-support-8-bit-buswidth.patch @@ -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 - diff --git a/patches.at91/0166-mmc-atmel-mci-fix-incorrect-setting-of-host-data-to-.patch b/patches.at91/0166-mmc-atmel-mci-fix-incorrect-setting-of-host-data-to-.patch index b85fb88ca23348..8bbc763c79d77e 100644 --- a/patches.at91/0166-mmc-atmel-mci-fix-incorrect-setting-of-host-data-to-.patch +++ b/patches.at91/0166-mmc-atmel-mci-fix-incorrect-setting-of-host-data-to-.patch @@ -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 - diff --git a/patches.at91/0168-mmc-atmel-mci-modify-CLKDIV-displaying-in-debugfs.patch b/patches.at91/0168-mmc-atmel-mci-modify-CLKDIV-displaying-in-debugfs.patch index ef4ca6dc5a9af5..554da8c3b81e96 100644 --- a/patches.at91/0168-mmc-atmel-mci-modify-CLKDIV-displaying-in-debugfs.patch +++ b/patches.at91/0168-mmc-atmel-mci-modify-CLKDIV-displaying-in-debugfs.patch @@ -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 - diff --git a/patches.at91/0170-mmc-atmel-mci-not-busy-flag-has-also-to-be-used-for-.patch b/patches.at91/0170-mmc-atmel-mci-not-busy-flag-has-also-to-be-used-for-.patch index a1d51680cc1b12..f1879a98cefc9a 100644 --- a/patches.at91/0170-mmc-atmel-mci-not-busy-flag-has-also-to-be-used-for-.patch +++ b/patches.at91/0170-mmc-atmel-mci-not-busy-flag-has-also-to-be-used-for-.patch @@ -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 - diff --git a/patches.at91/0227-mmc-at91-add-pinctrl.patch b/patches.at91/0227-mmc-at91-add-pinctrl.patch index 43815eae47d227..e58fd8396d4467 100644 --- a/patches.at91/0227-mmc-at91-add-pinctrl.patch +++ b/patches.at91/0227-mmc-at91-add-pinctrl.patch @@ -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 - diff --git a/patches.at91/0239-MMC-atmel-mci-add-device-tree-property-for-configura.patch b/patches.at91/0239-MMC-atmel-mci-add-device-tree-property-for-configura.patch index eb4eadc6e311f4..d120881d3806ea 100644 --- a/patches.at91/0239-MMC-atmel-mci-add-device-tree-property-for-configura.patch +++ b/patches.at91/0239-MMC-atmel-mci-add-device-tree-property-for-configura.patch @@ -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 - diff --git a/patches.fixes/arm-shmobile-r8a7779-correct-tmu-clock-support-again.patch b/patches.fixes/arm-shmobile-r8a7779-correct-tmu-clock-support-again.patch index 9aaf30fe454fa2..b9024307d17580 100644 --- a/patches.fixes/arm-shmobile-r8a7779-correct-tmu-clock-support-again.patch +++ b/patches.fixes/arm-shmobile-r8a7779-correct-tmu-clock-support-again.patch @@ -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 */ - diff --git a/patches.ltsi/ltsi-makefile-addition.patch b/patches.ltsi/ltsi-makefile-addition.patch index 5ea9effdb2ed98..efadaafa2d94e5 100644 --- a/patches.ltsi/ltsi-makefile-addition.patch +++ b/patches.ltsi/ltsi-makefile-addition.patch @@ -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 @@ -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 |