Krzysztof Foltman wrote: > + * AKAI MPD16 protocol: one or more chunks consisting of first byte of > + * (0x20 | msg_len) and then a MIDI message (msg_len bytes long) > + * > + * Messages sent: > + * 21 FE (active sense) > + * 23 90 xx xx (note on) > + * 23 Ax xx xx (polyphonic pressure) > + * 23 Bx xx xx (control change) > + */ > +static void snd_usbmidi_akai_input(struct snd_usb_midi_in_endpoint *ep, > + uint8_t *buffer, int buffer_length) > +{ > + unsigned int pos = 0; > + while (pos < (unsigned)buffer_length && (buffer[pos] & 0xF8) == 0x20) { > + int msg_len = buffer[pos] & 0x0f; > + snd_usbmidi_input_data(ep, 0, &buffer[pos + 1], msg_len); This might overflow if the buffer ends with a 2x byte. > +static struct usb_protocol_ops snd_usbmidi_akai_ops = { > + .input = snd_usbmidi_akai_input, > + .output = snd_usbmidi_standard_output, > + .output_packet = snd_usbmidi_output_standard_packet, Assuming that this device doesn't have any output ports, please add a comment that this isn't the actual output protocol. > checkpatch.pl also complains about the use of space after the > ampersand in quirks-table.h, where it seems to be a common practice. I'd value consistency over some stupid script, but this issue isn't important enough to worry over. Overall, the patch looks fine. Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel