We should set burst_elems for dma peripheral dev copy, for dai/ssp, it should be set to valid slot number, otherwise, the dma may copy in wrong burst size and data will run with wrong speed.
Signed-off-by: Keyon Jie yang.jie@linux.intel.com --- src/audio/dai.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/src/audio/dai.c b/src/audio/dai.c index c50a274..9058f5c 100644 --- a/src/audio/dai.c +++ b/src/audio/dai.c @@ -601,6 +601,11 @@ static int dai_position(struct comp_dev *dev, struct sof_ipc_stream_posn *posn)
static int dai_config(struct comp_dev *dev, struct sof_ipc_dai_config *config) { + struct dai_data *dd = comp_get_drvdata(dev); + + /* set dma burst elems to slot number */ + dd->config.burst_elems = config->num_slots; + /* calc frame bytes */ switch (config->sample_valid_bits) { case 16: