xref: /openbmc/linux/sound/usb/midi2.h (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*ff49d1dfSTakashi Iwai // SPDX-License-Identifier: GPL-2.0-or-later
2*ff49d1dfSTakashi Iwai #ifndef __USB_AUDIO_MIDI2_H
3*ff49d1dfSTakashi Iwai #define __USB_AUDIO_MIDI2_H
4*ff49d1dfSTakashi Iwai 
5*ff49d1dfSTakashi Iwai #include "midi.h"
6*ff49d1dfSTakashi Iwai 
7*ff49d1dfSTakashi Iwai #if IS_ENABLED(CONFIG_SND_USB_AUDIO_MIDI_V2)
8*ff49d1dfSTakashi Iwai int snd_usb_midi_v2_create(struct snd_usb_audio *chip,
9*ff49d1dfSTakashi Iwai 			   struct usb_interface *iface,
10*ff49d1dfSTakashi Iwai 			   const struct snd_usb_audio_quirk *quirk,
11*ff49d1dfSTakashi Iwai 			   unsigned int usb_id);
12*ff49d1dfSTakashi Iwai void snd_usb_midi_v2_suspend_all(struct snd_usb_audio *chip);
13*ff49d1dfSTakashi Iwai void snd_usb_midi_v2_resume_all(struct snd_usb_audio *chip);
14*ff49d1dfSTakashi Iwai void snd_usb_midi_v2_disconnect_all(struct snd_usb_audio *chip);
15*ff49d1dfSTakashi Iwai void snd_usb_midi_v2_free_all(struct snd_usb_audio *chip);
16*ff49d1dfSTakashi Iwai #else /* CONFIG_SND_USB_AUDIO_MIDI_V2 */
17*ff49d1dfSTakashi Iwai /* fallback to MIDI 1.0 creation */
snd_usb_midi_v2_create(struct snd_usb_audio * chip,struct usb_interface * iface,const struct snd_usb_audio_quirk * quirk,unsigned int usb_id)18*ff49d1dfSTakashi Iwai static inline int snd_usb_midi_v2_create(struct snd_usb_audio *chip,
19*ff49d1dfSTakashi Iwai 					 struct usb_interface *iface,
20*ff49d1dfSTakashi Iwai 					 const struct snd_usb_audio_quirk *quirk,
21*ff49d1dfSTakashi Iwai 					 unsigned int usb_id)
22*ff49d1dfSTakashi Iwai {
23*ff49d1dfSTakashi Iwai 	return __snd_usbmidi_create(chip->card, iface, &chip->midi_list,
24*ff49d1dfSTakashi Iwai 				    quirk, usb_id, &chip->num_rawmidis);
25*ff49d1dfSTakashi Iwai }
26*ff49d1dfSTakashi Iwai 
snd_usb_midi_v2_suspend_all(struct snd_usb_audio * chip)27*ff49d1dfSTakashi Iwai static inline void snd_usb_midi_v2_suspend_all(struct snd_usb_audio *chip) {}
snd_usb_midi_v2_resume_all(struct snd_usb_audio * chip)28*ff49d1dfSTakashi Iwai static inline void snd_usb_midi_v2_resume_all(struct snd_usb_audio *chip) {}
snd_usb_midi_v2_disconnect_all(struct snd_usb_audio * chip)29*ff49d1dfSTakashi Iwai static inline void snd_usb_midi_v2_disconnect_all(struct snd_usb_audio *chip) {}
snd_usb_midi_v2_free_all(struct snd_usb_audio * chip)30*ff49d1dfSTakashi Iwai static inline void snd_usb_midi_v2_free_all(struct snd_usb_audio *chip) {}
31*ff49d1dfSTakashi Iwai #endif /* CONFIG_SND_USB_AUDIO_MIDI_V2 */
32*ff49d1dfSTakashi Iwai 
33*ff49d1dfSTakashi Iwai #endif /* __USB_AUDIO_MIDI2_H */
34