diff options
author | Markus Grabner <grabner@icg.tugraz.at> | 2010-08-23 01:08:25 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-31 15:28:16 -0700 |
commit | e1a164d7a3e05aae15eb603ee8f1b77446480a3b (patch) | |
tree | 829d6ed586e9fe3680be24faab8c61d5c596443e /drivers/staging/line6/midi.c | |
parent | 1027f476f507ef7ed9919cd3e3d32310f3985da1 (diff) |
Staging: line6: another upstream sync
Everything should be in sync now.
Signed-off-by: Markus Grabner <grabner@icg.tugraz.at>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/line6/midi.c')
-rw-r--r-- | drivers/staging/line6/midi.c | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/drivers/staging/line6/midi.c b/drivers/staging/line6/midi.c index 3c7baff7366..fffd8050377 100644 --- a/drivers/staging/line6/midi.c +++ b/drivers/staging/line6/midi.c @@ -1,5 +1,5 @@ /* - * Line6 Linux USB driver - 0.9.0 + * Line6 Linux USB driver - 0.9.1beta * * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) * @@ -20,15 +20,12 @@ #include "pod.h" #include "usbdefs.h" - #define line6_rawmidi_substream_midi(substream) \ ((struct snd_line6_midi *)((substream)->rmidi->private_data)) - static int send_midi_async(struct usb_line6 *line6, unsigned char *data, int length); - /* Pass data received via USB to MIDI. */ @@ -45,7 +42,8 @@ void line6_midi_receive(struct usb_line6 *line6, unsigned char *data, */ static void line6_midi_transmit(struct snd_rawmidi_substream *substream) { - struct usb_line6 *line6 = line6_rawmidi_substream_midi(substream)->line6; + struct usb_line6 *line6 = + line6_rawmidi_substream_midi(substream)->line6; struct snd_line6_midi *line6midi = line6->line6midi; struct MidiBuffer *mb = &line6midi->midibuf_out; unsigned long flags; @@ -74,7 +72,8 @@ static void line6_midi_transmit(struct snd_rawmidi_substream *substream) if (done == 0) break; - if (line6_midibuf_skip_message(mb, line6midi->midi_mask_transmit)) + if (line6_midibuf_skip_message + (mb, line6midi->midi_mask_transmit)) continue; send_midi_async(line6, chunk, done); @@ -132,7 +131,6 @@ static int send_midi_async(struct usb_line6 *line6, unsigned char *data, dev_err(line6->ifcdev, "Out of memory\n"); return -ENOMEM; } - #ifdef CONFIG_LINE6_USB_DUMP_CTRL line6_write_hexdump(line6, 'S', data, length); #endif @@ -174,6 +172,9 @@ static int send_midi_async(struct usb_line6 *line6, unsigned char *data, length); break; + case LINE6_DEVID_VARIAX: + break; + default: MISSING_CASE; } @@ -195,7 +196,8 @@ static void line6_midi_output_trigger(struct snd_rawmidi_substream *substream, int up) { unsigned long flags; - struct usb_line6 *line6 = line6_rawmidi_substream_midi(substream)->line6; + struct usb_line6 *line6 = + line6_rawmidi_substream_midi(substream)->line6; line6->line6midi->substream_transmit = substream; spin_lock_irqsave(&line6->line6midi->send_urb_lock, flags); @@ -208,9 +210,11 @@ static void line6_midi_output_trigger(struct snd_rawmidi_substream *substream, static void line6_midi_output_drain(struct snd_rawmidi_substream *substream) { - struct usb_line6 *line6 = line6_rawmidi_substream_midi(substream)->line6; + struct usb_line6 *line6 = + line6_rawmidi_substream_midi(substream)->line6; struct snd_line6_midi *midi = line6->line6midi; - wait_event_interruptible(midi->send_wait, midi->num_active_send_urbs == 0); + wait_event_interruptible(midi->send_wait, + midi->num_active_send_urbs == 0); } static int line6_midi_input_open(struct snd_rawmidi_substream *substream) @@ -226,7 +230,8 @@ static int line6_midi_input_close(struct snd_rawmidi_substream *substream) static void line6_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) { - struct usb_line6 *line6 = line6_rawmidi_substream_midi(substream)->line6; + struct usb_line6 *line6 = + line6_rawmidi_substream_midi(substream)->line6; if (up) line6->line6midi->substream_receive = substream; @@ -271,9 +276,8 @@ static int snd_line6_new_midi(struct snd_line6_midi *line6midi) strcpy(rmidi->name, line6midi->line6->properties->name); rmidi->info_flags = - SNDRV_RAWMIDI_INFO_OUTPUT | - SNDRV_RAWMIDI_INFO_INPUT | - SNDRV_RAWMIDI_INFO_DUPLEX; + SNDRV_RAWMIDI_INFO_OUTPUT | + SNDRV_RAWMIDI_INFO_INPUT | SNDRV_RAWMIDI_INFO_DUPLEX; snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, &line6_midi_output_ops); @@ -346,15 +350,19 @@ static ssize_t midi_set_midi_mask_receive(struct device *dev, return count; } -static DEVICE_ATTR(midi_mask_transmit, S_IWUGO | S_IRUGO, midi_get_midi_mask_transmit, midi_set_midi_mask_transmit); -static DEVICE_ATTR(midi_mask_receive, S_IWUGO | S_IRUGO, midi_get_midi_mask_receive, midi_set_midi_mask_receive); +static DEVICE_ATTR(midi_mask_transmit, S_IWUGO | S_IRUGO, + midi_get_midi_mask_transmit, midi_set_midi_mask_transmit); +static DEVICE_ATTR(midi_mask_receive, S_IWUGO | S_IRUGO, + midi_get_midi_mask_receive, midi_set_midi_mask_receive); /* MIDI device destructor */ static int snd_line6_midi_free(struct snd_device *device) { struct snd_line6_midi *line6midi = device->device_data; - device_remove_file(line6midi->line6->ifcdev, &dev_attr_midi_mask_transmit); - device_remove_file(line6midi->line6->ifcdev, &dev_attr_midi_mask_receive); + device_remove_file(line6midi->line6->ifcdev, + &dev_attr_midi_mask_transmit); + device_remove_file(line6midi->line6->ifcdev, + &dev_attr_midi_mask_receive); line6_midibuf_destroy(&line6midi->midibuf_in); line6_midibuf_destroy(&line6midi->midibuf_out); return 0; @@ -373,7 +381,7 @@ int line6_init_midi(struct usb_line6 *line6) struct snd_line6_midi *line6midi; if (!(line6->properties->capabilities & LINE6_BIT_CONTROL)) - return 0; /* skip MIDI initialization and report success */ + return 0; /* skip MIDI initialization and report success */ line6midi = kzalloc(sizeof(struct snd_line6_midi), GFP_KERNEL); |