ALSA: use card device as parent for jack input-devices
authorKay Sievers <kay.sievers@vrfy.org>
Wed, 10 Jun 2009 17:50:33 +0000 (19:50 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 10 Jun 2009 17:50:33 +0000 (19:50 +0200)
This moves the jack devices from the PCI device into the ALSA card device, which
makes it easier for userspace to find all devices belonging to a specific card
while granting access to logged-in users.

Jack input devices from sound cards can now simply be matched with udev by doing:
  SUBSYSTEM="input", SUBSYSTEMS="sound", ...

 ls -l /sys/devices/pci0000:00/0000:00:1b.0/sound/card0
 controlC0
 device -> ../../../0000:00:1b.0
 id
 input10
 input11
 input8
 input9
 number
 pcmC0D0c
 pcmC0D0p
 pcmC0D1p
 power
 subsystem -> ../../../../../class/sound
 uevent

Cc: Lennart Poettering <lennart@0pointer.de>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/jack.c

index d54d1a05fe65af20009da1330b3e659d032e6217..f705eec7372a32aad6187651cc393c69c2ce7e78 100644 (file)
@@ -63,7 +63,7 @@ static int snd_jack_dev_register(struct snd_device *device)
 
        /* Default to the sound card device. */
        if (!jack->input_dev->dev.parent)
-               jack->input_dev->dev.parent = card->dev;
+               jack->input_dev->dev.parent = snd_card_get_device_link(card);
 
        err = input_register_device(jack->input_dev);
        if (err == 0)