From: Sarah Sharp Date: Fri, 30 Jul 2010 05:13:17 +0000 (-0700) Subject: USB: xhci: Don't flush doorbell writes. X-Git-Tag: v2.6.36-rc1~293^2~6 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ed3f24539209826235debaec66ca0da708b5bb89;p=~emulex%2Finfiniband.git USB: xhci: Don't flush doorbell writes. To tell the host controller that there are transfers on the endpoint rings, we need to ring the endpoint doorbell. This is a PCI MMIO write, which can be delayed until another register read is queued. The previous code would flush the doorbell write by reading the doorbell register after the write. This may take time, and it's not necessary to force the host controller to know about the transfers right away. Don't flush the doorbell register writes. Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 6860e9f097b..bc3f4f42706 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -337,11 +337,6 @@ static void ring_ep_doorbell(struct xhci_hcd *xhci, field = xhci_readl(xhci, db_addr) & DB_MASK; field |= EPI_TO_DB(ep_index) | STREAM_ID_TO_DB(stream_id); xhci_writel(xhci, field, db_addr); - /* Flush PCI posted writes - FIXME Matthew Wilcox says this - * isn't time-critical and we shouldn't make the CPU wait for - * the flush. - */ - xhci_readl(xhci, db_addr); } }