Drivers: driver: i2s: Use eDMA loop SG mode
I2S speed test failed because of "Invalid destination address" issue By use eDMA loop SG mode, this issue is fixed. Fixes: #70777 Signed-off-by: Raymond Lei <raymond.lei@nxp.com>
This commit is contained in:
parent
dfb1652dec
commit
7145295a4a
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2021,2023 NXP Semiconductor INC.
|
* Copyright 2021,2023-2024 NXP Semiconductor INC.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
@ -299,7 +299,6 @@ static void i2s_dma_tx_callback(const struct device *dma_dev, void *arg, uint32_
|
||||||
strm->state = I2S_STATE_ERROR;
|
strm->state = I2S_STATE_ERROR;
|
||||||
goto disabled_exit_no_drop;
|
goto disabled_exit_no_drop;
|
||||||
}
|
}
|
||||||
dma_start(dev_data->dev_dma, strm->dma_channel);
|
|
||||||
|
|
||||||
if (blocks_queued || (strm->free_tx_dma_blocks < MAX_TX_DMA_BLOCKS)) {
|
if (blocks_queued || (strm->free_tx_dma_blocks < MAX_TX_DMA_BLOCKS)) {
|
||||||
goto enabled_exit;
|
goto enabled_exit;
|
||||||
|
@ -389,7 +388,6 @@ static void i2s_dma_rx_callback(const struct device *dma_dev, void *arg, uint32_
|
||||||
ret);
|
ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
dma_start(dev_data->dev_dma, strm->dma_channel);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
i2s_rx_stream_disable(dev, true, false);
|
i2s_rx_stream_disable(dev, true, false);
|
||||||
|
@ -1213,6 +1211,7 @@ static const struct i2s_driver_api i2s_mcux_driver_api = {
|
||||||
.channel_direction = MEMORY_TO_PERIPHERAL, \
|
.channel_direction = MEMORY_TO_PERIPHERAL, \
|
||||||
.dma_slot = DT_INST_DMAS_CELL_BY_NAME(i2s_id, tx, \
|
.dma_slot = DT_INST_DMAS_CELL_BY_NAME(i2s_id, tx, \
|
||||||
source), \
|
source), \
|
||||||
|
.cyclic = 1, \
|
||||||
}, \
|
}, \
|
||||||
}, \
|
}, \
|
||||||
.rx = \
|
.rx = \
|
||||||
|
@ -1230,6 +1229,7 @@ static const struct i2s_driver_api i2s_mcux_driver_api = {
|
||||||
.channel_direction = PERIPHERAL_TO_MEMORY, \
|
.channel_direction = PERIPHERAL_TO_MEMORY, \
|
||||||
.dma_slot = DT_INST_DMAS_CELL_BY_NAME(i2s_id, rx, \
|
.dma_slot = DT_INST_DMAS_CELL_BY_NAME(i2s_id, rx, \
|
||||||
source), \
|
source), \
|
||||||
|
.cyclic = 1, \
|
||||||
}, \
|
}, \
|
||||||
}, \
|
}, \
|
||||||
}; \
|
}; \
|
||||||
|
|
Loading…
Reference in New Issue