dma_chan[ch].dev_id = -1; 
dma_chan[lch].dev_id = -1; dma_chan[lch].next_lch = -1; dma_chan[lch].callback = NULL; 
void omap_free_dma(int ch){	unsigned long flags;	spin_lock_irqsave(&dma_chan_lock, flags);	if (dma_chan[ch].dev_id == -1) {		printk("omap_dma: trying to free nonallocated DMA channel %d\n", ch);		spin_unlock_irqrestore(&dma_chan_lock, flags);		return;	}	dma_chan[ch].dev_id = -1;	spin_unlock_irqrestore(&dma_chan_lock, flags);	/* Disable all DMA interrupts for the channel. */	omap_writew(0, OMAP_DMA_CICR(ch));	/* Make sure the DMA transfer is stopped. */	omap_writew(0, OMAP_DMA_CCR(ch));}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1a8bfa1eb998af6e650ad26201f7cae9f2a2fdc8/dma.c/buggy/arch/arm/plat-omap/dma.c