Re: [RFC] xhci: Intel Panther Point BEI quirk.

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

 



On Mon, Sep 24, 2012 at 03:50:04PM -0400, Alan Stern wrote:
> On Mon, 24 Sep 2012, Sarah Sharp wrote:
> 
> > When a device with an isochronous endpoint is behind a hub plugged into
> > the Intel Panther Point 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 a Panther Point xHCI host controller, if the parent hub
> > is unplugged when one or more events from transfers with BEI set are on
> > the event ring, a port status change event is placed on the event ring,
> > but no interrupt is generated.  This means URBs stop completing, and the
> > USB device disconnect is not noticed.  Something like a USB headset will
> > cause mplayer to hang when the device is disconnected.
> 
> Won't that also cause a problem for hot-unplug detection?  How will the 
> hub driver learn about the unplug event if there's no interrupt?

There will be an interrupt if we don't use the BEI flag.  That's what
this patch fixes.

The BEI flag is only supposed to block isochronous interrupts, and only
if there was no error associated with the transfer.  But the Panther
Point xHCI host is broken, and the BEI flag stops unrelated interrupts,
like the port status change event interrupt.

> Also, does this same problem affect bulk transfers, in particular those
> using scatter-gather?

Bulk transfers, including scatter-gather transfers, are always
translated into one TD, and the BEI flag is not used.  AFAIK, this bug
only affects transfers with the BEI flag set, so bulk transfers should
be fine.

Sarah Sharp
--
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