It indeed gets initialized in the hw_params. But the runtime dma parameters are not populated with the substream private data information that is gets in hw_params for the first time. I am not sure why. Any ideas?
Thanks, Arun.
-----Original Message----- From: Troy Kisky [mailto:troy.kisky@boundarydevices.com] Sent: Wednesday, September 09, 2009 4:47 PM To: Mani, Arun Cc: davinci-linux-open-source@linux.davincidsp.com; alsa-devel@alsa- project.org; Arun Mani Subject: Re: [PATCH] To avoid the divide by zero error during the first execution, initialize the data type.
avm@ti.com wrote:
From: Arun Mani a0270733@gtcx26221.gt.design.ti.com
Signed-off-by: Arun Mani a0270733@gtcx26221.gt.design.ti.com
sound/soc/davinci/davinci-i2s.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/sound/soc/davinci/davinci-i2s.c
b/sound/soc/davinci/davinci-i2s.c
index b1ea52f..61b1763 100644 --- a/sound/soc/davinci/davinci-i2s.c +++ b/sound/soc/davinci/davinci-i2s.c @@ -104,10 +104,12 @@ enum {
static struct davinci_pcm_dma_params davinci_i2s_pcm_out = { .name = "I2S PCM Stereo out",
- .data_type = 2, //Initialize the data type for playback to avoid
divide by zero
You should have ".acnt = 2" also for consistency.
};
static struct davinci_pcm_dma_params davinci_i2s_pcm_in = { .name = "I2S PCM Stereo in",
- .data_type = 2, //Initialize the data type for playback to avoid
divide by zero
};
struct davinci_mcbsp_dev {
And if the 1st stream is an 8-bit audio stream, will it initialize it incorrectly ??? Of course, we have formats = SNDRV_PCM_FMTBIT_S16_LE, currently so it's not an issue yet...
I don't see how data_type is not being set in davinci_i2s_hw_params before being used in davinci_pcm_prepare.
Can prepare be called before hw_params ?
There is a "return -EINVAL" in davinci_i2s_hw_params with a "printk(KERN_WARNING "davinci-i2s: unsupported PCM format\n")" before it.
Do you see this message in your log ?
Thanks Troy