aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-omap/dma.c')
-rw-r--r--arch/arm/plat-omap/dma.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index e06c34bdc34a..4d463ca6821f 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -701,8 +701,8 @@ int omap_request_dma(int dev_id, const char *dev_name,
701 for (ch = 0; ch < dma_chan_count; ch++) { 701 for (ch = 0; ch < dma_chan_count; ch++) {
702 if (free_ch == -1 && dma_chan[ch].dev_id == -1) { 702 if (free_ch == -1 && dma_chan[ch].dev_id == -1) {
703 free_ch = ch; 703 free_ch = ch;
704 if (dev_id == 0) 704 /* Exit after first free channel found */
705 break; 705 break;
706 } 706 }
707 } 707 }
708 if (free_ch == -1) { 708 if (free_ch == -1) {
@@ -894,11 +894,12 @@ void omap_start_dma(int lch)
894 int next_lch, cur_lch; 894 int next_lch, cur_lch;
895 char dma_chan_link_map[MAX_LOGICAL_DMA_CH_COUNT]; 895 char dma_chan_link_map[MAX_LOGICAL_DMA_CH_COUNT];
896 896
897 dma_chan_link_map[lch] = 1;
898 /* Set the link register of the first channel */ 897 /* Set the link register of the first channel */
899 enable_lnk(lch); 898 enable_lnk(lch);
900 899
901 memset(dma_chan_link_map, 0, sizeof(dma_chan_link_map)); 900 memset(dma_chan_link_map, 0, sizeof(dma_chan_link_map));
901 dma_chan_link_map[lch] = 1;
902
902 cur_lch = dma_chan[lch].next_lch; 903 cur_lch = dma_chan[lch].next_lch;
903 do { 904 do {
904 next_lch = dma_chan[cur_lch].next_lch; 905 next_lch = dma_chan[cur_lch].next_lch;
@@ -2110,8 +2111,6 @@ exit_dma_irq_fail:
2110 } 2111 }
2111 2112
2112exit_dma_lch_fail: 2113exit_dma_lch_fail:
2113 kfree(p);
2114 kfree(d);
2115 kfree(dma_chan); 2114 kfree(dma_chan);
2116 return ret; 2115 return ret;
2117} 2116}
@@ -2132,8 +2131,6 @@ static int omap_system_dma_remove(struct platform_device *pdev)
2132 free_irq(dma_irq, (void *)(irq_rel + 1)); 2131 free_irq(dma_irq, (void *)(irq_rel + 1));
2133 } 2132 }
2134 } 2133 }
2135 kfree(p);
2136 kfree(d);
2137 kfree(dma_chan); 2134 kfree(dma_chan);
2138 return 0; 2135 return 0;
2139} 2136}