On Fri, Mar 22, 2013 at 08:51:46AM +0000, Thierry Reding wrote: > index ce93a34..ea4a5be 100644 > --- a/include/linux/msi.h > +++ b/include/linux/msi.h > @@ -58,5 +58,15 @@ extern int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type); > extern void arch_teardown_msi_irqs(struct pci_dev *dev); > extern int arch_msi_check_device(struct pci_dev* dev, int nvec, int type); > > +struct msi_chip { > + struct module *owner; > + struct device *dev; > + > + int (*setup_irq)(struct msi_chip *chip, struct pci_dev *dev, > + struct msi_desc *desc); > + void (*teardown_irq)(struct msi_chip *chip, unsigned int irq); > + int (*check_device)(struct msi_chip *chip, struct pci_dev *dev, > + int nvec, int type); > +}; Is there a need to add setup_irqs and teardown_irqs functions here? This will allow your MSI chips to support multiple MSIs per requesting device. What about restore_msi_irqs? Does this fit in here too? 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