Re: Control message failures kill entire XHCI stack

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28.02.2015 09:16, Alistair Grant wrote:
> Hi Mathias & Devin,
> 
> On Thu, Feb 19, 2015 at 3:18 PM, Mathias Nyman
> <mathias.nyman@xxxxxxxxxxxxxxx> wrote:
>>
>> Got one more patch added to the for-usb-next-branch.
>> It makes sure we allocate enough scratchpad memory for xhci.
>>
>> It's one possible cause.
>> Patch will anyway go to 3.20, but you can try it out first to see if it helps
> 
> My apologies for my slow response, I've been in hospital for almost
> two weeks having my gallbladder removed.
> 
> I tried recording with the Hauppauge USB Live2 using the following kernel:
> 
> * 3.19.0 with the following patches:
> * xhci: Allocate correct amount of scratchpad buffers
> * xhci: Don't touch TRBs memory if those are no longer on the endpoint ring
> * xhci: fix invalid pointer in reset device debugging
> * xhci: add debugging for reset device and stop endpoint commands
> * xhci: add command ring stop and restart debug messages
> 
> Unfortunately it still fails with the xHCI host controller dying.
> I've included an extract from syslog which will hopefully show you the
> main activity.  The entire syslog (boot, test, shutdown) is available
> from: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1412121/+attachment/4330313/+files/syslog
> 

Ok, thanks for the info.
Hope you are feeling better.

Does increasing the TRB count per segment help?

diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 3b97f05..4e12e31 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1268,7 +1268,7 @@ union xhci_trb {
  * since the command ring is 64-byte aligned.
  * It must also be greater than 16.
  */
-#define TRBS_PER_SEGMENT       64
+#define TRBS_PER_SEGMENT       256
 /* Allow two commands + a link TRB, along with any reserved command TRBs */
 #define MAX_RSVD_CMD_TRBS      (TRBS_PER_SEGMENT - 3)
 #define TRB_SEGMENT_SIZE       (TRBS_PER_SEGMENT*16)

It should avoid ring expansion, which combined with canceling the urbs seems to
always happend before this issue 

Take care

-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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux