[alsa-devel] snd-hda-intel support for SPDIF-in wiht vt1708 card?
Takashi Iwai
tiwai at suse.de
Tue Dec 18 16:05:16 CET 2007
At Tue, 18 Dec 2007 08:28:06 -0800,
John Stile wrote:
>
> On Tue, 2007-12-18 at 14:04 +0100, Takashi Iwai wrote:
> > At Mon, 17 Dec 2007 10:27:27 -0800,
> > John Stile wrote:
> > >
> > > I am trying to use a Via VT1708 audio card ( uses the snd-hda-intel.ko
> > > driver) to record from SPDIF-in.
> > >
> > > An off-list reply to my posting to alsa-users list suggested that
> > > snd-hda-intel.ko might not support SPDIF-in with the VT1708 card, which
> > > brought me here.
> > >
> > > Can someone who works on the Intel HDA driver tell me if it supports
> > > SPDIF-in on the VT1708 audio card?
> >
> > It should be, but not tested well, I guess.
> >
> > The driver enables the SPDIF-in capability when BIOS sets the pin
> > information properly. Check /proc/asound/card0/codec#* file whether
> > you have any (activated) input pin node that supports SPDIF-in.
> >
> >
> > Takashi
> Thank you for your reply!
> The output of your command is below.
> spdif-out=Node 0x25
> spdif-in=Node 0x26
> Neither labeled inactive,
> but spdif-in doesn't list a "Connection" line.
Just because it's only for input (thus it has no "source").
> I have the latest bios: 1.03 (2007/08/23) (a beta bios is available).
> Do I try the beta bios?
I don't think so. Likely a driver bug.
How about the patch below (against the latest HG version)?
Takashi
diff -r 2d3893cf030c pci/hda/patch_via.c
--- a/pci/hda/patch_via.c Tue Dec 18 15:42:53 2007 +0100
+++ b/pci/hda/patch_via.c Tue Dec 18 17:48:00 2007 +0100
@@ -568,25 +568,27 @@ static int via_init(struct hda_codec *co
if (IS_VT1708_VENDORID(codec->vendor_id)) {
snd_hda_codec_write(codec, VT1708_DIGIN_PIN, 0,
AC_VERB_SET_PIN_WIDGET_CONTROL,
- 0x40);
+ PIN_OUT);
snd_hda_codec_write(codec, VT1708_DIGIN_PIN, 0,
AC_VERB_SET_EAPD_BTLENABLE, 0x02);
} else if (IS_VT1709_10CH_VENDORID(codec->vendor_id) ||
IS_VT1709_6CH_VENDORID(codec->vendor_id)) {
snd_hda_codec_write(codec, VT1709_DIGIN_PIN, 0,
AC_VERB_SET_PIN_WIDGET_CONTROL,
- 0x40);
+ PIN_OUT);
snd_hda_codec_write(codec, VT1709_DIGIN_PIN, 0,
AC_VERB_SET_EAPD_BTLENABLE, 0x02);
} else if (IS_VT1708B_8CH_VENDORID(codec->vendor_id) ||
IS_VT1708B_4CH_VENDORID(codec->vendor_id)) {
snd_hda_codec_write(codec, VT1708B_DIGIN_PIN, 0,
AC_VERB_SET_PIN_WIDGET_CONTROL,
- 0x40);
+ PIN_OUT);
snd_hda_codec_write(codec, VT1708B_DIGIN_PIN, 0,
AC_VERB_SET_EAPD_BTLENABLE, 0x02);
}
- }
+ } else /* enable SPDIF-input pin */
+ snd_hda_codec_write(codec, spec->autocfg.dig_in_pin, 0,
+ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN);
return 0;
}
More information about the Alsa-devel
mailing list