Re: [alsa-devel] DM365 McBSP as Master
Hi Vladimir,
Thank you very much. i will do the same. on further probing and testing.
i found that if i open the device O_WRONLY and O_RDONLY mode it works. if i try to open the device using the O_RDWR mode it fails.
is there any configuration settings i need to check.
-Sreedhar.
On 10/17/11, Vladimir Barinov Vladimir_Barinov@mentor.com wrote:
Hi Sreedhar,
You should always CC the alsa-devel channel list for any alsa related questions instead of writing directly to TI support and me. But you can CC both me and TI people. In that case your questions will not go unanswered.
Appalayagari Sreedhar wrote:
Hi Vladimir,
I need your help to solve one issue.
I have developed a audio driver in ALSA model, the audio ic is interfaced with the TI DM365 processor MCBSP ports. I am working with the 2.6.32 kernel.
I am able to play the audio using the aplay command. but when i try to open the device using /dev/dsp i am getting the -ve value. it fails to open the device.
I believe that you've enabled OSS emulation for alsa drivers: CONFIG_SND_PCM_OSS=y and read carefully Documentation/sound/alsa/OSS-Emulation.txt guide.
Here you didn't mention how you are trying to open /dev/dsp and the error log sample. If you'll read the mentioned guide then you'll find some hints about PCM mode changes via proc interface. Probably that will shine some light on your issue.
when i check the
ls /dev/dsp
it is available in the device directory.
I have enabled the Sound OSS related options in the kernel menuconfig. with the same options i am able to open the device for the tlv320aic3x device.
Could you please suggest where i am doing wrong? and help to solve this problem.
One more observation :
after doing aplay i am able to open the device using the /dev/dsp.
if try to open the device using the /dev/dsp before aplay i am getting the error.
could you please tell me where i am doing.
It seems that aplay configures the codec and mcbsp interface calling it's TRIGGER_START but your own application does not. Once configured the pcm streams can pass normally using /dev/dsp. Not usre but seems that the problem in inability to call TRIGGER.
Regards, Vladimir
I have posted the queries in ti e2e website, please check them below. i did not receive any proper response till now so i am contacting you.
http://e2e.ti.com/support/embedded/f/354/p/138037/504805.aspx
Thank you in advance. Sreedhar.
On 9/23/11, Vladimir Barinov Vladimir_Barinov@mentor.com wrote:
Hi Sreedhar,
Appalayagari Sreedhar wrote:
Hi Vladimir Barinov,
Now I am able to make it work McBSP as master and also as slave. We decided to configure the McBSP as Slave and Codec as Master.
I have one question, Since the Clocks are generated by the Codec. will there be any Channel Swap in the audio?
If so how to handle this channel swap mechanism.
Yes, It possible to get channels swap on any external codec. Unfortunately I don't know any strong method for this issue. I just experience similar problem on TI's PMIC audio and get rid from EVERY excessive clock in system to be able to fix it. I mean you have to stop all related clocks in proper sequence during audio pause/stop. When I did it the channel swap was fixed.
Regards, Vladimir
Thank you, Sreedhar.
On 9/20/11, Appalayagari Sreedhar sreecha01@gmail.com wrote:
Hi Vladimir Barinov,
Thank you very much. I will check as you suggested. Thanks once again you are only person from whom i got the support since 5 days.
Thanks once again.
Thank you, Sreedhar.
On 9/20/11, Vladimir Barinov Vladimir_Barinov@mentor.com wrote:
Sreedhar,
- verify that mux registers are configured properly
- startup with codec as master since the current code tested in this
mode and usually msbsp can't provide variety of clocks to match all samplerates. 3) check that you can read/write codec registers with success (i2c works find and the codec is not in reset state - check your h/w) Probe MCLK by scope and find that signal is ON, otherwise you didn't make codec setup (i2c communication or codec doesn't work)
After above you can start moving to MCBSP as master if you really need it.
Regards, Vladimir
Appalayagari Sreedhar wrote:
> Hi Vladimir Barinov, > > I am working with DM365 evm board. I have interfaced conexant audio > ic to the McBSP. > > I need to do I2S data transfer. I need to program the McBSP as master > and conexant audio IC as slave. > > i did the macro changes in the davinci-evm.c file in AUDIO_FORMAT > like > this. > > #define AUDIO_FORMAT (SND_SOC_DAIFMT_I2S | \ > SND_SOC_DAIFMT_CBS_CFS) > > I am using the McBSP internal clock for McBSP. I printed the McBSP > registers and found that SCLKME - 0 and CLKSM - 1. by reading the > registers. > > when i run the aplay command i am not viewing any clocks when i probe > the signals using the CRO. > > Could you please tell me where i am doing wrong? > > Please find my queries in the following thread in the ti e2e > comminity. > > http://e2e.ti.com/support/embedded/f/354/p/134788/485628.aspx#485628 > > Thank you, Sreedhar. > > >
Hi Vladimir,
error log is as shown below.
root@dm368-evm:/# ./myoss Audio Driver failed to open, oss_fd = -1 errno = 22
-Sreedhar.
On 10/17/11, Appalayagari Sreedhar sreecha01@gmail.com wrote:
Hi Vladimir,
Thank you very much. i will do the same. on further probing and testing.
i found that if i open the device O_WRONLY and O_RDONLY mode it works. if i try to open the device using the O_RDWR mode it fails.
is there any configuration settings i need to check.
-Sreedhar.
On 10/17/11, Vladimir Barinov Vladimir_Barinov@mentor.com wrote:
Hi Sreedhar,
You should always CC the alsa-devel channel list for any alsa related questions instead of writing directly to TI support and me. But you can CC both me and TI people. In that case your questions will not go unanswered.
Appalayagari Sreedhar wrote:
Hi Vladimir,
I need your help to solve one issue.
I have developed a audio driver in ALSA model, the audio ic is interfaced with the TI DM365 processor MCBSP ports. I am working with the 2.6.32 kernel.
I am able to play the audio using the aplay command. but when i try to open the device using /dev/dsp i am getting the -ve value. it fails to open the device.
I believe that you've enabled OSS emulation for alsa drivers: CONFIG_SND_PCM_OSS=y and read carefully Documentation/sound/alsa/OSS-Emulation.txt guide.
Here you didn't mention how you are trying to open /dev/dsp and the error log sample. If you'll read the mentioned guide then you'll find some hints about PCM mode changes via proc interface. Probably that will shine some light on your issue.
when i check the
ls /dev/dsp
it is available in the device directory.
I have enabled the Sound OSS related options in the kernel menuconfig. with the same options i am able to open the device for the tlv320aic3x device.
Could you please suggest where i am doing wrong? and help to solve this problem.
One more observation :
after doing aplay i am able to open the device using the /dev/dsp.
if try to open the device using the /dev/dsp before aplay i am getting the error.
could you please tell me where i am doing.
It seems that aplay configures the codec and mcbsp interface calling it's TRIGGER_START but your own application does not. Once configured the pcm streams can pass normally using /dev/dsp. Not usre but seems that the problem in inability to call TRIGGER.
Regards, Vladimir
I have posted the queries in ti e2e website, please check them below. i did not receive any proper response till now so i am contacting you.
http://e2e.ti.com/support/embedded/f/354/p/138037/504805.aspx
Thank you in advance. Sreedhar.
On 9/23/11, Vladimir Barinov Vladimir_Barinov@mentor.com wrote:
Hi Sreedhar,
Appalayagari Sreedhar wrote:
Hi Vladimir Barinov,
Now I am able to make it work McBSP as master and also as slave. We decided to configure the McBSP as Slave and Codec as Master.
I have one question, Since the Clocks are generated by the Codec. will there be any Channel Swap in the audio?
If so how to handle this channel swap mechanism.
Yes, It possible to get channels swap on any external codec. Unfortunately I don't know any strong method for this issue. I just experience similar problem on TI's PMIC audio and get rid from EVERY excessive clock in system to be able to fix it. I mean you have to stop all related clocks in proper sequence during audio pause/stop. When I did it the channel swap was fixed.
Regards, Vladimir
Thank you, Sreedhar.
On 9/20/11, Appalayagari Sreedhar sreecha01@gmail.com wrote:
Hi Vladimir Barinov,
Thank you very much. I will check as you suggested. Thanks once again you are only person from whom i got the support since 5 days.
Thanks once again.
Thank you, Sreedhar.
On 9/20/11, Vladimir Barinov Vladimir_Barinov@mentor.com wrote:
> Sreedhar, > > 1) verify that mux registers are configured properly > 2) startup with codec as master since the current code tested in > this > mode and usually msbsp can't provide variety of clocks to match all > samplerates. > 3) check that you can read/write codec registers with success (i2c > works > find and the codec is not in reset state - check your h/w) > Probe MCLK by scope and find that signal is ON, otherwise you didn't > make codec setup (i2c communication or codec doesn't work) > > After above you can start moving to MCBSP as master if you really > need > it. > > Regards, > Vladimir > > Appalayagari Sreedhar wrote: > > >> Hi Vladimir Barinov, >> >> I am working with DM365 evm board. I have interfaced conexant >> audio >> ic to the McBSP. >> >> I need to do I2S data transfer. I need to program the McBSP as >> master >> and conexant audio IC as slave. >> >> i did the macro changes in the davinci-evm.c file in AUDIO_FORMAT >> like >> this. >> >> #define AUDIO_FORMAT (SND_SOC_DAIFMT_I2S | \ >> SND_SOC_DAIFMT_CBS_CFS) >> >> I am using the McBSP internal clock for McBSP. I printed the McBSP >> registers and found that SCLKME - 0 and CLKSM - 1. by reading the >> registers. >> >> when i run the aplay command i am not viewing any clocks when i >> probe >> the signals using the CRO. >> >> Could you please tell me where i am doing wrong? >> >> Please find my queries in the following thread in the ti e2e >> comminity. >> >> http://e2e.ti.com/support/embedded/f/354/p/134788/485628.aspx#485628 >> >> Thank you, Sreedhar. >> >> >>
Clemens Regards,
implementations; you should open the device twice. the device in full duplex mode. This is not supported by most OSS O_RDWR indicates that you want to use the same file handle to use
Appalayagari Sreedhar wrote:
root@dm368-evm:/# ./myoss Audio Driver failed to open, oss_fd = -1 errno = 22
On 10/17/11, Appalayagari Sreedhar sreecha01@gmail.com wrote:
i found that if i open the device O_WRONLY and O_RDONLY mode it works. if i try to open the device using the O_RDWR mode it fails.
Hi Clemens,
Thank you very much. but for the tlv320aic3x codec it works. tlv320aic3x device is also duplex device. and also after aplay calling, i can succesfully open the device for my codec driver. could you please tell me what i am missing and also why it is working for the tlv320aic3x device.
Thank you, Sreedhar.
On 10/17/11, Clemens Ladisch clemens@ladisch.de wrote:
Clemens Regards,
implementations; you should open the device twice. the device in full duplex mode. This is not supported by most OSS O_RDWR indicates that you want to use the same file handle to use
Appalayagari Sreedhar wrote:
root@dm368-evm:/# ./myoss Audio Driver failed to open, oss_fd = -1 errno = 22
On 10/17/11, Appalayagari Sreedhar sreecha01@gmail.com wrote:
i found that if i open the device O_WRONLY and O_RDONLY mode it works. if i try to open the device using the O_RDWR mode it fails.
Appalayagari Sreedhar wrote:
Thank you very much. but for the tlv320aic3x codec it works. tlv320aic3x device is also duplex device. and also after aplay calling, i can succesfully open the device for my codec driver. could you please tell me what i am missing and also why it is working for the tlv320aic3x device.
There's probably some difference in the behaviour of the two drivers regarding multiple opens. Which drivers are you using (the codecs don't matter)?
Regards, Clemens
Hi Clemens, Vladimir and All,
I found the problem. in my audio driver.
In snd_soc_dai structure i have commented the
//.symmetric_rates = 1 then this issue not coming.
I verified this structure in tlv320aic3x.c file there is no such parameter, so i commented this and resolved this problem.
Could you please tell me what for this parameter is required.
Thank you all, Sreedhar.
On 10/25/11, Clemens Ladisch clemens@ladisch.de wrote:
Appalayagari Sreedhar wrote:
Thank you very much. but for the tlv320aic3x codec it works. tlv320aic3x device is also duplex device. and also after aplay calling, i can succesfully open the device for my codec driver. could you please tell me what i am missing and also why it is working for the tlv320aic3x device.
There's probably some difference in the behaviour of the two drivers regarding multiple opens. Which drivers are you using (the codecs don't matter)?
Regards, Clemens
participants (3)
-
Appalayagari Sreedhar
-
Clemens Ladisch
-
Mark Brown