Re: [PATCH 17/31] HDA patch_via.c: Add second S/PDIF out control for VT1708S and VT1702.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Tue, 6 Oct 2009 13:01:42 +0800,
Li Bo wrote:
> 
> They are separate S/PDIFs, and in our test, slave SPDIF  seems can work
>  independently with master SPDIF. I'll do some test later.

The problem is that master SPDIF will change both master and slaves.
In your implementation, the slave can be used freely only while the
master isn't used.  Or, it'll conflict later once when the master is
used.


Takashi

> On Mon, Oct 5, 2009 at 11:14 PM, Takashi Iwai <tiwai@xxxxxxx> wrote:
> > At Mon, 5 Oct 2009 22:27:35 +0800,
> > Li Bo wrote:
> >>
> >> [ALSA] HDA VIA: Add second S/PDIF out control for VT1708S and VT1702.
> >>
> >> Signed-off-by: Lydia Wang <lydiawang@xxxxxxxxxxxxxx>
> >
> > The slave SPDIFs are really slaves.  They are supposed to have identical
> > SPDIF status bits as the master.  So, creating the individual SPDIF status
> > controls is wrong.
> >
> > If they have to be handled separately, we shouldn't use slave SPDIF but
> > create different streams, etc.
> >
> >
> > Takashi
> >
> >
> >>
> >> Index: sound-2.6/sound/pci/hda/patch_via.c
> >> ===================================================================
> >> --- sound-2.6.orig/sound/pci/hda/patch_via.c  2009-10-05 15:10:59.000000000 +0800
> >> +++ sound-2.6/sound/pci/hda/patch_via.c       2009-10-05 15:11:02.000000000 +0800
> >> @@ -1265,6 +1265,13 @@
> >>               if (err < 0)
> >>                       return err;
> >>               spec->multiout.share_spdif = 1;
> >> +             /* lydia add for second spdif out */
> >> +             if (spec->slave_dig_outs[0]) {
> >> +                     err = snd_hda_create_spdif_out_ctls(codec,
> >> +                                                 spec->slave_dig_outs[0]);
> >> +                     if (err < 0)
> >> +                             return err;
> >> +             }
> >>       }
> >>       if (spec->dig_in_nid) {
> >>               err = snd_hda_create_spdif_in_ctls(codec, spec->dig_in_nid);
> >> @@ -3127,7 +3134,7 @@
> >>  };
> >>
> >>  static struct hda_pcm_stream vt1708S_pcm_digital_playback = {
> >> -     .substreams = 1,
> >> +     .substreams = 2,
> >>       .channels_min = 2,
> >>       .channels_max = 2,
> >>       /* NID is set in via_build_pcms */
> >>
> >
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux