This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP L138 Audio DMA hangs

Other Parts Discussed in Thread: OMAPL138

Hi,

We are working on OMAPL138 based custom board.  We have Audio and LCD interface on this board. We are using MCBSP1 for audio and LCDC for LCD MPU 8086 compliance. LCD has 8-bits interface.  Audio driver uses EDMA Channel 5 to play audio and LCD driver uses EDMA Channel 2 to display video.  We are using continuous EDMA for LCD(when EDMA transfer complete, we are reschdule the transfer again from EDMA callback). We are not using LCD controller DMA . When LCD is OFF (no DMA transfer) then Audio is able to play. But when video displays on LCD through EDMA, Audio hangs. In LCD driver, EVENTQ_DEFAULT is used for event queue.  I tried different event queue but couldn't help.

My LCD DMA initialization code is shown below:

======================================================================

r = edma_alloc_channel(EDMA_CHANNEL_ANY, lcd_dma_callback, NULL, EVENTQ_DEFAULT);
if (r < 0)
{
printk("Unable to request DMA channel for LCD\n");
ret = -EAGAIN;
goto bufferalloced;
}
cd_dma.dma_channel = r;
edma_set_src(lcd_dma.dma_channel, frame_buffer_phys, INCR, 0);
edma_set_dest(lcd_dma.dma_channel, lcd_data_reg, INCR, 0);
edma_set_src_index(lcd_dma.dma_channel, 1, 0);
edma_set_dest_index(lcd_dma.dma_channel, 0, 0);
edma_set_transfer_params(lcd_dma.dma_channel, 1, LCD_SIZE, 1, 0, ABSYNC);

/* Enable the Interrupts on Channel 1 */
edma_read_slot (lcd_dma.dma_channel, &param_set);
param_set.opt |= (1 << TCINTEN_SHIFT);
param_set.opt |= (1 << ITCINTEN_SHIFT);
param_set.opt |= EDMA_TCC(EDMA_CHAN_SLOT(lcd_dma.dma_channel));
edma_write_slot (lcd_dma.dma_channel, &param_set);

 ======================================================================

 LCD EDMA transfer data from frambuffer to LCDC data register. So, destination is fixed and source address is incrementing.

Please help us to resolve this issue.

Regards,

Dilip