summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorQuinn Jensen <quinn.jensen@freescale.com>2007-10-24 21:24:53 -0600
committerQuinn Jensen <quinn.jensen@freescale.com>2007-10-24 21:24:53 -0600
commitd8749be38fee07bde24f77bedb122c9c2cdf8377 (patch)
tree1b20169bd60e59eff12fc0b6c28042e7d6ca35b3 /arch
parentb4d071c2e403c2279e9e1b7216e22cdbe12d43c7 (diff)
Bugzilla 771 - Fix pata_fsl libata driver DMA mode
Patch for Bugzilla 771 - Fix pata_fsl libata driver DMA mode. Full sglist DMA working on linux 2.6.22 for MX27/MX31. Not fast enough on MX27, though. MX31 is as fast as the old mxc_ide driver. Writes are unreliable on MX27 TO1. Beyond UDMA3 on MX27 wasn't 100% reliable. http://www.bitshrine.org/gpp/linux-2.6.22-mx-Bugzilla-771-Fix-pata_fsl-libata-driver-DM.patch
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx27/devices.c3
-rw-r--r--arch/arm/mach-mx3/devices.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-mx27/devices.c b/arch/arm/mach-mx27/devices.c
index 202816f62d61..b1ac7c5b24da 100644
--- a/arch/arm/mach-mx27/devices.c
+++ b/arch/arm/mach-mx27/devices.c
@@ -638,6 +638,9 @@ static int ata_get_clk_rate(void)
}
static struct fsl_ata_platform_data ata_data = {
+ .udma_mask = 0x0F, /* the board handles up to UDMA3 */
+ .fifo_alarm = MXC_IDE_DMA_WATERMARK / 2,
+ .max_sg = MXC_IDE_DMA_BD_NR,
.init = ata_init,
.exit = ata_exit,
.get_clk_rate = ata_get_clk_rate,
diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c
index 779321960591..18dee757dc21 100644
--- a/arch/arm/mach-mx3/devices.c
+++ b/arch/arm/mach-mx3/devices.c
@@ -918,6 +918,9 @@ static int ata_get_clk_rate(void)
}
static struct fsl_ata_platform_data ata_data = {
+ .udma_mask = 0x0F, /* board can handle up to UDMA3 */
+ .fifo_alarm = MXC_IDE_DMA_WATERMARK / 2,
+ .max_sg = MXC_IDE_DMA_BD_NR,
.init = ata_init,
.exit = ata_exit,
.get_clk_rate = ata_get_clk_rate,