aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHein_Tibosch <hein_tibosch@yahoo.es>2012-08-30 12:34:27 -0400
committerChris Ball <cjb@laptop.org>2012-10-03 10:05:23 -0400
commit6bf2af8cd2cb35f6098953a33b9a160a4ca0b626 (patch)
treee1a4b117355ce6b8148c2778085843af6b903cd6
parentccdfe6122f61b40592820d48b4cde021295418a0 (diff)
mmc: atmel-mci: AP700x PDC is not connected to MCI
Earlier, atmel-mci was adapted to make use of the peripheral DMA controller (PDC), in case normal DMA wouldn't work. ( http://comments.gmane.org/gmane.linux.kernel.mmc/9403 ) This works OK on ARM platforms (AT91), but it broke the driver for AVR32, the AP700x. Although the MCI has PDC support, the connection is not done for AVR chips. This patch makes the use of PDC depend on !CONFIG_AVR32. Signed-off-by: Hein Tibosch <hein_tibosch@yahoo.es> Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r--drivers/mmc/host/atmel-mci-regs.h7
-rw-r--r--drivers/mmc/host/atmel-mci.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/mmc/host/atmel-mci-regs.h b/drivers/mmc/host/atmel-mci-regs.h
index ab56f7db5315..c97001e15227 100644
--- a/drivers/mmc/host/atmel-mci-regs.h
+++ b/drivers/mmc/host/atmel-mci-regs.h
@@ -140,6 +140,13 @@
140#define atmci_writel(port,reg,value) \ 140#define atmci_writel(port,reg,value) \
141 __raw_writel((value), (port)->regs + reg) 141 __raw_writel((value), (port)->regs + reg)
142 142
143/* On AVR chips the Peripheral DMA Controller is not connected to MCI. */
144#ifdef CONFIG_AVR32
145# define ATMCI_PDC_CONNECTED 0
146#else
147# define ATMCI_PDC_CONNECTED 1
148#endif
149
143/* 150/*
144 * Fix sconfig's burst size according to atmel MCI. We need to convert them as: 151 * Fix sconfig's burst size according to atmel MCI. We need to convert them as:
145 * 1 -> 0, 4 -> 1, 8 -> 2, 16 -> 3. 152 * 1 -> 0, 4 -> 1, 8 -> 2, 16 -> 3.
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 6823d963376e..312c8fd6e6d5 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -2290,7 +2290,7 @@ static void __init atmci_get_cap(struct atmel_mci *host)
2290 "version: 0x%x\n", version); 2290 "version: 0x%x\n", version);
2291 2291
2292 host->caps.has_dma_conf_reg = 0; 2292 host->caps.has_dma_conf_reg = 0;
2293 host->caps.has_pdc = 1; 2293 host->caps.has_pdc = ATMCI_PDC_CONNECTED;
2294 host->caps.has_cfg_reg = 0; 2294 host->caps.has_cfg_reg = 0;
2295 host->caps.has_cstor_reg = 0; 2295 host->caps.has_cstor_reg = 0;
2296 host->caps.has_highspeed = 0; 2296 host->caps.has_highspeed = 0;