On Sun, Nov 23, 2014 at 06:03:23PM -0800, Greg Kroah-Hartman wrote:
> The xpad wireless endpoint is not a bulk endpoint on my devices, but
> rather an interrupt one, so the USB core complains when it is submitted.
> I'm guessing that the author really did mean that this should be an
> interrupt urb, but as there are a zillion different xpad devices out
> there, let's cover out bases and handle both bulk and interrupt
> endpoints just as easily.
> 
> Signed-off-by: "Pierre-Loup A. Griffais" <pgriff...@valvesoftware.com>
> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
> Cc: stable <sta...@vger.kernel.org>


Applied, thank you.

> ---
> 
> This has been in my local tree since January, don't know why it never
> got pushed out, sorry for the delay.  Valve has been using a version of
> this patch for a year now.
> 
>  drivers/input/joystick/xpad.c |   16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -1179,9 +1179,19 @@ static int xpad_probe(struct usb_interfa
>               }
>  
>               ep_irq_in = &intf->cur_altsetting->endpoint[1].desc;
> -             usb_fill_bulk_urb(xpad->bulk_out, udev,
> -                             usb_sndbulkpipe(udev, 
> ep_irq_in->bEndpointAddress),
> -                             xpad->bdata, XPAD_PKT_LEN, xpad_bulk_out, xpad);
> +             if (usb_endpoint_is_bulk_out(ep_irq_in)) {
> +                     usb_fill_bulk_urb(xpad->bulk_out, udev,
> +                                       usb_sndbulkpipe(udev,
> +                                                       
> ep_irq_in->bEndpointAddress),
> +                                       xpad->bdata, XPAD_PKT_LEN,
> +                                       xpad_bulk_out, xpad);
> +             } else {
> +                     usb_fill_int_urb(xpad->bulk_out, udev,
> +                                      usb_sndintpipe(udev,
> +                                                     
> ep_irq_in->bEndpointAddress),
> +                                      xpad->bdata, XPAD_PKT_LEN,
> +                                      xpad_bulk_out, xpad, 0);
> +             }
>  
>               /*
>                * Submit the int URB immediately rather than waiting for open

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to