Hi Sarah, the same goal, different strategy. Since Alan didn't like the platform device I got rid of and this are the remainings of the series. So what left is removing PCI bindings from the core code. I re-factored xhci_pci_setup() a little and I think that it could be reused by others including the way the quirks are handled now. I saw that you liked the way Felipe handled quirks via the pci table. I don't know how to get there in a pretty way since the xhci struct is allocated very late and it is not possible to pass data to it. I did not add any generic xhci_hcd_add() function just yet. For the major part of the probe function you recycle the same probe function that is used by ehci/ohci controllers. Most of the steps are actually the same except the few pci specific calls within this function. So until I find a neat way for this please take a look at this new series. The series is also available at git://git.linutronix.de/users/bigeasy/xhci xhci-decouplev4 for convenience. It is based on v3.0 because it was tested on this tree. I merged your next branch without conflicts. Felipe Balbi (1): usb/host: introduce USB_ARCH_HAS_XHCI Sebastian Andrzej Siewior (6): usb/xhci: group MSI interrupt registration into its own function usb/xhci: hide MSI code behind PCI bars usb/xhci: replace pci_*_consistent() with dma_*_coherent() usb/xhci: refactor xhci_pci_setup() usb/xhci: move xhci_gen_setup() away from -pci. usb/xhci: remove CONFIG_PCI in xhci.c's probe function drivers/usb/Kconfig | 6 + drivers/usb/host/Kconfig | 2 +- drivers/usb/host/Makefile | 3 +- drivers/usb/host/xhci-mem.c | 38 ++++---- drivers/usb/host/xhci-pci.c | 96 +++-------------- drivers/usb/host/xhci.c | 248 +++++++++++++++++++++++++++++++++---------- drivers/usb/host/xhci.h | 5 + 7 files changed, 240 insertions(+), 158 deletions(-) Sebastian -- 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