Skip to content

Commit

Permalink
mmc: atmel-mci: AP700x PDC is not connected to MCI
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Hein_Tibosch authored and Chris Ball committed Oct 3, 2012
1 parent ccdfe61 commit 6bf2af8
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 7 additions & 0 deletions drivers/mmc/host/atmel-mci-regs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion drivers/mmc/host/atmel-mci.c
Original file line number Diff line number Diff line change
Expand Up @@ -2290,7 +2290,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;
Expand Down

0 comments on commit 6bf2af8

Please sign in to comment.