Thanks Mathis for these suggestions, i'm going to try it, and let you know the results. i hope you have a nice rest. Gustavo. On Thu, Dec 18, 2014 at 2:12 PM, Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> wrote: > Hi > > On 18.12.2014 13:49, Gustavo Duarte wrote: >> Mathias /Guys, >> >> I got the debug log of the xhci_hcd module, during the communication >> with the robot kit (Lego brick). >> >> Attached are two files: >> >> brick-boot.log: >> The brick is connected to USB port, and press switch ON button. >> >> upload.log: >> The brick is already ON, and start the uploading of an application >> code from PC -> Brick, the uploading procedure never finished. >> >> I don't know so much about usb communications, but seeing these file >> logs, I didn't see any estrange message. >> >> What do you think, can you see some clue there ? > > Looks like it first finds a mismatch in max packet size after device is > addressed, xhci tries to re-configure the endpoint to match the new > maxpacket size. It says it succeeds but immediately after that halts the > endpoint. After this we see most of the usb transfers cancelled. > > Things to try: > > - use old style enumeration, before pluging in your device do: > 'echo y > /sys/module/usbcore/parameters/old_scheme_first' > > - use 3.18 kernel, it has fixes for misbehaving halted control endpoints > > - hack the xhci code and remove setting the new maxpacket size, and see if > it makes a difference. > Do a codechange like this, (copy-pasted diff), and rebuild: > > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c > index 5be1bff..2778c37 100644 > --- a/drivers/usb/host/xhci.c > +++ b/drivers/usb/host/xhci.c > @@ -1370,7 +1370,7 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) > /* Check to see if the max packet size for the default control > * endpoint changed during FS device enumeration > */ > - if (urb->dev->speed == USB_SPEED_FULL) { > + if (urb->dev->speed == USB_SPEED_FULL && 0) { > ret = xhci_check_maxpacket(xhci, slot_id, > ep_index, urb); > if (ret < 0) { > > I'll be away until 5. Jan on vacation, trying not to read emails > > > -Mathias -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html