buffer); 
buffer, 0, 0); 
int omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer, unsigned int length){	int dma_tx_ch;	if (omap_mcbsp_check(id) < 0)		return -EINVAL;	if (omap_request_dma(mcbsp[id].dma_tx_sync, "McBSP TX", omap_mcbsp_tx_dma_callback,			     &mcbsp[id],			     &dma_tx_ch)) {		printk("OMAP-McBSP: Unable to request DMA channel for McBSP%d TX. Trying IRQ based TX\n", id+1);		return -EAGAIN;	}	mcbsp[id].dma_tx_lch = dma_tx_ch;	DBG("TX DMA on channel %d\n", dma_tx_ch);	init_completion(&(mcbsp[id].tx_dma_completion));	omap_set_dma_transfer_params(mcbsp[id].dma_tx_lch,				     OMAP_DMA_DATA_TYPE_S16,				     length >> 1, 1,				     OMAP_DMA_SYNC_ELEMENT);	omap_set_dma_dest_params(mcbsp[id].dma_tx_lch,				 OMAP_DMA_PORT_TIPB,				 OMAP_DMA_AMODE_CONSTANT,				 mcbsp[id].io_base + OMAP_MCBSP_REG_DXR1);	omap_set_dma_src_params(mcbsp[id].dma_tx_lch,				OMAP_DMA_PORT_EMIFF,				OMAP_DMA_AMODE_POST_INC,				buffer);	omap_start_dma(mcbsp[id].dma_tx_lch);	wait_for_completion(&(mcbsp[id].tx_dma_completion));	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1a8bfa1eb998af6e650ad26201f7cae9f2a2fdc8/mcbsp.c/clean/arch/arm/plat-omap/mcbsp.c