if (!csr) 
if ((csr & 0x3f) == 0) 
static int dma_handle_ch(int ch){	u16 csr;	if (enable_1510_mode && ch >= 6) {		csr = dma_chan[ch].saved_csr;		dma_chan[ch].saved_csr = 0;	} else		csr = omap_readw(OMAP_DMA_CSR(ch));	if (enable_1510_mode && ch <= 2 && (csr >> 7) != 0) {		dma_chan[ch + 6].saved_csr = csr >> 7;		csr &= 0x7f;	}	if (!csr)		return 0;	if (unlikely(dma_chan[ch].dev_id == -1)) {		printk(KERN_WARNING "Spurious interrupt from DMA channel %d (CSR %04x)\n",		       ch, csr);		return 0;	}	if (unlikely(csr & OMAP_DMA_TOUT_IRQ))		printk(KERN_WARNING "DMA timeout with device %d\n", dma_chan[ch].dev_id);	if (unlikely(csr & OMAP_DMA_DROP_IRQ))		printk(KERN_WARNING "DMA synchronization event drop occurred with device %d\n",		       dma_chan[ch].dev_id);	if (likely(csr & OMAP_DMA_BLOCK_IRQ))		dma_chan[ch].flags &= ~OMAP_DMA_ACTIVE;	if (likely(dma_chan[ch].callback != NULL))		dma_chan[ch].callback(ch, csr, dma_chan[ch].data);	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/92105bb70634abacc08bbe12bf6f888fbd7dad38/dma.c/buggy/arch/arm/plat-omap/dma.c