summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorGary King <gking@nvidia.com>2010-06-21 15:57:47 -0700
committerGary King <gking@nvidia.com>2010-06-22 16:40:31 -0700
commitc471a842349fb295dd5f76beb32631a528677fc0 (patch)
tree750a3b3957e9d32933217a6f2da1a97391500984 /arch
parentdb47e4a3e890c34cb6fd73cb817ef4edfbd5f9d9 (diff)
[ARM/tegra] board-nvodm: align EHCI DMA mask to 32B boundary
EHCI DMA buffers need to be allocated at 32B boundaries, or use bounce buffers allocated at 32B boundaries to prevent data corruption Change-Id: I42aa8a8e218124af3056e2ea53cfc1eae8bd6161 Reviewed-on: http://git-master.nvidia.com/r/2960 Reviewed-by: Gary King <gking@nvidia.com> Tested-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/board-nvodm.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/board-nvodm.c b/arch/arm/mach-tegra/board-nvodm.c
index cdc29bcf949d..bcaaef41864a 100644
--- a/arch/arm/mach-tegra/board-nvodm.c
+++ b/arch/arm/mach-tegra/board-nvodm.c
@@ -535,14 +535,16 @@ static struct resource tegra_hcd_resources[][2] = {
},
},
};
+/* EHCI transfers must be 32B aligned */
+static u64 tegra_ehci_dma_mask = DMA_BIT_MASK(32) & ~0x1f;
static struct platform_device tegra_hcd[] = {
[0] = {
.name = "tegra-ehci",
.id = 0,
.dev = {
.platform_data = &tegra_hcd_platform[0],
- .coherent_dma_mask = DMA_BIT_MASK(32),
- .dma_mask = &tegra_dma_mask,
+ .coherent_dma_mask = DMA_BIT_MASK(32) & ~0x1f,
+ .dma_mask = &tegra_ehci_dma_mask,
},
.resource = tegra_hcd_resources[0],
.num_resources = ARRAY_SIZE(tegra_hcd_resources[0]),
@@ -552,8 +554,8 @@ static struct platform_device tegra_hcd[] = {
.id = 1,
.dev = {
.platform_data = &tegra_hcd_platform[1],
- .coherent_dma_mask = DMA_BIT_MASK(32),
- .dma_mask = &tegra_dma_mask,
+ .coherent_dma_mask = DMA_BIT_MASK(32) & ~0x1f,
+ .dma_mask = &tegra_ehci_dma_mask,
},
.resource = tegra_hcd_resources[1],
.num_resources = ARRAY_SIZE(tegra_hcd_resources[1]),
@@ -563,8 +565,8 @@ static struct platform_device tegra_hcd[] = {
.id = 2,
.dev = {
.platform_data = &tegra_hcd_platform[2],
- .coherent_dma_mask = DMA_BIT_MASK(32),
- .dma_mask = &tegra_dma_mask,
+ .coherent_dma_mask = DMA_BIT_MASK(32) & ~0x1f,
+ .dma_mask = &tegra_ehci_dma_mask,
},
.resource = tegra_hcd_resources[2],
.num_resources = ARRAY_SIZE(tegra_hcd_resources[2]),