From: Takashi Iwai <tiwai@suse.de>
To: bruce@azbarclay.com
Cc: alsa-devel@alsa-project.org
Subject: Re: Trigger problems while writing Alsa Shim
Date: Thu, 13 Mar 2008 11:57:48 +0100 [thread overview]
Message-ID: <s5htzja99hv.wl%tiwai@suse.de> (raw)
In-Reply-To: <20080307101005.vg3idkwoyokco84w@69.49.230.6>
At Fri, 07 Mar 2008 10:10:05 -0600,
bruce@azbarclay.com wrote:
>
> I am writing a shim from alsa to our own sound card drivers. I was
> able to get the init driver working and our sound card recognized.
> Things seem to be set up correctly. When I do aplay to my device (USB
> device works find), it calls my copy callback twice and then it calls
> the trigger and fails. The call that fails is in pcm_write
> (writei_func) with a -5. I know that my callback returns zero but
> there must be something else under the covers since that gets to be
> zero. Any help would be appreciated.
The error -5 is -EIO. Typically it indicates that the data isn't
handled properly by the PCM core.
ALSA PCM core needs proper (asynchronous) notification via
snd_pcm_period_elapsed(). Otherwise the internals won't be updated
and you'll have the error. Usually this is called from the irq
handler.
snd_pcm_period_elapsed() is supposed to be issued at the time when the
last period (fragment, chunk) has been processed -- meaning the sound
is really played back. It doesn't mean that the data is fed to the
hardware.
Once after snd_pcm_period_elapsed() is called, PCM core calls the
pointer callback and updates the internals including the current
position. Then it wakes up the pending tasks, which will restart
writing to the buffer, etc.
Takashi
prev parent reply other threads:[~2008-03-13 10:57 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-07 16:10 Trigger problems while writing Alsa Shim bruce
2008-03-13 10:57 ` Takashi Iwai [this message]
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=s5htzja99hv.wl%tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=bruce@azbarclay.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox