* DMA interrupt not getting triggered(nailed the problem need solution)
@ 2010-02-08 2:34 ANISH KUMAR
2010-02-08 11:05 ` Mark Brown
2010-02-08 16:06 ` James Courtier-Dutton
0 siblings, 2 replies; 7+ messages in thread
From: ANISH KUMAR @ 2010-02-08 2:34 UTC (permalink / raw)
To: jassi brar
Cc: alsa-devel@alsa-project.org, ben-linux,
JaroslavKyselaperex@perex.cz
Hi All,
This problem is due to ETIMEDOUT(timeout) happening in s3c_snd_lrsync function(called by trigger).
As i understand this could be due I2S being broken. This basically happens because
of improper initialization of CPU or CODEC.
But if that is the case then it would not have produced sound initially also but that
is not the case(initially it is ringing i.e. interrupt coming for a short time then after i am getting time out problem)??
After this sound is not coming this happens when it does the initialisation again using open,
prepare,enqueue and so on.
Please provide any pointers which can help me out.
Thanks & High Regards,
anish
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: DMA interrupt not getting triggered(nailed the problem need solution)
2010-02-08 2:34 DMA interrupt not getting triggered(nailed the problem need solution) ANISH KUMAR
@ 2010-02-08 11:05 ` Mark Brown
2010-02-08 16:06 ` James Courtier-Dutton
1 sibling, 0 replies; 7+ messages in thread
From: Mark Brown @ 2010-02-08 11:05 UTC (permalink / raw)
To: ANISH KUMAR
Cc: alsa-devel@alsa-project.org, jassi brar,
JaroslavKyselaperex@perex.cz, ben-linux
On Mon, Feb 08, 2010 at 02:34:29AM +0000, ANISH KUMAR wrote:
> This problem is due to ETIMEDOUT(timeout) happening in s3c_snd_lrsync function(called by trigger).
Please don't start a new thread for each mail, please continue
discussion in the existing thread. It makes it much easier to follow
which problem you are talking about.
> As i understand this could be due I2S being broken. This basically happens because
> of improper initialization of CPU or CODEC.
> But if that is the case then it would not have produced sound initially also but that
> is not the case(initially it is ringing i.e. interrupt coming for a short time then after i am getting time out problem)??
If the initial hardware state happens to result in LRCLK being where the
lrsync() function is trying to get it then the driver will start up, but
the misclocking of the configuration will result in ALSA detecting an
error which will eventually result in a restart of the audio stream.
> Please provide any pointers which can help me out.
You've probably got a problem with the machine driver for your system,
check the way the clocks are set up in there.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: DMA interrupt not getting triggered(nailed the problem need solution)
@ 2010-02-08 11:17 ANISH KUMAR
2010-02-08 11:27 ` Mark Brown
0 siblings, 1 reply; 7+ messages in thread
From: ANISH KUMAR @ 2010-02-08 11:17 UTC (permalink / raw)
To: Mark Brown
Cc: alsa-devel@alsa-project.org, jassi brar,
JaroslavKyselaperex@perex.cz, ben-linux@fluff.org
>If the initial hardware state happens to result in LRCLK being where the
>lrsync() function is trying to get it then the driver will start up, but
>the misclocking of the configuration will result in ALSA detecting an
>error which will eventually result in a restart of the audio stream.
Mark in my case it is not restarting the audio stream(though it is trying to call trigger again for restarting)
because in s3c_snd_lrsync function again i am getting time out(ETIMEDOUT).
iiscon = readl(s3c_i2s.regs + S3C_IISCON);
if (iiscon & S3C_IISCON_LRI)
break;
This LRI register bit is not getting set properly causing timeout.How this situation is not coming always(4/10)??
And who should suppose to set it?
If my machine driver had a problem then this should have come always??
Thanks for your reply.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: DMA interrupt not getting triggered(nailed the problem need solution)
2010-02-08 11:17 ANISH KUMAR
@ 2010-02-08 11:27 ` Mark Brown
0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2010-02-08 11:27 UTC (permalink / raw)
To: ANISH KUMAR
Cc: alsa-devel@alsa-project.org, jassi brar, ben-linux@fluff.org,
JaroslavKyselaperex@perex.cz
On Mon, Feb 08, 2010 at 11:17:01AM +0000, ANISH KUMAR wrote:
> >If the initial hardware state happens to result in LRCLK being where the
> >lrsync() function is trying to get it then the driver will start up, but
> >the misclocking of the configuration will result in ALSA detecting an
> >error which will eventually result in a restart of the audio stream.
> Mark in my case it is not restarting the audio stream(though it is trying to call trigger again for restarting)
> because in s3c_snd_lrsync function again i am getting time out(ETIMEDOUT).
...and the reason it is back in lrsync() is that it's trying to restart
the audio stream.
> This LRI register bit is not getting set properly causing timeout.How this situation is not coming always(4/10)??
> And who should suppose to set it?
The LRI register reports the hardware state and so is updated
autonomously by the hardware.
> If my machine driver had a problem then this should have come always??
As I said in the e-mail to which you are replying:
| If the initial hardware state happens to result in LRCLK being where the
| lrsync() function is trying to get it then the driver will start up, but
| the misclocking of the configuration will result in ALSA detecting an
| error which will eventually result in a restart of the audio stream.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: DMA interrupt not getting triggered(nailed the problem need solution)
@ 2010-02-08 12:15 ANISH KUMAR
2010-02-08 14:42 ` Mark Brown
0 siblings, 1 reply; 7+ messages in thread
From: ANISH KUMAR @ 2010-02-08 12:15 UTC (permalink / raw)
To: Mark Brown
Cc: alsa-devel@alsa-project.org, jassi brar, ben-linux@fluff.org,
JaroslavKyselaperex@perex.cz
> If the initial hardware state happens to result in LRCLK being where the
>lrsync() function is trying to get it then the driver will start up, but
>the misclocking of the configuration will result in ALSA detecting an
>error which will eventually result in a restart of the audio stream.
>From the lrsync function i know that it is just trying to check whether a particular
bit is set or not.So according to my understanding this lrsync function will timeout if the
clock itself is not coming.
Please forgive for not understanding your reply.
But i am not able to understand "where the lrsync() function is trying to get-FROM YOUR REPLY"??
And misclocking of the configuration??Please explain this term(googling didn't help much).
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: DMA interrupt not getting triggered(nailed the problem need solution)
2010-02-08 12:15 ANISH KUMAR
@ 2010-02-08 14:42 ` Mark Brown
0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2010-02-08 14:42 UTC (permalink / raw)
To: ANISH KUMAR
Cc: alsa-devel@alsa-project.org, jassi brar, ben-linux@fluff.org,
JaroslavKyselaperex@perex.cz
On Mon, Feb 08, 2010 at 12:15:57PM +0000, ANISH KUMAR wrote:
> > If the initial hardware state happens to result in LRCLK being where the
> >lrsync() function is trying to get it then the driver will start up, but
> >the misclocking of the configuration will result in ALSA detecting an
> >error which will eventually result in a restart of the audio stream.
> From the lrsync function i know that it is just trying to check whether a particular
> bit is set or not.So according to my understanding this lrsync function will timeout if the
> clock itself is not coming.
Right, if you check the datasheet for the part you'll see that this bit
reports the state of the LRSYNC clock. This means that it is possible
that the pin may read back the expected logic level for whatever reason
even if things aren't being clocked properly - for example, there may be
a very slow clock present.
> Please forgive for not understanding your reply.
> But i am not able to understand "where the lrsync() function is trying to get-FROM YOUR REPLY"??
> And misclocking of the configuration??Please explain this term(googling didn't help much).
Your machine driver will have set up the clocks for the audio subsystem
in a way that doesn't work in your hardware. You need to understand how
the audio subsystem is connected together on your hardware and make sure
your machine driver is setting up something appropriate. Without
knowing about the specific hardware it's hard to say anything definite.
In general if the CODEC has a crystal attached directly to it then the
CODEC should be the clock master on the digital audio interface, which
tends to make life easier for things like this.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: DMA interrupt not getting triggered(nailed the problem need solution)
2010-02-08 2:34 DMA interrupt not getting triggered(nailed the problem need solution) ANISH KUMAR
2010-02-08 11:05 ` Mark Brown
@ 2010-02-08 16:06 ` James Courtier-Dutton
1 sibling, 0 replies; 7+ messages in thread
From: James Courtier-Dutton @ 2010-02-08 16:06 UTC (permalink / raw)
To: anish.singh
Cc: alsa-devel@alsa-project.org, jassi brar,
JaroslavKyselaperex@perex.cz, ben-linux
On 8 February 2010 02:34, ANISH KUMAR <anish.singh@samsung.com> wrote:
>
> Hi All,
>
> This problem is due to ETIMEDOUT(timeout) happening in s3c_snd_lrsync function(called by trigger).
> As i understand this could be due I2S being broken. This basically happens because
> of improper initialization of CPU or CODEC.
>
> But if that is the case then it would not have produced sound initially also but that
> is not the case(initially it is ringing i.e. interrupt coming for a short time then after i am getting time out problem)??
> After this sound is not coming this happens when it does the initialisation again using open,
> prepare,enqueue and so on.
>
> Please provide any pointers which can help me out.
>
Check the master/slave mode at each end of the CPU to CODEC link.
If both are master or both are slave you could see issues similar to
what you are seeing.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-02-08 16:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-08 2:34 DMA interrupt not getting triggered(nailed the problem need solution) ANISH KUMAR
2010-02-08 11:05 ` Mark Brown
2010-02-08 16:06 ` James Courtier-Dutton
-- strict thread matches above, loose matches on Subject: below --
2010-02-08 11:17 ANISH KUMAR
2010-02-08 11:27 ` Mark Brown
2010-02-08 12:15 ANISH KUMAR
2010-02-08 14:42 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).