All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Shi <alex.shi@intel.com>
To: "Xu, Andiry" <Andiry.Xu@amd.com>
Cc: "stern@rowland.harvard.edu" <stern@rowland.harvard.edu>,
	gregkh <gregkh@linuxfoundation.org>,
	"sarah.a.sharp@linux.intel.com" <sarah.a.sharp@linux.intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	linux-usb <linux-usb@vger.kernel.org>
Subject: RE: [PATCH] usb/core: skip unnecessary line IRQ request for USB3
Date: Thu, 15 Mar 2012 14:37:47 +0800	[thread overview]
Message-ID: <1331793467.2979.86.camel@debian> (raw)
In-Reply-To: <2A76B9D36150BE4293842BC2FE8FF16503320F@SCYBEXDAG04.amd.com>


> 
> You may also remove the unregister the legacy interrupt part in
> xhci_try_enable_msi().

Sure, thanks!

>From 6ae16651ae33ea1841984f3a5eb4a691ed730a19 Mon Sep 17 00:00:00 2001
From: Alex Shi <alex.shi@intel.com>
Date: Thu, 15 Mar 2012 08:12:47 +0800
Subject: [PATCH] usb/core: skip unnecessary line IRQ request for USB3

USB3(only xhci driver) requests line IRQ here but will disable it
in later driver->start function and try MSI first:

xhci_hcd 0000:02:00.0: irq 18, io mem 0xfe500000
xhci_hcd 0000:02:00.0: irq 45 for MSI/MSI-X
xhci_hcd 0000:02:00.0: irq 46 for MSI/MSI-X

So it is better to remove the redundant request here.

Signed-off-by: Alex Shi <alex.shi@intel.com>
---
 drivers/usb/core/hcd.c  |    3 ++-
 drivers/usb/host/xhci.c |    3 ---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index e128232..5b09825 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -2450,7 +2450,8 @@ int usb_add_hcd(struct usb_hcd *hcd,
 	/* enable irqs just before we start the controller,
 	 * if the BIOS provides legacy PCI irqs.
 	 */
-	if (usb_hcd_is_primary_hcd(hcd) && irqnum) {
+	if (usb_hcd_is_primary_hcd(hcd) && irqnum
+		&& (hcd->driver->flags & HCD_MASK) != HCD_USB3) {
 		retval = usb_hcd_request_irqs(hcd, irqnum, irqflags);
 		if (retval)
 			goto err_request_irq;
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index c939f5f..64979c2 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -338,9 +338,6 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd)
 	if (xhci->quirks & XHCI_BROKEN_MSI)
 		return 0;
 
-	/* unregister the legacy interrupt */
-	if (hcd->irq)
-		free_irq(hcd->irq, hcd);
 	hcd->irq = -1;
 
 	ret = xhci_setup_msix(xhci);
-- 
1.6.3.3


> 
> In fact, I think all the MSI related codes should be moved to xhci-pci.c,
> Since MSI is PCI-only.

A patch moving MSI from xhci to USB core is in reviewing. That walks
far. :) https://lkml.org/lkml/2012/2/20/76 



  reply	other threads:[~2012-03-15  6:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-15  4:48 [PATCH] usb/core: skip unnecessary line IRQ request for USB3 Alex Shi
2012-03-15  6:21 ` Xu, Andiry
2012-03-15  6:37   ` Alex Shi [this message]
2012-03-15 14:29 ` Alan Stern
2012-03-15 14:39   ` Alex Shi
2012-03-16  8:05     ` Alex Shi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1331793467.2979.86.camel@debian \
    --to=alex.shi@intel.com \
    --cc=Andiry.Xu@amd.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=sarah.a.sharp@linux.intel.com \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.