Skip to content

Commit 7145295

Browse files
Raymond0225mmahadevan108
authored andcommitted
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 <[email protected]>
1 parent dfb1652 commit 7145295

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/i2s/i2s_mcux_sai.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2021,2023 NXP Semiconductor INC.
2+
* Copyright 2021,2023-2024 NXP Semiconductor INC.
33
* All rights reserved.
44
*
55
* SPDX-License-Identifier: Apache-2.0
@@ -299,7 +299,6 @@ static void i2s_dma_tx_callback(const struct device *dma_dev, void *arg, uint32_
299299
strm->state = I2S_STATE_ERROR;
300300
goto disabled_exit_no_drop;
301301
}
302-
dma_start(dev_data->dev_dma, strm->dma_channel);
303302

304303
if (blocks_queued || (strm->free_tx_dma_blocks < MAX_TX_DMA_BLOCKS)) {
305304
goto enabled_exit;
@@ -389,7 +388,6 @@ static void i2s_dma_rx_callback(const struct device *dma_dev, void *arg, uint32_
389388
ret);
390389
}
391390

392-
dma_start(dev_data->dev_dma, strm->dma_channel);
393391
}
394392
} else {
395393
i2s_rx_stream_disable(dev, true, false);
@@ -1213,6 +1211,7 @@ static const struct i2s_driver_api i2s_mcux_driver_api = {
12131211
.channel_direction = MEMORY_TO_PERIPHERAL, \
12141212
.dma_slot = DT_INST_DMAS_CELL_BY_NAME(i2s_id, tx, \
12151213
source), \
1214+
.cyclic = 1, \
12161215
}, \
12171216
}, \
12181217
.rx = \
@@ -1230,6 +1229,7 @@ static const struct i2s_driver_api i2s_mcux_driver_api = {
12301229
.channel_direction = PERIPHERAL_TO_MEMORY, \
12311230
.dma_slot = DT_INST_DMAS_CELL_BY_NAME(i2s_id, rx, \
12321231
source), \
1232+
.cyclic = 1, \
12331233
}, \
12341234
}, \
12351235
}; \

0 commit comments

Comments
 (0)