From: Manuel Lauss <mano@roarinelk.homelinux.net>
To: Takashi Iwai <tiwai@suse.de>
Cc: Manuel Lauss <mano@roarinelk.homelinux.net>,
alsa-devel@alsa-project.org,
Paul Menzel <paulepanter@users.sourceforge.net>
Subject: Re: ALC892 optical SPDIF not working
Date: Sat, 7 Aug 2010 10:11:16 +0200 [thread overview]
Message-ID: <20100807081116.GA21350@wormhole> (raw)
In-Reply-To: <s5hy6ck2521.wl%tiwai@suse.de>
On Thu, Aug 05, 2010 at 10:11:18PM +0200, Takashi Iwai wrote:
> At Thu, 5 Aug 2010 20:52:28 +0200,
> Manuel Lauss wrote:
> >
> > On Mon, Aug 02, 2010 at 06:03:32PM +0200, Takashi Iwai wrote:
> > > At Mon, 02 Aug 2010 10:02:48 +0200,
> > > I wrote:
> > > >
> > > > At Sun, 1 Aug 2010 01:32:23 +0200,
> > > > Manuel Lauss wrote:
> > > > >
> > > > > > > >> Is there a way to insert an initial playback delay? Under linux, the
> > > > > > > >> first 2-2.5 seconds
> > > > > > > >> of anything played are just silence; on windows audible playback
> > > > > > > >> starts immediately.
> > > > > > > >
> > > > > > > > It's the time for synchronization your digital receiver takes, I guess.
> > > > > > > > Maybe changing SPDIF status makes it resync, which happens at each
> > > > > > > > opening / closing the stream.
> > > > > > >
> > > > > > > Yes, seems so. I've found a workaround in meantime.
> > > > > >
> > > > > > Could you elaborate on the workaround please, so others having this
> > > > > > issue know it.
> > > > >
> > > > > My receiver allows to mix analog and digital inputs; with analog mix
> > > > > enabled it syncs immediately.
> > > >
> > > > Just wondering whether the patch below helps?
> > > >
> > > > It's just a proof-of-concept, and it's not safe for multiple streams.
> > > > If this works, we can move on the improvement of the stream assignment.
> > >
> > > ... and the below is the patch. If the previous patch worked, try
> > > this instead of the previous one.
> >
> >
> > Tested with mplayer. The initial 2-2.5sec silence is still there (on every
> > invocation of mplayer), but seeking now works as it should (previously
> > there was 2 sec silence too). Disabling codec pm doesn't help.
>
> OK, it's a slight improvement. Now the question is why it still happens
> at each invocation of mplayer. Assuming that it's no power-save, one
> possible explanation is the call of azx_stream_reset() in prepare.
> But, then this should happen at each seek, too.
>
> Could you put some printk's and check whether AC_VERB_SET_CHANNEL_STREAMID
> and/or AC_VERB_GET_STREAM_FORMAT verbs are executed at each time or
> properly cached?
Something new in the dmesg:
hda_codec: ALC892: BIOS auto-probing.
ALSA hda_codec.c:337: hda_codec: connection list not available for 0x1f
ALSA device list:
#0: HDA ATI SB at 0xfe024000 irq 16
I added a few printks (see patch below). This is the output generated
at every invocation of mplayer:
S1: p->stream_tag 00000000 stream_tag 00000005 p->channel_id 0 channel_id 0
S2: oldval 0 newval 50
S3: p->format_id 0 format 49
S4: oldval 0 newval 50
S1: p->stream_tag 00000000 stream_tag 00000005 p->channel_id 0 channel_id 0
S2: oldval 0 newval 50
S3: p->format_id 0 format 49
S4: oldval 0 newval 50
S1: p->stream_tag 00000000 stream_tag 00000005 p->channel_id 0 channel_id 0
S2: oldval 0 newval 50
S3: p->format_id 0 format 49
S4: oldval 0 newval 50
S1: p->stream_tag 00000000 stream_tag 00000005 p->channel_id 0 channel_id 0
S2: oldval 0 newval 50
S3: p->format_id 0 format 49
S4: oldval 0 newval 50
S1: p->stream_tag 00000000 stream_tag 00000005 p->channel_id 0 channel_id 0
S2: oldval 0 newval 50
S3: p->format_id 0 format 49
S4: oldval 0 newval 50
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index d510359..d6036c6 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1227,9 +1227,13 @@ void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
if (!p)
return;
/* update the stream-id if changed */
+ printk(KERN_ERR "S1: p->stream_tag %08lx stream_tag %08lx p->channel_id %d channel_id %d\n",
+ p->stream_tag, stream_tag, p->channel_id, channel_id);
+
if (p->stream_tag != stream_tag || p->channel_id != channel_id) {
oldval = snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_CONV, 0);
newval = (stream_tag << 4) | channel_id;
+ printk(KERN_ERR "S2: oldval %x newval %x\n", oldval, newval);
if (oldval != newval)
snd_hda_codec_write(codec, nid, 0,
AC_VERB_SET_CHANNEL_STREAMID,
@@ -1238,9 +1242,11 @@ void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
p->channel_id = channel_id;
}
/* update the format-id if changed */
+ printk(KERN_ERR "S3: p->format_id %d format %d\n", p->format_id, format);
if (p->format_id != format) {
oldval = snd_hda_codec_read(codec, nid, 0,
AC_VERB_GET_STREAM_FORMAT, 0);
+ printk(KERN_ERR "S4: oldval %x newval %x\n", oldval, newval);
if (oldval != format) {
msleep(1);
snd_hda_codec_write(codec, nid, 0,
Thanks!
Manuel Lauss
next prev parent reply other threads:[~2010-08-07 8:11 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-30 8:00 ALC892 optical SPDIF not working Manuel Lauss
2010-07-30 9:13 ` Takashi Iwai
2010-07-30 10:24 ` Manuel Lauss
2010-07-30 11:32 ` Manuel Lauss
2010-07-30 11:59 ` Takashi Iwai
2010-07-30 12:03 ` Manuel Lauss
2010-07-31 17:22 ` Paul Menzel
2010-07-31 23:32 ` Manuel Lauss
2010-08-02 8:02 ` Takashi Iwai
2010-08-02 16:03 ` Takashi Iwai
2010-08-05 18:52 ` Manuel Lauss
2010-08-05 20:11 ` Takashi Iwai
2010-08-07 8:11 ` Manuel Lauss [this message]
2010-08-09 6:13 ` Takashi Iwai
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=20100807081116.GA21350@wormhole \
--to=mano@roarinelk.homelinux.net \
--cc=alsa-devel@alsa-project.org \
--cc=paulepanter@users.sourceforge.net \
--cc=tiwai@suse.de \
/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.