diff options
author | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-04-06 11:43:23 +0200 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-04-06 11:43:23 +0200 |
commit | 885429ee97ffb6a0ea3e7970559d3e38c0817dc2 (patch) | |
tree | 7e909c9b15ae274104dc1c7acf67882946ea51af | |
parent | 56c66cc47320fea48b24976a9bc9fa6d0a683342 (diff) | |
parent | de296d2ca777fc18f9fb9216d27fb4bda98c8e74 (diff) |
Merge branch 'audio-android' into stable-android-ux500-3.3-1
-rw-r--r-- | sound/usb/card.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c index e667491baee..d18d7ea63fe 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -48,6 +48,7 @@ #include <linux/usb/audio.h> #include <linux/usb/audio-v2.h> #include <linux/module.h> +#include <linux/switch.h> #include <sound/control.h> #include <sound/core.h> @@ -87,6 +88,8 @@ static bool async_unlink = 1; static int device_setup[SNDRV_CARDS]; /* device parameter for this card */ static bool ignore_ctl_error; +struct switch_dev switch_audio_detection; + module_param_array(index, int, NULL, 0444); MODULE_PARM_DESC(index, "Index value for the USB audio adapter."); module_param_array(id, charp, NULL, 0444); @@ -597,6 +600,7 @@ static int usb_audio_probe(struct usb_interface *intf, chip = snd_usb_audio_probe(interface_to_usbdev(intf), intf, id); if (chip) { usb_set_intfdata(intf, chip); + switch_set_state(&switch_audio_detection, 1); return 0; } else return -EIO; @@ -604,6 +608,7 @@ static int usb_audio_probe(struct usb_interface *intf, static void usb_audio_disconnect(struct usb_interface *intf) { + switch_set_state(&switch_audio_detection, 0); snd_usb_audio_disconnect(interface_to_usbdev(intf), usb_get_intfdata(intf)); } @@ -721,11 +726,15 @@ static int __init snd_usb_audio_init(void) printk(KERN_WARNING "invalid nrpacks value.\n"); return -EINVAL; } + + switch_audio_detection.name = "usb_audio"; + switch_dev_register(&switch_audio_detection); return usb_register(&usb_audio_driver); } static void __exit snd_usb_audio_cleanup(void) { + switch_dev_unregister(&switch_audio_detection); usb_deregister(&usb_audio_driver); } |