Skip to contentSkip to conversation

mmc: atmel-mci: AP700x PDC is not connected to MCI

PATCH New Hein Tibosch 2 participants 2 messages Aug 26, 2012 – Aug 28, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 2/2 mmc: atmel-mci: AP700x PDC is not connected to MCI

Earlier, atmel-mci was adapter 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.
This patch makes the use of PDC depend on CONFIG_AVR32

---
 drivers/mmc/host/atmel-mci-regs.h |    7 +++++++
 drivers/mmc/host/atmel-mci.c      |    2 +-
 2 files changed, 8 insertions(+), 1 deletions(-)
drivers/mmc/host/atmel-mci-regs.h +7 -0
index ab56f7d..c97001e 100644
@@ -140,6 +140,13 @@
 #define atmci_writel(port,reg,value)			\
 	__raw_writel((value), (port)->regs + reg)
 
+/* On AVR chips the Peripheral DMA Controller is not connected to MCI. */
+#ifdef CONFIG_AVR32
+#	define ATMCI_PDC_CONNECTED	0
+#else
+#	define ATMCI_PDC_CONNECTED	1
+#endif
+
 /*
  * Fix sconfig's burst size according to atmel MCI. We need to convert them as:
  * 1 -> 0, 4 -> 1, 8 -> 2, 16 -> 3.
drivers/mmc/host/atmel-mci.c +1 -1
index 66e9fdc..702ab5c 100644
@@ -2205,7 +2205,7 @@ static void __init atmci_get_cap(struct atmel_mci *host)
 			"version: 0x%x\n", version);
 
 	host->caps.has_dma_conf_reg = 0;
-	host->caps.has_pdc = 1;
+	host->caps.has_pdc = ATMCI_PDC_CONNECTED;
 	host->caps.has_cfg_reg = 0;
 	host->caps.has_cstor_reg = 0;
 	host->caps.has_highspeed = 0;
Signature · 1 line
1.7.8.0
#1 lore raw

PATCH 2/2 mmc: atmel-mci: AP700x PDC is not connected to MCI

Hi Hein,

Le 08/26/2012 10:22 PM, Hein Tibosch a ?crit :

Quoted 6 lines

Earlier, atmel-mci was adapter 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.
This patch makes the use of PDC depend on CONFIG_AVR32

I think you should explain explicitly that even if the MCI has PDC support, the connection is not done for AVR chips.

Otherwise you can add

Thanks for the patch.

Regards

Ludovic

Quoted 40 lines
---
  drivers/mmc/host/atmel-mci-regs.h |    7 +++++++
  drivers/mmc/host/atmel-mci.c      |    2 +-
  2 files changed, 8 insertions(+), 1 deletions(-)
drivers/mmc/host/atmel-mci-regs.h +7 -0
index ab56f7d..c97001e 100644
@@ -140,6 +140,13 @@
  #define atmci_writel(port,reg,value)			\
  	__raw_writel((value), (port)->regs + reg)
 
+/* On AVR chips the Peripheral DMA Controller is not connected to MCI. */
+#ifdef CONFIG_AVR32
+#	define ATMCI_PDC_CONNECTED	0
+#else
+#	define ATMCI_PDC_CONNECTED	1
+#endif
+
  /*
   * Fix sconfig's burst size according to atmel MCI. We need to convert them as:
   * 1 -> 0, 4 -> 1, 8 -> 2, 16 -> 3.
drivers/mmc/host/atmel-mci.c +1 -1
index 66e9fdc..702ab5c 100644
@@ -2205,7 +2205,7 @@ static void __init atmci_get_cap(struct atmel_mci *host)
  			"version: 0x%x\n", version);
 
  	host->caps.has_dma_conf_reg = 0;
-	host->caps.has_pdc = 1;
+	host->caps.has_pdc = ATMCI_PDC_CONNECTED;
  	host->caps.has_cfg_reg = 0;
  	host->caps.has_cstor_reg = 0;
  	host->caps.has_highspeed = 0;