|
@@ -1179,9 +1179,19 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
|
|
}
|
|
|
|
|
|
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
|