X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=arch%2Farm%2Fplat-omap%2Fdma.c;h=e3e3559eadac5b399f36dedf05ce993a2b591a20;hp=78f45defcd26461dbc1c32a3ef6ddae069936f9e;hb=19d743760c22016af76852912595b7a8ea9709e5;hpb=f7c3ff94a296f2daf8f5f2e8be3e459636c3fdfd diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 78f45defcd26..e3e3559eadac 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c @@ -689,8 +689,8 @@ int omap_request_dma(int dev_id, const char *dev_name, for (ch = 0; ch < dma_chan_count; ch++) { if (free_ch == -1 && dma_chan[ch].dev_id == -1) { free_ch = ch; - if (dev_id == 0) - break; + /* Exit after first free channel found */ + break; } } if (free_ch == -1) { @@ -882,11 +882,12 @@ void omap_start_dma(int lch) int next_lch, cur_lch; char dma_chan_link_map[dma_lch_count]; - dma_chan_link_map[lch] = 1; /* Set the link register of the first channel */ enable_lnk(lch); memset(dma_chan_link_map, 0, sizeof(dma_chan_link_map)); + dma_chan_link_map[lch] = 1; + cur_lch = dma_chan[lch].next_lch; do { next_lch = dma_chan[cur_lch].next_lch; @@ -2013,7 +2014,7 @@ static int __devinit omap_system_dma_probe(struct platform_device *pdev) errata = p->errata; if ((d->dev_caps & RESERVE_CHANNEL) && omap_dma_reserve_channels - && (omap_dma_reserve_channels <= dma_lch_count)) + && (omap_dma_reserve_channels < d->lch_count)) d->lch_count = omap_dma_reserve_channels; dma_lch_count = d->lch_count;