RE: [PATCH] usb/core: skip unnecessary line IRQ request for USB3

From: Xu, Andiry
Date: Thu Mar 15 2012 - 02:22:04 EST


> -----Original Message-----
> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Alex Shi
> Sent: Thursday, March 15, 2012 12:48 PM
> To: stern@xxxxxxxxxxxxxxxxxxx; gregkh
> Cc: sarah.a.sharp@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-usb
> Subject: [PATCH] usb/core: skip unnecessary line IRQ request for USB3
>
>
> USB3 requests line IRQ here but will disable it
> in later driver->start function and try MSI first.
>

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

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

Thanks,
Andiry

> 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. And
> save a little time in booting.
>
> Signed-off-by: Alex Shi <alex.shi@xxxxxxxxx>
> ---
> drivers/usb/core/hcd.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 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;
> --
> 1.7.5.1
>
>
>
> --
> 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

èº{.nÇ+‰·Ÿ®‰­†+%ŠËlzwm…ébëæìr¸›zX§»®w¥Š{ayºÊÚë,j­¢f£¢·hš‹àz¹®w¥¢¸ ¢·¦j:+v‰¨ŠwèjØm¶Ÿÿ¾«‘êçzZ+ƒùšŽŠÝj"ú!¶iO•æ¬z·švØ^¶m§ÿðà nÆàþY&—