V4L/DVB (10659): em28xx: register device to soundcard for sysfs
authorNicola Soranzo <nsoranzo@tiscali.it>
Thu, 19 Feb 2009 16:41:56 +0000 (13:41 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 27 Feb 2009 01:29:18 +0000 (22:29 -0300)
As explained in "Writing an ALSA driver" (T. Iwai), audio drivers should
set the struct device for the card before registering the card instance.
This will add the correct /sys/class/sound/cardN/device symlink, so HAL
can see the device and ConsoleKit sets its ACL permissions for the
logged-in user.

For em28xx audio capture cards found e.g. in Hauppauge WinTV-HVR-900 (R2),
this patch fixes errors like:

ALSA lib pcm_hw.c:1429:(_snd_pcm_hw_open) Invalid value for card
Error opening audio: Permission denied

when running mplayer as a normal user.

Signed-off-by: Nicola Soranzo <nsoranzo@tiscali.it>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/em28xx/em28xx-audio.c

index 5d882a44e3eee5444c00062f3e5edf70b118cc4e..2ac738fa6a07e0cd66fac559fd3c9688060dff39 100644 (file)
@@ -463,6 +463,8 @@ static int em28xx_audio_init(struct em28xx *dev)
        pcm->info_flags = 0;
        pcm->private_data = dev;
        strcpy(pcm->name, "Empia 28xx Capture");
+
+       snd_card_set_dev(card, &dev->udev->dev);
        strcpy(card->driver, "Empia Em28xx Audio");
        strcpy(card->shortname, "Em28xx Audio");
        strcpy(card->longname, "Empia Em28xx Audio");