On Wed, Jan 16, 2013 at 06:31:01PM +0000, Thierry Reding wrote: > Alright, putting the functions into pci_ops doesn't sound like a very > good idea then. Or perhaps it would make sense for hardware where the > root complex and the MSI controller are handled by the same driver. > Basically it could be done as a shortcut and if those are not filled > in, the drivers could still opt to look up an MSI controller from a > phandle specified in DT. > > Even another alternative would be to keep the functions within the > struct pci_ops and use generic ones if an external MSI controller is > used. Just tossing around ideas. I think an ideal solution would be for additional logic in drivers/msi.c (e.g. in functions like msi_capability_init) to determine (based on the passed in pci_dev) which MSI controller ops to use. I'm not sure the best way to implement an association between an MSI controller and PCI busses (I believe arch/sparc does something like this - perhaps there will be inspiration there). As you've pointed out, most RCs will have their own MSI controllers - so it should be easy to register and associate both together. I've submitted my previous work on MSI controller registration, but it doesn't quite solve this problem - perhaps it can be a starting point? Andrew Murray -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html