From: Felipe Balbi > Sent: 19 May 2016 10:57 ... > queue it to the command ring > > > if (ret) { > > spin_unlock_irqrestore(&xhci->lock, flags); > > mutex_unlock(&xhci->mutex); > > xhci_dbg(xhci, "FIXME: allocate a command ring segment\n"); > > kfree(command); > > return 0; > > } > > xhci_ring_cmd_db(xhci); > > spin_unlock_irqrestore(&xhci->lock, flags); > > > > wait_for_completion(command->completion); > > but the command never completes. I wonder if your command doorbell > completed before wait_for_completion() was called, or if it didn't > complete at all. > > Can you enable XHCI debugging logs and try again? (Mathias, what was the > easy trick to enable all XHCI debugging logs?) I remember a problem with the XCHI controller on an amd (x86) motherboard I have. What you are seeing might be the same. Basically it only processed one entry from the command ring each time the doorbell was rung. I don't remember seeing a patch go past that would fix it, and I didn't actually write one. It might be worth trying re-ringing the command ring doorbell in the command completion code. David ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥