A menos que eu esteja ignorando alguma coisa, parece que o controlador foi inicializado duas vezes :
[ 5.195136] xhci_hcd 0000:05:00.0: xHCI Host Controller
[ 5.195145] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 3
[ 5.202621] xhci_hcd 0000:05:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x00000090
....
[ 5.203568] xhci_hcd 0000:05:00.0: xHCI Host Controller
[ 5.203572] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 4
[ 5.204014] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
As Informações sobre o produto da Renesas parecem dizer que, embora haja duas portas cada para cada hub raiz USB 3.0 / USB 2.0, existe apenas um hub raiz, então não entendo o que está acontecendo.
Se duas instâncias de xhci_hcd
estiverem tentando controlar o cartão ao mesmo tempo, é claro que isso vai dar errado.
A próxima coisa que eu faço é olhar para o xhci_hcd
source e recompilar com o suporte de depuração. Isto requer experiência de programação, então se você não sabe como fazer isso, alternativamente arquive um relatório de bug no bugtracker do kernel que manipula xhci_hcd
, mesmo se os desenvolvedores apenas disserem que sou burro e a inicialização repetida é normal. / p>
Editar
Inspecionando as mensagens de depuração, isso aqui parece muito estranho:
[ 2.423207] xhci_hcd 0000:05:00.0: Finished xhci_run for USB2 roothub
[ 2.423420] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[ 2.423547] xhci_hcd 0000:05:00.0: set port power, actual port 0 status = 0x2a0
[ 2.423563] xhci_hcd 0000:05:00.0: set port power, actual port 1 status = 0x2a0
[ 2.423613] xhci_hcd 0000:05:00.0: xHCI Host Controller
[ 2.423616] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 2
[ 2.423621] xhci_hcd 0000:05:00.0: // Turn on HC, cmd = 0x5.
[ 2.426468] xhci_hcd 0000:05:00.0: Finished xhci_run for USB3 roothub
[ 2.426630] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[ 2.426798] xhci_hcd 0000:05:00.0: set port power, actual port 0 status = 0x2a0
[ 2.426819] xhci_hcd 0000:05:00.0: set port power, actual port 1 status = 0x2a0
[ 2.426893] xhci_hcd 0000:05:00.0: remove, state 1
[ 2.427674] xhci_hcd 0000:05:00.0: USB bus 2 deregistered
[ 2.427731] xhci_hcd 0000:05:00.0: remove, state 1
Então, depois de inicializar tudo, um reset é chamado tanto no hub raiz USB 2.0 quanto no USB 3.0. Eles são removidos e, em seguida, o driver tenta inicializar a coisa toda novamente (que é a segunda inicialização que vi). Só que desta vez falha muito.
No código-fonte do kernel, a função xhci_endpoint_reset
tem comentários ao longo das linhas "Podemos precisar implementar o config ep cmd no xhci 4.8.1" e "Por enquanto apenas imprimir depuração para acompanhar a situação".
Portanto, este é definitivamente um caso para os desenvolvedores do kernel. Certifique-se de corrigir o relatório de erros com a saída de depuração.