Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33cfad66 authored by Andrzej Pietrasiewicz's avatar Andrzej Pietrasiewicz Committed by Felipe Balbi
Browse files

usb: gadget: f_midi: remove compatibility layer



There are no old f_midi interface users left, so remove it.

Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 32522a51
Loading
Loading
Loading
Loading
+0 −122
Original line number Diff line number Diff line
@@ -389,31 +389,6 @@ static void f_midi_disable(struct usb_function *f)
	usb_ep_disable(midi->out_ep);
}

#ifdef USBF_MIDI_INCLUDED
static void f_midi_unbind(struct usb_configuration *c, struct usb_function *f)
{
	struct usb_composite_dev *cdev = f->config->cdev;
	struct f_midi *midi = func_to_midi(f);
	struct snd_card *card;

	DBG(cdev, "unbind\n");

	/* just to be sure */
	f_midi_disable(f);

	card = midi->card;
	midi->card = NULL;
	if (card)
		snd_card_free(card);

	kfree(midi->id);
	midi->id = NULL;

	usb_free_all_descriptors(f);
	kfree(midi);
}
#endif

static int f_midi_snd_free(struct snd_device *device)
{
	return 0;
@@ -744,14 +719,12 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
	struct f_midi *midi = func_to_midi(f);
	int status, n, jack = 1, i = 0;

#ifndef USBF_MIDI_INCLUDED
	midi->gadget = cdev->gadget;
	tasklet_init(&midi->tasklet, f_midi_in_tasklet, (unsigned long) midi);
	status = f_midi_register_card(midi);
	if (status < 0)
		goto fail_register;

#endif
	/* maybe allocate device-global string ID */
	if (midi_string_defs[0].id == 0) {
		status = usb_string_id(c->cdev);
@@ -908,10 +881,8 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
	kfree(midi_function);
	usb_free_descriptors(f->hs_descriptors);
fail:
#ifndef USBF_MIDI_INCLUDED
	f_midi_unregister_card(midi);
fail_register:
#endif
	/* we might as well release our claims on endpoints */
	if (midi->out_ep)
		midi->out_ep->driver_data = NULL;
@@ -923,98 +894,6 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
	return status;
}

#ifdef USBF_MIDI_INCLUDED
/**
 * f_midi_bind_config - add USB MIDI function to a configuration
 * @c: the configuration to supcard the USB audio function
 * @index: the soundcard index to use for the ALSA device creation
 * @id: the soundcard id to use for the ALSA device creation
 * @buflen: the buffer length to use
 * @qlen the number of read requests to pre-allocate
 * Context: single threaded during gadget setup
 *
 * Returns zero on success, else negative errno.
 */
int __init f_midi_bind_config(struct usb_configuration *c,
			      int index, char *id,
			      unsigned int in_ports,
			      unsigned int out_ports,
			      unsigned int buflen,
			      unsigned int qlen)
{
	struct f_midi *midi;
	int status, i;

	/* sanity check */
	if (in_ports > MAX_PORTS || out_ports > MAX_PORTS)
		return -EINVAL;

	/* allocate and initialize one new instance */
	midi = kzalloc(sizeof *midi, GFP_KERNEL);
	if (!midi) {
		status = -ENOMEM;
		goto fail;
	}

	for (i = 0; i < in_ports; i++) {
		struct gmidi_in_port *port = kzalloc(sizeof(*port), GFP_KERNEL);
		if (!port) {
			status = -ENOMEM;
			goto setup_fail;
		}

		port->midi = midi;
		port->active = 0;
		port->cable = i;
		midi->in_port[i] = port;
	}

	midi->gadget = c->cdev->gadget;
	tasklet_init(&midi->tasklet, f_midi_in_tasklet, (unsigned long) midi);

	/* set up ALSA midi devices */
	midi->in_ports = in_ports;
	midi->out_ports = out_ports;
	midi->index = index;
	status = f_midi_register_card(midi);
	if (status < 0)
		goto setup_fail;

	midi->func.name        = "gmidi function";
	midi->func.strings     = midi_strings;
	midi->func.bind        = f_midi_bind;
	midi->func.unbind      = f_midi_unbind;
	midi->func.set_alt     = f_midi_set_alt;
	midi->func.disable     = f_midi_disable;

	midi->id = kstrdup(id, GFP_KERNEL);
	if (id && !midi->id) {
		status = -ENOMEM;
		goto kstrdup_fail;
	}
	midi->buflen = buflen;
	midi->qlen = qlen;

	status = usb_add_function(c, &midi->func);
	if (status)
		goto add_fail;

	return 0;

add_fail:
	kfree(midi->id);
kstrdup_fail:
	f_midi_unregister_card(midi);
setup_fail:
	for (--i; i >= 0; i--)
		kfree(midi->in_port[i]);
	kfree(midi);
fail:
	return status;
}

#else

static void f_midi_free_inst(struct usb_function_instance *f)
{
	struct f_midi_opts *opts;
@@ -1131,4 +1010,3 @@ struct usb_function *f_midi_alloc(struct usb_function_instance *fi)
}

DECLARE_USB_FUNCTION_INIT(midi, f_midi_alloc_inst, f_midi_alloc);
#endif