On Thu, Mar 12, 2015 at 09:39:06AM +0800, Lu Baolu wrote: > When a device with an isochronous endpoint is plugged into the Intel > xHCI host controller, and the driver submits multiple frames per URB, > the xHCI driver will set the Block Event Interrupt (BEI) flag on all > but the last TD for the URB. This causes the host controller to place > an event on the event ring, but not send an interrupt. When the last > TD for the URB completes, BEI is cleared, and we get an interrupt for > the whole URB. > > However, under some Intel xHCI host controllers like ValleyView and > Lynx Point LP, if the event ring is full of events from transfers with > BEI set, a "Event Ring is Full" event will be posted to the last entry > of the event ring, but no interrupt is generated. Host will cease all > transfer and command executions and wait until software completes > handling the pending events in event ring. That means xHC stops but > event of "event ring is full" is not notified. As the result, the xHC > looks like dead to user. > > The patch is to apply XHCI_AVOID_BEI to Intel VallyView and Lynx Point > LP devices. And it should be backported to kernels as old as 3.0, that > contains the commit 69e848c2090a ("Intel xhci: Support EHCI/xHCI port > switching.") > > Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > drivers/usb/host/xhci-pci.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c > index fd53c9e..5aa4893 100644 > --- a/drivers/usb/host/xhci-pci.c > +++ b/drivers/usb/host/xhci-pci.c > @@ -40,6 +40,7 @@ > #define PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI 0x22b5 > #define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_XHCI 0xa12f > #define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_XHCI 0x9d2f > +#define PCI_DEVICE_ID_INTEL_VALLEYVIEW_XHCI 0x0f35 Minor nit, you added a tab where the rest of the file was using a space :( -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html