summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@stericsson.com>2011-09-30 16:19:52 +0200
committerUlf HANSSON <ulf.hansson@stericsson.com>2011-09-30 16:50:06 +0200
commit839cee8b656a11f7152e6035f03b310c6bcb117b (patch)
tree1f9fe8f4e6bbad25b417a0a4168e974fe1a96c94
parent869e45e50ef2c9ae829d2ad371bae1c048b41f0a (diff)
mach-ux500:u8500: Temporarily disable DMA for mmc and sd
Due to problem with suspend and resume for mmc/sd, directly related to the DMA support in the MMCI driver, we temporarily disable DMA. Change-Id: I92d1090b7190503f4a136be2361495f11215a3ab Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32763
-rw-r--r--arch/arm/mach-ux500/board-mop500-sdi.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c
index e33cc07eca9..b846151b468 100644
--- a/arch/arm/mach-ux500/board-mop500-sdi.c
+++ b/arch/arm/mach-ux500/board-mop500-sdi.c
@@ -56,6 +56,7 @@ static int mop500_sdi0_ios_handler(struct device *dev, struct mmc_ios *ios)
return 0;
}
+#ifdef MMC_SUSPEND_WORKAROUND
#ifdef CONFIG_STE_DMA40
struct stedma40_chan_cfg mop500_sdi0_dma_cfg_rx = {
.mode = STEDMA40_MODE_LOGICAL,
@@ -79,6 +80,7 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = {
.phy_channel = 0,
};
#endif
+#endif
static struct mmci_platform_data mop500_sdi0_data = {
.ios_handler = mop500_sdi0_ios_handler,
@@ -92,11 +94,13 @@ static struct mmci_platform_data mop500_sdi0_data = {
MCI_ST_CMDDIREN |
MCI_ST_DATA0DIREN |
MCI_ST_DATA2DIREN,
+#ifdef MMC_SUSPEND_WORKAROUND
#ifdef CONFIG_STE_DMA40
.dma_filter = stedma40_filter,
.dma_rx_param = &mop500_sdi0_dma_cfg_rx,
.dma_tx_param = &mop500_sdi0_dma_cfg_tx,
#endif
+#endif
};
/*
@@ -178,6 +182,7 @@ void mop500_sdi_tc35892_init(void)
/*
* SDI 2 (POP eMMC, not on DB8500ed)
*/
+#ifdef MMC_SUSPEND_WORKAROUND
#ifdef CONFIG_STE_DMA40
struct stedma40_chan_cfg mop500_sdi2_dma_cfg_rx = {
.mode = STEDMA40_MODE_LOGICAL,
@@ -197,6 +202,7 @@ static struct stedma40_chan_cfg mop500_sdi2_dma_cfg_tx = {
.dst_info.data_width = STEDMA40_WORD_WIDTH,
};
#endif
+#endif
static struct mmci_platform_data mop500_sdi2_data = {
.ocr_mask = MMC_VDD_165_195,
@@ -205,17 +211,20 @@ static struct mmci_platform_data mop500_sdi2_data = {
MMC_CAP_8_BIT_DATA,
.gpio_cd = -1,
.gpio_wp = -1,
+#ifdef MMC_SUSPEND_WORKAROUND
#ifdef CONFIG_STE_DMA40
.dma_filter = stedma40_filter,
.dma_rx_param = &mop500_sdi2_dma_cfg_rx,
.dma_tx_param = &mop500_sdi2_dma_cfg_tx,
#endif
+#endif
};
/*
* SDI 4 (on-board eMMC)
*/
+#ifdef MMC_SUSPEND_WORKAROUND
#ifdef CONFIG_STE_DMA40
struct stedma40_chan_cfg mop500_sdi4_dma_cfg_rx = {
.mode = STEDMA40_MODE_LOGICAL,
@@ -235,6 +244,7 @@ static struct stedma40_chan_cfg mop500_sdi4_dma_cfg_tx = {
.dst_info.data_width = STEDMA40_WORD_WIDTH,
};
#endif
+#endif
static struct mmci_platform_data mop500_sdi4_data = {
.ocr_mask = MMC_VDD_29_30,
@@ -244,11 +254,13 @@ static struct mmci_platform_data mop500_sdi4_data = {
MMC_CAP_MMC_HIGHSPEED,
.gpio_cd = -1,
.gpio_wp = -1,
+#ifdef MMC_SUSPEND_WORKAROUND
#ifdef CONFIG_STE_DMA40
.dma_filter = stedma40_filter,
.dma_rx_param = &mop500_sdi4_dma_cfg_rx,
.dma_tx_param = &mop500_sdi4_dma_cfg_tx,
#endif
+#endif
};
void __init mop500_sdi_init(void)