diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2011-02-28 16:14:43 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:42:25 -0800 |
commit | 7dd9dd6ebad0aed1c59536e47ab59a0ee11d2d62 (patch) | |
tree | 16bfb17d02bde77aa352e6e433a8d3326d03971f /arch/arm/mach-tegra/dma.c | |
parent | 4d1f7336f3bcbebe1213ceb0e57743c25aa44072 (diff) |
arm: tegra: dma: setting burst for i2s client based on req size
Setting burst size of dma based on the transfer size for the
client i2s for tegra3 architecture.
Setting burst to 4 word for tegra2 architecture.
bug 796817
Original-Change-Id: I6c9e4ab775fb23d51207084b231745fc7a4f60d8
Reviewed-on: http://git-master/r/21102
Reviewed-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com>
Tested-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Original-Change-Id: Ib5c639bb33d2a05060ff62bc75a2e43f655310f9
Rebase-Id: R9c6e81845fbaf3f25f395500e307474d0885bce2
Diffstat (limited to 'arch/arm/mach-tegra/dma.c')
-rw-r--r-- | arch/arm/mach-tegra/dma.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/dma.c b/arch/arm/mach-tegra/dma.c index c5b5247c2372..794b84d0d62d 100644 --- a/arch/arm/mach-tegra/dma.c +++ b/arch/arm/mach-tegra/dma.c @@ -537,9 +537,13 @@ static void tegra_dma_update_hw(struct tegra_dma_channel *ch, case TEGRA_DMA_REQ_SEL_SL2B2: case TEGRA_DMA_REQ_SEL_SL2B3: case TEGRA_DMA_REQ_SEL_SL2B4: -#ifdef CONFIG_ARCH_TEGRA_3x_SOC +#if !defined(CONFIG_ARCH_TEGRA_2x_SOC) case TEGRA_DMA_REQ_SEL_SL2B5: case TEGRA_DMA_REQ_SEL_SL2B6: + case TEGRA_DMA_REQ_SEL_APBIF_CH0: + case TEGRA_DMA_REQ_SEL_APBIF_CH1: + case TEGRA_DMA_REQ_SEL_APBIF_CH2: + case TEGRA_DMA_REQ_SEL_APBIF_CH3: #endif case TEGRA_DMA_REQ_SEL_SPI: /* For spi/slink the burst size based on transfer size @@ -553,6 +557,19 @@ static void tegra_dma_update_hw(struct tegra_dma_channel *ch, else ahb_seq |= AHB_SEQ_BURST_8; break; + +#if defined(CONFIG_ARCH_TEGRA_2x_SOC) + case TEGRA_DMA_REQ_SEL_I2S_2: + case TEGRA_DMA_REQ_SEL_I2S_1: + case TEGRA_DMA_REQ_SEL_SPD_I: + case TEGRA_DMA_REQ_SEL_UI_I: + case TEGRA_DMA_REQ_SEL_I2S2_2: + case TEGRA_DMA_REQ_SEL_I2S2_1: + /* For ARCH_2x i2s/spdif burst size is 4 word */ + ahb_seq |= AHB_SEQ_BURST_4; + break; +#endif + default: ahb_seq |= AHB_SEQ_BURST_1; break; |