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

Bug#738113: linux-image-3.12-1-amd64: regression in xhci_hcd: USB3 doesn't work anymore



On Tue, Feb 11, 2014 at 06:11:09PM +0100, Andreas Cadhalpun wrote:
> Hi,
> 
> thanks for looking into the issue.
>
> On 11.02.2014 17:40, Sarah Sharp wrote:
> >On Sat, Feb 08, 2014 at 03:56:31AM +0000, Ben Hutchings wrote:
> >>For the benefit of other developers, that change is a revert of commit
> >>459d3c146117 ('usb: xhci: Link TRB must not occur within a USB payload
> >>burst') plus this effective revert of commit fc76051c453b ('USB: XHCI:
> >>mark no_sg_constraint'):
> >
> >I hope that's unrelated.  I was effectively going to do the same thing
> >upstream (except allow the no_sg_constraint to be set on 0.96 and
> >earlier hosts).
> 
> I don't know what else changed from 3.12.8-1 to 3.12.9-1, but this
> was the only point in the changelog mentioning xhci.

Alan and I concluded that the cause of this issue is clearing the
no_sg_constraint flag for 1.0 xHCI hosts.  The patches to revert the
commits that caused the issues are on their way to the USB subsystem
maintainer (Greg):

http://marc.info/?l=linux-kernel&m=139420433008427&w=2
http://marc.info/?l=linux-kernel&m=139420429908418&w=2
http://marc.info/?l=linux-kernel&m=139420432208425&w=2

The second commit is needed, since once we allow arbitrarily-aligned
scatter-gather, the ASIX driver will use it, which causes the USB to
ethernet adapter to drop packets occasionally.

So we're basically back where we started before 3.12.  Scatter-gather
isn't supported on the ASIX driver, and mass storage scatter-gather
works fine.  We'll fix the ethernet driver case in 3.16 once we
implement TD fragments.

Sarah Sharp

> 
> >What does `sudo lspci` show as the manufacturer of your host controller?
> 
> The host controller is:
> 00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series
> Chipset Family USB xHCI [8086:8c31] (rev 05) (prog-if 30 [XHCI])
> 	Subsystem: Lenovo Device [17aa:3978]
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> 	Latency: 0
> 	Interrupt: pin A routed to IRQ 46
> 	Region 0: Memory at b5700000 (64-bit, non-prefetchable) [size=64K]
> 	Capabilities: <access denied>
> 	Kernel driver in use: xhci_hcd
> 
> More information about my setup (including this) can be found in the
> original bug report:
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=738113
> 
> >Have you also tried reverting commit
> >9df89d85b407690afa46ddfbccc80bec6869971d "usbcore: set lpm_capable field
> >for LPM capable root hubs"?  It enables USB 3.0 Link PM for non-Intel
> >host controllers, which is not what I intended, and could cause issues
> >with other host controllers.  A patch to revert that was sent to Greg
> >last week, but it looks like it hasn't gotten into Linus' tree yet.
> 
> Not sure if that would help, as I have an Intel host controller.
> 
> Best regards,
> Andreas
> 


Reply to: