Input: xpad - set proper buffer length for outgoing requests
authorMichael Gruber <lists.mg@googlemail.com>
Tue, 15 Apr 2008 05:31:47 +0000 (01:31 -0400)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 15 Apr 2008 05:31:47 +0000 (01:31 -0400)
The messages for led/rumble are exactly 3 and 8 bytes respectively.
Hence set up the transfer_buffer_length accordingly.

Signed-off-by: Michael Gruber <lists.mg@googlemail.com>
Acked-by: Anssi Hannula <anssi.hannula@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/joystick/xpad.c

index d4d289e75dc260f739cd2935adec69637cde4f83..52ddb04644abaebd5a71af2d8583ec70bdde583d 100644 (file)
@@ -558,6 +558,7 @@ static int xpad_play_effect(struct input_dev *dev, void *data,
                xpad->odata[5] = 0x00;
                xpad->odata[6] = 0x00;
                xpad->odata[7] = 0x00;
+               xpad->irq_out->transfer_buffer_length = 8;
                usb_submit_urb(xpad->irq_out, GFP_KERNEL);
        }
 
@@ -594,6 +595,7 @@ static void xpad_send_led_command(struct usb_xpad *xpad, int command)
                xpad->odata[0] = 0x01;
                xpad->odata[1] = 0x03;
                xpad->odata[2] = command;
+               xpad->irq_out->transfer_buffer_length = 3;
                usb_submit_urb(xpad->irq_out, GFP_KERNEL);
                mutex_unlock(&xpad->odata_mutex);
        }