-
Notifications
You must be signed in to change notification settings - Fork 349
Description
reproduce step:
start playback
start and stop capture when error happen
rmbox log:
0x0 [188.520303] delta [188.520303] dma eS0
0x10 [188.520305] delta [0.000003] value 0x0000000000000007
0x20 [188.520308] delta [0.000003] value 0x0000000000000203
0x30 [188.520310] delta [0.000002] value 0x0000000000000003
0x40 [188.520313] delta [0.000003] buffer ebb
0x50 [188.520315] delta [0.000002] value 0x00000000fffffff0
0x60 [189.015096] delta [0.494781] dma eS0
0x70 [189.015098] delta [0.000003] value 0x0000000000000007
0x80 [189.015101] delta [0.000003] value 0x0000000000000203
0x90 [189.015103] delta [0.000002] value 0x0000000000000003
0xa0 [189.015106] delta [0.000003] buffer ebb
0xb0 [189.015108] delta [0.000002] value 0x00000000fffffff0
0x0 [188.520303] delta [188.520303] dma eS0
0x10 [188.520305] delta [0.000003] value 0x0000000000000007
0x20 [188.520308] delta [0.000003] value 0x0000000000000203
0x30 [188.520310] delta [0.000002] value 0x0000000000000003
0x40 [188.520313] delta [0.000003] buffer ebb
0x50 [188.520315] delta [0.000002] value 0x00000000fffffff0
0x60 [189.015096] delta [0.494781] dma eS0
0x70 [189.015098] delta [0.000003] value 0x0000000000000007
0x80 [189.015101] delta [0.000003] value 0x0000000000000203
0x90 [189.015103] delta [0.000002] value 0x0000000000000003
0xa0 [189.015106] delta [0.000003] buffer ebb
0xb0 [189.015108] delta [0.000002] value 0x00000000fffffff0
related code
src/drivers/dw-dma.c
/* is channel idle, disabled and ready ? */
if (p->chan[channel].status != COMP_STATE_PREPARE ||
(dw_read(dma, DW_DMA_CHAN_EN) & (0x1 << channel))) {
ret = -EBUSY;
trace_dma_error("eS0");
trace_error_value(dw_read(dma, DW_DMA_CHAN_EN));
trace_error_value(dw_read(dma, DW_CFG_LOW(channel)));
trace_error_value(p->chan[channel].status);
goto out;
}
src/lib/dma-trace.c
/* copy this section to host */
size = dma_copy_to_host_nowait(&d->dc, config, d->host_offset,
buffer->r_ptr, size);
if (size < 0) {
trace_buffer_error("ebb");
trace_error_value(size);
goto out;
}