summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary King <gking@nvidia.com>2010-06-14 16:24:49 -0700
committerGary King <gking@nvidia.com>2010-06-15 10:45:02 -0700
commit079436be7a5e33e46800d228b0ffe84a76a70d46 (patch)
treed3ba0ff9ecf7b78d4d69510d2a723cf4fe649698
parent9ed72b0880a3605863e3ec256fda069ec7165921 (diff)
[ARM/tegra] dma: clean up APB_DMA_IRQ_MASK_SET usage
since several DMA channels are reserved for the multimedia engine, restrict block IRQ_MASK_SET to the channels available to the OS on resume, write the saved IRQ mask value to APB_DMA_IRQ_MASK_SET, not to APB_DMA_IRQ_MASK Change-Id: I1e00dc665d93c49f59d75f602e38b67289403a51 Reviewed-on: http://git-master/r/2622 Reviewed-by: Trivikram Kasivajhula <tkasivajhula@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com> Tested-by: Gary King <gking@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/dma.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/dma.c b/arch/arm/mach-tegra/dma.c
index e14d14f084fb..a6e475ab64a7 100644
--- a/arch/arm/mach-tegra/dma.c
+++ b/arch/arm/mach-tegra/dma.c
@@ -706,7 +706,8 @@ int __init tegra_dma_init(void)
addr = IO_ADDRESS(TEGRA_APB_DMA_BASE);
writel(GEN_ENABLE, addr + APB_DMA_GEN);
writel(0, addr + APB_DMA_CNTRL);
- writel(0xFFFF, addr + APB_DMA_IRQ_MASK_SET);
+ writel(0xFFFFFFFFul >> (31 - TEGRA_SYSTEM_DMA_CH_MAX),
+ addr + APB_DMA_IRQ_MASK_SET);
memset(channel_usage, 0, sizeof(channel_usage));
memset(dma_channels, 0, sizeof(dma_channels));
@@ -788,7 +789,7 @@ void tegra_dma_resume(void)
writel(*ctx++, addr + APB_DMA_GEN);
writel(*ctx++, addr + APB_DMA_CNTRL);
- writel(*ctx++, addr + APB_DMA_IRQ_MASK);
+ writel(*ctx++, addr + APB_DMA_IRQ_MASK_SET);
for (i=0; i<TEGRA_SYSTEM_DMA_CH_NR; i++) {
addr = IO_ADDRESS(TEGRA_APB_DMA_CH0_BASE +