On 01/11/2012 02:59 PM, Alex Shi wrote: > 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. > > Signed-off-by: Alex Shi <alex.shi@xxxxxxxxx> > --- > drivers/usb/core/hcd-pci.c | 3 ++- > drivers/usb/core/hcd.c | 8 ++++++-- > drivers/usb/host/xhci-pci.c | 6 ++++++ > drivers/usb/host/xhci.c | 5 +++++ > include/linux/pci_ids.h | 1 + > include/linux/usb/hcd.h | 1 + > 6 files changed, 21 insertions(+), 3 deletions(-) > ... > diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h > index 2aaee0c..b66f538 100644 > --- a/include/linux/pci_ids.h > +++ b/include/linux/pci_ids.h > @@ -2779,6 +2779,7 @@ > #define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500 > #define PCI_DEVICE_ID_INTEL_IXP2800 0x9004 > #define PCI_DEVICE_ID_INTEL_S21152BB 0xb152 > +#define PCI_DEVICE_ID_INTEL_USB_XHCI 0x1e31 > Since this device ID is not used by anyone, you'd better put it in xhci driver. And I don't think PCI_DEVICE_ID_INTEL_USB_XHCI is a good enough name - are you sure all the Intel xHCI host controllers will share the same PCI device ID? Thanks, Andiry > #define PCI_VENDOR_ID_SCALEMP 0x8686 > #define PCI_DEVICE_ID_SCALEMP_VSMP_CTL 0x1010 > diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h > index 03354d5..ea1637b 100644 > --- a/include/linux/usb/hcd.h > +++ b/include/linux/usb/hcd.h > @@ -212,6 +212,7 @@ struct hc_driver { > #define HCD_MEMORY 0x0001 /* HC regs use memory (else I/O) */ > #define HCD_LOCAL_MEM 0x0002 /* HC needs local memory */ > #define HCD_SHARED 0x0004 /* Two (or more) usb_hcds share HW */ > +#define HCD_MSI_FIRST 0x0008 /* Try to get MSI first, PCI only */ > #define HCD_USB11 0x0010 /* USB 1.1 */ > #define HCD_USB2 0x0020 /* USB 2.0 */ > #define HCD_USB3 0x0040 /* USB 3.0 */ -- 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