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@suse.de 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@viatech.com.cn
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 */