Quoting Sujith <m.sujith@xxxxxxxxx>:
Jussi Kivilinna wrote:
+static int usb_endpoint_int_to_bulk(struct usb_device *udev,
unsigned int pipe)
+{
+ struct usb_host_endpoint *ep;
+
+ ep = usb_pipe_endpoint(udev, pipe);
+ if (!ep)
+ return -EPIPE;
+
+ switch (ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) {
+ case USB_ENDPOINT_XFER_INT:
+ ep->desc.bmAttributes &= ~USB_ENDPOINT_XFERTYPE_MASK;
+ ep->desc.bmAttributes |= USB_ENDPOINT_XFER_BULK;
+ ep->desc.bInterval = 0;
+ /* passthru */
ath9k_htc does the same thing (see ath/ath9k/hif_usb.c).
It does seem to be working properly but I am wondering if the
USB subsystem has to be updated after the driver messes around with
bmAttributes.
(lsusb would still show the endpoint type as INT).
You have a usb_reset_configuration() call before changing
the endpoint type, why is that necessary ? And would that
reset the endpoints as well ?
Choosed to place intr->bulk change after reset as that seemed less
likely to wrong. Tested in the other order and that works too.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html