On Mon, 7 Jun 2010, Sarah Sharp wrote: > Do any other USB hosts support MSI/MSI-X? A quick grep in the > drivers/usb/host/ directory says no. Are there any plans to add MSI > support to a USB host? > > If so, it might be useful to introduce a new HCD driver function to > enable MSI, which the USB core can call in usb_add_hcd(). The hosts > could have a flag to indicate whether they are designed to handle > MSI/MSI-X. > > If xHCI is the only driver that will support MSI, the other other option > is to swap out the legacy interrupt under the USB core, when it calls > the host's initialization function. That's a little ugly because it > involves exporting the usb_hcd_irq() function and re-allocating the PCI > interrupt if the MSI interrupt allocation fails (see the patch below). > It seems like that error handling really should be done in the USB core. > > If no other host supports MSI, I think the method below is OK, but if > other drivers need to support MSI, I think we can do this better. Keep in mind when you do this that usb_hcd_irq() is a public routine. It does get called directly on occasion, when somebody wants to poll the host controller instead of waiting for an interrupt. Whatever changes you make should preserve the ability to poll the hardware in this way. Alan Stern -- 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