Messages in this thread |  | | Date | Thu, 17 Jan 2013 15:42:36 +0000 | From | Andrew Murray <> | Subject | Re: [PATCH 10/14] PCI: tegra: Move PCIe driver to drivers/pci/host |
| |
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
|  |