On Mon, Sep 06, 2010 at 03:01:27PM +0900, Takahiro Nishikawa wrote: > Hi, > > I am trying to use the usb xhci driver on powerpc(P2020RDB) board. > But I experience the same problem "devices are not detected". > It was posted in July on this ML. > > Does anyone try to fix the problem? Hi Nishikawa, The xHCI driver currently doesn't work on big-endian systems. It's a known bug, but I haven't had time to look into it. Patches are welcome. > It seems to be correct until "Finished xhci_run". > In "In xhci_handle_event" it does not handle the event correctly. > > if ((event->event_cmd.flags & TRB_CYCLE) != > xhci->event_ring->cycle_state) { > xhci->error_bitmask |= 1 << 2; > return; > } > > The bit0 of event->event_cmd.flags is not set though the bit0 of xhci->event_ring->cycle_state is set. The handler returns with the error, and receives the same event again and again. > > I cannot find the reason why event_cmd.flags is zero. The xHCI host controller will write a little endian value into the 32-bit flags portion of the event. But I wonder if the math is correct on a big endian system. When xhci->event_ring->cycle_state is first written, does it need to be wrapped in a cpu_to_le() call? Also, does the TRB_CYCLE need to be wrapped? Sarah Sharp xHCI driver maintainer -- 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