twx-linux/drivers/usb/gadget/function
Takashi Iwai d6468be779 usb: gadget: midi2: MIDI 1.0 interface (altset 0) support
This patch extends MIDI 2.0 function driver to add more proper support
for MIDI 1.0 interface.  Before this patch, the driver only exposes
the USB descriptor of a MIDI 1.0 interface in altset 0 while no actual
I/O is running for it.  This patch enables the actual I/O for the
altset 0; the backend UMP rawmidi is translated from/to the MIDI 1.0
USB commands.

For converting to USB MIDI 1.0 data protocol, a helper function is
copied from the existing f_midi driver, in addition to a few other UMP
Core helper functions.  For the MIDI 1.0 OUT (that is, input for
gadget), the incoming USB MIDI 1.0 packet is translated to UMP packets
via UMP Core helper, and tossed to the attached UMP rawmidi.  It's a
relatively straightforward.  OTOH, for MIDI 1.0 IN (i.e. output for
gadget), it's a bit more complex: we need to convert a source UMP
packet once to the standard MIDI 1.0 byte stream, and convert it again
to USB MIDI 1.0 packets, then send them out.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20230725062206.9674-5-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-07-26 06:38:14 +02:00
..
f_acm.c
f_ecm.c usb: gadget: f_ecm: Add suspend/resume and remote wakeup support 2023-03-29 10:27:01 +02:00
f_eem.c
f_fs.c usb: gadget: f_fs: Add unbind event before functionfs_unbind 2023-05-29 15:24:08 +01:00
f_hid.c USB: gadget: f_hid: make hidg_class a static const structure 2023-06-20 16:20:48 +02:00
f_loopback.c
f_mass_storage.c usb: gadget: f_mass_storage: remove unnecessary open check 2023-06-13 11:56:11 +02:00
f_mass_storage.h
f_midi2.c usb: gadget: midi2: MIDI 1.0 interface (altset 0) support 2023-07-26 06:38:14 +02:00
f_midi.c
f_ncm.c usb: gadget: f_ncm: fix potential NULL ptr deref in ncm_bitrate() 2023-01-17 17:10:34 +01:00
f_obex.c
f_phonet.c
f_printer.c USB: gadget: f_printer: make usb_gadget_class a static const structure 2023-06-20 16:20:47 +02:00
f_rndis.c
f_serial.c
f_sourcesink.c
f_subset.c
f_tcm.c Merge patch series "target: TMF and recovery fixes" 2023-03-24 17:39:15 -04:00
f_uac1_legacy.c
f_uac1.c
f_uac2.c usb: gadget: f_uac2: Fix incorrect increment of bNumEndpoints 2023-01-25 16:17:46 +01:00
f_uvc.c usb: gadget: uvc: Use custom strings if available 2023-02-07 08:46:37 +01:00
f_uvc.h
g_zero.h
Makefile usb: gadget: Add support for USB MIDI 2.0 function driver 2023-07-26 06:38:14 +02:00
ndis.h
rndis.c
rndis.h
storage_common.c usb: gadget: Use kstrtobool() instead of strtobool() 2022-11-03 23:46:01 +09:00
storage_common.h
tcm.h
u_audio.c usb: gadget: u_audio: don't let userspace block driver unbind 2023-03-09 14:56:32 +01:00
u_audio.h
u_ecm.h
u_eem.h
u_ether_configfs.h
u_ether.c usb: gadget: u_ether: Fix host MAC address case 2023-05-13 18:46:59 +09:00
u_ether.h usb: gadget: f_ecm: Add suspend/resume and remote wakeup support 2023-03-29 10:27:01 +02:00
u_fs.h usb: gadget: ffs: remove ENTER() macro 2023-03-29 08:55:58 +02:00
u_gether.h
u_hid.h
u_midi2.h usb: gadget: Add support for USB MIDI 2.0 function driver 2023-07-26 06:38:14 +02:00
u_midi.h
u_ncm.h
u_phonet.h
u_printer.h
u_rndis.h
u_serial.c usb: gadget: u_serial: Add null pointer check in gs_start_io 2023-06-13 11:55:09 +02:00
u_serial.h
u_tcm.h
u_uac1_legacy.c
u_uac1_legacy.h
u_uac1.h
u_uac2.h
u_uvc.h usb: gadget: uvc: Allow linking function to string descs 2023-02-07 08:46:37 +01:00
uac_common.h
uvc_configfs.c usb: gadget: uvc: Make bmControls attr read/write 2023-03-29 08:51:26 +02:00
uvc_configfs.h usb: gadget: uvc: Allow linking XUs to string descriptors 2023-02-07 08:46:37 +01:00
uvc_queue.c Revert "usb: gadget: uvc: limit isoc_sg to super speed gadgets" 2022-10-26 14:09:06 +02:00
uvc_queue.h
uvc_v4l2.c usb: uvc: use v4l2_fill_fmtdesc instead of open coded format name 2023-01-31 09:40:43 +01:00
uvc_v4l2.h
uvc_video.c usb: gadget: uvc: clean up comments and styling in video_pump 2023-06-13 11:55:38 +02:00
uvc_video.h
uvc.h usb: gadget: uvc: Copy XU descriptors during .bind() 2023-02-07 08:46:36 +01:00