19 May
2010
19 May
'10
8:59 a.m.
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