svn commit: r185230 - head/sys/dev/sound/pci/hda
Alexander Motin
mav at FreeBSD.org
Sun Nov 23 12:19:35 PST 2008
Author: mav
Date: Sun Nov 23 20:19:35 2008
New Revision: 185230
URL: http://svn.freebsd.org/changeset/base/185230
Log:
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.
Modified:
head/sys/dev/sound/pci/hda/hdac.c
Modified: head/sys/dev/sound/pci/hda/hdac.c
==============================================================================
--- head/sys/dev/sound/pci/hda/hdac.c Sun Nov 23 20:17:17 2008 (r185229)
+++ head/sys/dev/sound/pci/hda/hdac.c Sun Nov 23 20:19:35 2008 (r185230)
@@ -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_
}
}
- /* 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_
(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);
More information about the svn-src-all
mailing list