USB: Try MSI first before line IRQ for Intel PCIe USB3 HCD

We have a PCI USB xhci host controller on a new platform. It have no
line IRQ definition in BIOS. So the Linux driver refuses to initial this
controller. But Windows works well for it depending on MSI.

Actually, Linux also can work for MSI. This patch skips the first line
IRQ checking for our HCD in usb-core pci probe, then try to enable MSI
firstly. That make this HCD works well under Linux.

Thanks for Sarah's suggestion and review for this patch.

This patch should be applied to kernels as old as 2.6.36, that have the
commit 43b86af83da7db8b2c6d85ca970203950e5bad88 "USB: xHCI: Supporting
MSI/MSI-X".  This particular patch applies to kernels 3.1 and older,
since 3.2 refactored the MSI initialization code.

Signed-off-by: Alex Shi <>
Signed-off-by: Sarah Sharp <>
5 files changed