summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/dma.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2011-02-28 16:14:43 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:42:25 -0800
commit7dd9dd6ebad0aed1c59536e47ab59a0ee11d2d62 (patch)
tree16bfb17d02bde77aa352e6e433a8d3326d03971f /arch/arm/mach-tegra/dma.c
parent4d1f7336f3bcbebe1213ceb0e57743c25aa44072 (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.c19
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;