-----Original Message----- From: sound-open-firmware-bounces@alsa-project.org [mailto:sound-open- firmware-bounces@alsa-project.org] On Behalf Of Pierre-Louis Bossart Sent: Tuesday, December 19, 2017 9:37 PM To: Keyon Jie yang.jie@linux.intel.com; sound-open-firmware@alsa- project.org Cc: Jie, Yang yang.jie@intel.com Subject: Re: [Sound-open-firmware] [PATCH v2 2/3] dai: set dai dma burst_elems according to slot number
On 12/18/2017 11:06 PM, Keyon Jie wrote:
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.
I don't think the commit message reflects the code, it's really the total number of active slots and not the slot number(s) that we care about, right?
This is a good topic. At the moment, we are using topology file to configure dai, e.g. DAI_TDM(2, 20, 3, 3), which set num_slots(corresponding to 'slot number(s)' you mentioned?) to 2 and tx slot mask to 0x3(slot0and slot1 enabled, corresponding to 'the total number' in your context?), so they are same for us actually at this case.
But imagine that if we set tx slot mask to, e.g. 0x1, should we set burst_elems to 1 or 2? I tend to set 1 at this case, but not 100% sure about it yet, Maybe we need experiment and fix bugs if exist.
So back to your question, I think the answer is yes, using active slots number may be more accurate, though we need experiment on that later.
Thanks, ~Keyon
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:
Sound-open-firmware mailing list Sound-open-firmware@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/sound-open-firmware