Do not use soft PCM volume for digital outputs to allow SPDIF AC3 bypass

to work. Soft PCM volume (and vchans) unable to bypass AC3 stream now.
This commit is contained in:
mav 2008-11-23 20:19:35 +00:00
parent 2d953c4a30
commit 954a204664

View File

@ -83,7 +83,7 @@
#include "mixer_if.h"
#define HDA_DRV_TEST_REV "20081122_0117"
#define HDA_DRV_TEST_REV "20081123_0118"
SND_DECLARE_FILE("$FreeBSD$");
@ -3549,8 +3549,8 @@ hdac_audio_ctl_ossmixer_init(struct snd_mixer *m)
}
}
/* Declare soft PCM and master volume if needed. */
if (pdevinfo->play >= 0) {
/* Declare soft PCM volume if needed. */
if (pdevinfo->play >= 0 && !pdevinfo->digital) {
ctl = NULL;
if ((mask & SOUND_MASK_PCM) == 0 ||
(devinfo->function.audio.quirks & HDA_QUIRK_SOFTPCMVOL)) {
@ -3580,8 +3580,12 @@ hdac_audio_ctl_ossmixer_init(struct snd_mixer *m)
(softpcmvol == 1) ? "Forcing" : "Enabling");
);
}
}
if ((mask & SOUND_MASK_VOLUME) == 0) {
/* Declare master volume if needed. */
if (pdevinfo->play >= 0) {
if ((mask & (SOUND_MASK_VOLUME | SOUND_MASK_PCM)) ==
SOUND_MASK_PCM) {
mask |= SOUND_MASK_VOLUME;
mix_setparentchild(m, SOUND_MIXER_VOLUME,
SOUND_MASK_PCM);