diff options
author | Jiang Liu <jiang.liu@linux.intel.com> | 2014-11-11 21:02:18 +0800 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-11-23 13:01:47 +0100 |
commit | 3878eaefb89aa841ae4c2150490cee864ac628cb (patch) | |
tree | 3eb53c942a8e6081f8501d647e0f8e7215ce8ae0 /include/linux/msi.h | |
parent | 38b6a1cf3e4df0a3267c01fab699ab65d58690f4 (diff) | |
download | linux-3878eaefb89aa841ae4c2150490cee864ac628cb.tar.gz linux-3878eaefb89aa841ae4c2150490cee864ac628cb.tar.bz2 linux-3878eaefb89aa841ae4c2150490cee864ac628cb.zip |
PCI/MSI: Enhance core to support hierarchy irqdomain
Enhance PCI MSI core to support hierarchy irqdomain, so the common
code can be shared across architectures.
[ tglx: Extracted and combined from several patches ]
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Yingjoe Chen <yingjoe.chen@mediatek.com>
Cc: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/msi.h')
-rw-r--r-- | include/linux/msi.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/msi.h b/include/linux/msi.h index 0098e2c8fd42..1628788aee25 100644 --- a/include/linux/msi.h +++ b/include/linux/msi.h @@ -220,4 +220,18 @@ struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain); #endif /* CONFIG_GENERIC_MSI_IRQ_DOMAIN */ +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN +void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg); +struct irq_domain *pci_msi_create_irq_domain(struct device_node *node, + struct msi_domain_info *info, + struct irq_domain *parent); +int pci_msi_domain_alloc_irqs(struct irq_domain *domain, struct pci_dev *dev, + int nvec, int type); +void pci_msi_domain_free_irqs(struct irq_domain *domain, struct pci_dev *dev); +irq_hw_number_t pci_msi_domain_calc_hwirq(struct pci_dev *dev, + struct msi_desc *desc); +int pci_msi_domain_check_cap(struct irq_domain *domain, + struct msi_domain_info *info, struct device *dev); +#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */ + #endif /* LINUX_MSI_H */ |