diff options
Diffstat (limited to 'sound/usb/midi.c')
-rw-r--r-- | sound/usb/midi.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sound/usb/midi.c b/sound/usb/midi.c index 007cf5831121..47de8af42f16 100644 --- a/sound/usb/midi.c +++ b/sound/usb/midi.c | |||
@@ -2320,10 +2320,11 @@ EXPORT_SYMBOL(snd_usbmidi_resume); | |||
2320 | /* | 2320 | /* |
2321 | * Creates and registers everything needed for a MIDI streaming interface. | 2321 | * Creates and registers everything needed for a MIDI streaming interface. |
2322 | */ | 2322 | */ |
2323 | int snd_usbmidi_create(struct snd_card *card, | 2323 | int __snd_usbmidi_create(struct snd_card *card, |
2324 | struct usb_interface *iface, | 2324 | struct usb_interface *iface, |
2325 | struct list_head *midi_list, | 2325 | struct list_head *midi_list, |
2326 | const struct snd_usb_audio_quirk *quirk) | 2326 | const struct snd_usb_audio_quirk *quirk, |
2327 | unsigned int usb_id) | ||
2327 | { | 2328 | { |
2328 | struct snd_usb_midi *umidi; | 2329 | struct snd_usb_midi *umidi; |
2329 | struct snd_usb_midi_endpoint_info endpoints[MIDI_MAX_ENDPOINTS]; | 2330 | struct snd_usb_midi_endpoint_info endpoints[MIDI_MAX_ENDPOINTS]; |
@@ -2341,8 +2342,10 @@ int snd_usbmidi_create(struct snd_card *card, | |||
2341 | spin_lock_init(&umidi->disc_lock); | 2342 | spin_lock_init(&umidi->disc_lock); |
2342 | init_rwsem(&umidi->disc_rwsem); | 2343 | init_rwsem(&umidi->disc_rwsem); |
2343 | mutex_init(&umidi->mutex); | 2344 | mutex_init(&umidi->mutex); |
2344 | umidi->usb_id = USB_ID(le16_to_cpu(umidi->dev->descriptor.idVendor), | 2345 | if (!usb_id) |
2346 | usb_id = USB_ID(le16_to_cpu(umidi->dev->descriptor.idVendor), | ||
2345 | le16_to_cpu(umidi->dev->descriptor.idProduct)); | 2347 | le16_to_cpu(umidi->dev->descriptor.idProduct)); |
2348 | umidi->usb_id = usb_id; | ||
2346 | setup_timer(&umidi->error_timer, snd_usbmidi_error_timer, | 2349 | setup_timer(&umidi->error_timer, snd_usbmidi_error_timer, |
2347 | (unsigned long)umidi); | 2350 | (unsigned long)umidi); |
2348 | 2351 | ||
@@ -2463,4 +2466,4 @@ int snd_usbmidi_create(struct snd_card *card, | |||
2463 | list_add_tail(&umidi->list, midi_list); | 2466 | list_add_tail(&umidi->list, midi_list); |
2464 | return 0; | 2467 | return 0; |
2465 | } | 2468 | } |
2466 | EXPORT_SYMBOL(snd_usbmidi_create); | 2469 | EXPORT_SYMBOL(__snd_usbmidi_create); |