diff options
author | David Henningsson <david.henningsson@canonical.com> | 2012-02-23 07:17:03 +0100 |
---|---|---|
committer | Wim Taymans <wtaymans@redhat.com> | 2014-06-23 16:15:22 +0200 |
commit | e8024c04ca9c66615f5b42b02ed9234276a81890 (patch) | |
tree | 49e18ab82857f2efa969bc2a6d32cdace97e4714 | |
parent | dfcb4f3a622c3399dc846f281537fb8bec481c38 (diff) |
alsa: Add port information to HDMI profiles
For Nvidia and Intel, support probing of up to four HDMI devices.
Also add port information to all HDMI profiles.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
-rw-r--r-- | src/Makefile.am | 7 | ||||
-rw-r--r-- | src/modules/alsa/mixer/paths/hdmi-output-0.conf | 6 | ||||
-rw-r--r-- | src/modules/alsa/mixer/paths/hdmi-output-1.conf | 6 | ||||
-rw-r--r-- | src/modules/alsa/mixer/paths/hdmi-output-2.conf | 6 | ||||
-rw-r--r-- | src/modules/alsa/mixer/paths/hdmi-output-3.conf | 6 | ||||
-rw-r--r-- | src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules | 8 | ||||
-rw-r--r-- | src/modules/alsa/mixer/profile-sets/default.conf | 1 | ||||
-rw-r--r-- | src/modules/alsa/mixer/profile-sets/extra-hdmi.conf | 158 |
8 files changed, 196 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index ffe755883..47ad028de 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -110,6 +110,7 @@ MODULE_LDFLAGS = -module -disable-static -avoid-version $(LDFLAGS_NOUNDEFINED) ALSA_PROFILES = \ modules/alsa/mixer/profile-sets/default.conf \ modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf \ + modules/alsa/mixer/profile-sets/extra-hdmi.conf \ modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \ modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf @@ -132,7 +133,11 @@ ALSA_PATHS = \ modules/alsa/mixer/paths/analog-output-headphones.conf \ modules/alsa/mixer/paths/analog-output-headphones-2.conf \ modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf \ - modules/alsa/mixer/paths/analog-output-mono.conf + modules/alsa/mixer/paths/analog-output-mono.conf \ + modules/alsa/mixer/paths/hdmi-output-0.conf \ + modules/alsa/mixer/paths/hdmi-output-1.conf \ + modules/alsa/mixer/paths/hdmi-output-2.conf \ + modules/alsa/mixer/paths/hdmi-output-3.conf EXTRA_DIST = \ pulse/client.conf.in \ diff --git a/src/modules/alsa/mixer/paths/hdmi-output-0.conf b/src/modules/alsa/mixer/paths/hdmi-output-0.conf new file mode 100644 index 000000000..46ee4fd14 --- /dev/null +++ b/src/modules/alsa/mixer/paths/hdmi-output-0.conf @@ -0,0 +1,6 @@ +[General] +description = HDMI / DisplayPort +priority = 59 + +[Jack HDMI/DP,pcm=3] +required-any = any diff --git a/src/modules/alsa/mixer/paths/hdmi-output-1.conf b/src/modules/alsa/mixer/paths/hdmi-output-1.conf new file mode 100644 index 000000000..da8fcb411 --- /dev/null +++ b/src/modules/alsa/mixer/paths/hdmi-output-1.conf @@ -0,0 +1,6 @@ +[General] +description = HDMI / DisplayPort 2 +priority = 58 + +[Jack HDMI/DP,pcm=7] +required-any = any diff --git a/src/modules/alsa/mixer/paths/hdmi-output-2.conf b/src/modules/alsa/mixer/paths/hdmi-output-2.conf new file mode 100644 index 000000000..5fcddc612 --- /dev/null +++ b/src/modules/alsa/mixer/paths/hdmi-output-2.conf @@ -0,0 +1,6 @@ +[General] +description = HDMI / DisplayPort 3 +priority = 57 + +[Jack HDMI/DP,pcm=8] +required-any = any diff --git a/src/modules/alsa/mixer/paths/hdmi-output-3.conf b/src/modules/alsa/mixer/paths/hdmi-output-3.conf new file mode 100644 index 000000000..820078703 --- /dev/null +++ b/src/modules/alsa/mixer/paths/hdmi-output-3.conf @@ -0,0 +1,6 @@ +[General] +description = HDMI / DisplayPort 4 +priority = 56 + +[Jack HDMI/DP,pcm=9] +required-any = any diff --git a/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules index b8e88d0f3..825291055 100644 --- a/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules +++ b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules @@ -10,7 +10,7 @@ # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. +# Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software Foundation, @@ -19,9 +19,15 @@ SUBSYSTEM!="sound", GOTO="pulseaudio_end" ACTION!="change", GOTO="pulseaudio_end" KERNEL!="card*", GOTO="pulseaudio_end" +SUBSYSTEMS=="usb", GOTO="pulseaudio_check_usb" SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1978", ENV{PULSE_PROFILE_SET}="native-instruments-audio8dj.conf" SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="0839", ENV{PULSE_PROFILE_SET}="native-instruments-audio4dj.conf" SUBSYSTEMS=="usb", ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2012", ENV{PULSE_PROFILE_SET}="maudio-fasttrack-pro.conf" +# NVidia and Intel HDAs often have more than one HDMI codec/port on the same card +ATTRS{vendor}=="0x10de", ENV{PULSE_PROFILE_SET}="extra-hdmi.conf" +ATTRS{vendor}=="0x8086", ENV{PULSE_PROFILE_SET}="extra-hdmi.conf" +GOTO="pulseaudio_end" + LABEL="pulseaudio_end" diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf index 5d352f1ca..71dd63fee 100644 --- a/src/modules/alsa/mixer/profile-sets/default.conf +++ b/src/modules/alsa/mixer/profile-sets/default.conf @@ -136,6 +136,7 @@ device-strings = hdmi:%f channel-map = left,right priority = 4 direction = output +paths-output = hdmi-output-0 ; An example for defining multiple-sink profiles #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo] diff --git a/src/modules/alsa/mixer/profile-sets/extra-hdmi.conf b/src/modules/alsa/mixer/profile-sets/extra-hdmi.conf new file mode 100644 index 000000000..d0bff6a3d --- /dev/null +++ b/src/modules/alsa/mixer/profile-sets/extra-hdmi.conf @@ -0,0 +1,158 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; This is a profile for Nvidia and Intel cards - some cards have four HDMI codecs, +; and which ones are working seems to vary a lot between GPU boards. In addition, +; Nvidia and Intel make southbridges as well, so we need to keep the existing +; analog profiles. +; (And by not adding all these extra profiles to default.conf, we make sure +; there is no performance hit for non-Nvidia/Intel cards.) + +[General] +auto-profiles = yes + +[Mapping analog-mono] +device-strings = hw:%f +channel-map = mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono +paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line +priority = 1 + +[Mapping analog-stereo] +device-strings = front:%f hw:%f +channel-map = left,right +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono +paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line +priority = 10 + +[Mapping analog-surround-40] +device-strings = surround40:%f +channel-map = front-left,front-right,rear-left,rear-right +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono +priority = 7 +direction = output + +[Mapping analog-surround-41] +device-strings = surround41:%f +channel-map = front-left,front-right,rear-left,rear-right,lfe +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono +priority = 8 +direction = output + +[Mapping analog-surround-50] +device-strings = surround50:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono +priority = 7 +direction = output + +[Mapping analog-surround-51] +device-strings = surround51:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono +priority = 8 +direction = output + +[Mapping analog-surround-71] +device-strings = surround71:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right +description = Analog Surround 7.1 +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono +priority = 7 +direction = output + +[Mapping iec958-stereo] +device-strings = iec958:%f +channel-map = left,right +paths-input = iec958-stereo-input +paths-output = iec958-stereo-output +priority = 5 + +[Mapping iec958-ac3-surround-40] +device-strings = a52:%f +channel-map = front-left,front-right,rear-left,rear-right +priority = 2 +direction = output + +[Mapping iec958-ac3-surround-51] +device-strings = a52:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 3 +direction = output + +[Mapping hdmi-stereo] +device-strings = hdmi:%f +description = Digital Stereo (HDMI) +paths-output = hdmi-output-0 +channel-map = left,right +priority = 4 +direction = output + +[Mapping hdmi-surround] +description = Digital Surround 5.1 (HDMI) +device-strings = hdmi:%f +paths-output = hdmi-output-0 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 3 +direction = output + +[Mapping hdmi-stereo-extra1] +description = Digital Stereo (HDMI) +device-strings = hdmi:%f,1 +paths-output = hdmi-output-1 +channel-map = left,right +priority = 2 +direction = output + +[Mapping hdmi-surround-extra1] +description = Digital Surround 5.1 (HDMI) +device-strings = hdmi:%f,1 +paths-output = hdmi-output-1 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 1 +direction = output + +[Mapping hdmi-stereo-extra2] +description = Digital Stereo (HDMI) +device-strings = hdmi:%f,2 +paths-output = hdmi-output-2 +channel-map = left,right +priority = 2 +direction = output + +[Mapping hdmi-surround-extra2] +description = Digital Surround 5.1 (HDMI) +device-strings = hdmi:%f,2 +paths-output = hdmi-output-2 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 1 +direction = output + +[Mapping hdmi-stereo-extra3] +description = Digital Stereo (HDMI) +device-strings = hdmi:%f,3 +paths-output = hdmi-output-3 +channel-map = left,right +priority = 2 +direction = output + +[Mapping hdmi-surround-extra3] +description = Digital Surround 5.1 (HDMI) +device-strings = hdmi:%f,3 +paths-output = hdmi-output-3 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 1 +direction = output |