162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci#ifndef __USB_AUDIO_MIDI2_H
362306a36Sopenharmony_ci#define __USB_AUDIO_MIDI2_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include "midi.h"
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#if IS_ENABLED(CONFIG_SND_USB_AUDIO_MIDI_V2)
862306a36Sopenharmony_ciint snd_usb_midi_v2_create(struct snd_usb_audio *chip,
962306a36Sopenharmony_ci			   struct usb_interface *iface,
1062306a36Sopenharmony_ci			   const struct snd_usb_audio_quirk *quirk,
1162306a36Sopenharmony_ci			   unsigned int usb_id);
1262306a36Sopenharmony_civoid snd_usb_midi_v2_suspend_all(struct snd_usb_audio *chip);
1362306a36Sopenharmony_civoid snd_usb_midi_v2_resume_all(struct snd_usb_audio *chip);
1462306a36Sopenharmony_civoid snd_usb_midi_v2_disconnect_all(struct snd_usb_audio *chip);
1562306a36Sopenharmony_civoid snd_usb_midi_v2_free_all(struct snd_usb_audio *chip);
1662306a36Sopenharmony_ci#else /* CONFIG_SND_USB_AUDIO_MIDI_V2 */
1762306a36Sopenharmony_ci/* fallback to MIDI 1.0 creation */
1862306a36Sopenharmony_cistatic inline int snd_usb_midi_v2_create(struct snd_usb_audio *chip,
1962306a36Sopenharmony_ci					 struct usb_interface *iface,
2062306a36Sopenharmony_ci					 const struct snd_usb_audio_quirk *quirk,
2162306a36Sopenharmony_ci					 unsigned int usb_id)
2262306a36Sopenharmony_ci{
2362306a36Sopenharmony_ci	return __snd_usbmidi_create(chip->card, iface, &chip->midi_list,
2462306a36Sopenharmony_ci				    quirk, usb_id, &chip->num_rawmidis);
2562306a36Sopenharmony_ci}
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cistatic inline void snd_usb_midi_v2_suspend_all(struct snd_usb_audio *chip) {}
2862306a36Sopenharmony_cistatic inline void snd_usb_midi_v2_resume_all(struct snd_usb_audio *chip) {}
2962306a36Sopenharmony_cistatic inline void snd_usb_midi_v2_disconnect_all(struct snd_usb_audio *chip) {}
3062306a36Sopenharmony_cistatic inline void snd_usb_midi_v2_free_all(struct snd_usb_audio *chip) {}
3162306a36Sopenharmony_ci#endif /* CONFIG_SND_USB_AUDIO_MIDI_V2 */
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#endif /* __USB_AUDIO_MIDI2_H */
34