From: Clemens Ladisch <clemens@ladisch.de>
To: Daniel Drake <dsd@laptop.org>
Cc: alsa-devel@alsa-project.org
Subject: Re: Handling HDA FIFO error
Date: Wed, 15 May 2013 11:08:55 +0200 [thread overview]
Message-ID: <519350A7.3000606@ladisch.de> (raw)
In-Reply-To: <CAMLZHHT8Q4iV5Ug8s6XyA1-LNWUe+WH3a0jEqHTbXYC-ihzy7w@mail.gmail.com>
Daniel Drake wrote:
> Digging into the HDA code, I can see that normally, when the stream
> gets started, we get interrupts with SD_STS as 0x24. In the failure
> case, as soon as we start the stream, we get a flood of interrupts
> with SD_STS 0x8 - which indicates FIFO error.
>
> Disabling interrupt generation upon FIFO error does not help much - it
> avoids the flood of interrupts, but doesn't change the fact that audio
> playing apps hang or loop infinitely.
>
> Are there any things I could check that would explain why a FIFO error
> might be occurring?
Probably a buffer underrun, i.e., the controller did not manage to
read samples from memory fast enough.
> any suggestions for how to improve the hda_intel driver to handle
> FIFO error gracefully? Right now there is no code to handle that.
It should stop the stream, i.e., go into the xrun state.
In theory, the application restarting the stream should reset the DMA
engine enough to make it work again. But you say this happens also
when starting the stream, so I guess more resetting is needed.
Regards,
Clemens
next prev parent reply other threads:[~2013-05-15 9:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-14 17:00 Handling HDA FIFO error Daniel Drake
2013-05-15 9:08 ` Clemens Ladisch [this message]
2013-05-15 10:08 ` Takashi Iwai
2013-05-25 14:08 ` Daniel Drake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=519350A7.3000606@ladisch.de \
--to=clemens@ladisch.de \
--cc=alsa-devel@alsa-project.org \
--cc=dsd@laptop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.