diff options
author | Gary King <gking@nvidia.com> | 2010-06-21 15:57:47 -0700 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-06-22 16:40:31 -0700 |
commit | c471a842349fb295dd5f76beb32631a528677fc0 (patch) | |
tree | 750a3b3957e9d32933217a6f2da1a97391500984 /arch/arm/mach-tegra/board-nvodm.c | |
parent | db47e4a3e890c34cb6fd73cb817ef4edfbd5f9d9 (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/arm/mach-tegra/board-nvodm.c')
-rw-r--r-- | arch/arm/mach-tegra/board-nvodm.c | 14 |
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]), |