[pulseaudio-discuss] module-hal-detect not loading HDMI devices...
Colin Guthrie
gmane at colin.guthr.ie
Sun Feb 8 10:38:56 PST 2009
Hi,
Someone was asking on IRC as to why module-hal-detect didn't find his
HDMI output...
A little investigation later and I see:
#
D: module-hal-detect.c: Not loaded device
/org/freedesktop/Hal/devices/pci_1002_960f_alsa_playback_3
From lspci:
snd_hda_intel : ATI Technologies Inc|RS780 Azalia controller
(vendor:1002 device:960f subv:147b subd:a705)
Card:ATI Radeon X1300 and later: ATI Technologies Inc|Radeon HD 3200
Graphics [DISPLAY_VGA] (vendor:1002 device:9610 subv:147b subd:a705)
In lshal we see:
udi = '/org/freedesktop/Hal/devices/pci_1002_960f_alsa_playback_3'
access_control.file = '/dev/snd/pcmC1D3p' (string)
access_control.type = 'sound' (string)
alsa.card = 1 (0x1) (int)
alsa.card_id = 'HDA ATI HDMI' (string)
alsa.device = 3 (0x3) (int)
alsa.device_file = '/dev/snd/pcmC1D3p' (string)
alsa.device_id = 'ATI HDMI' (string)
alsa.originating_device =
'/org/freedesktop/Hal/devices/pci_1002_960f' (string)
alsa.pcm_class = 'generic' (string)
alsa.type = 'playback' (string)
info.callouts.add = {'hal-acl-tool --add-device'} (string list)
info.callouts.remove = {'hal-acl-tool --remove-device'} (string list)
info.capabilities = {'alsa', 'access_control'} (string list)
info.category = 'alsa' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_1002_960f' (string)
info.product = 'ATI HDMI ALSA Playback Device' (string)
info.subsystem = 'sound' (string)
info.udi =
'/org/freedesktop/Hal/devices/pci_1002_960f_alsa_playback_3' (string)
linux.device_file = '/dev/snd/pcmC1D3p' (string)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'sound' (string)
linux.sysfs_path = '/sys/class/sound/pcmC1D3p' (string)
As you can see it says alsa.device=3
In module-hal-detect it says:
/* We only care for the main device */
device = libhal_device_get_property_int(u->context, udi,
"alsa.device", &error);
if (dbus_error_is_set(&error) || device != 0)
goto fail;
So this means that the HTMI device is being ignored because it's not the
first device.
How do we make this work?
In the case of the hdmi output, this is the lowest device number that
has the other capabilities we want... should we therefore actually track
all devices and only add the one with the lowest number? This would work
out as device 0 for most cases but it would also load the HDMI device in
this case?
WDYT?
Col
--
Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/
Day Job:
Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
Mandriva Linux Contributor [http://www.mandriva.com/]
PulseAudio Hacker [http://www.pulseaudio.org/]
Trac Hacker [http://trac.edgewall.org/]
More information about the pulseaudio-discuss
mailing list