aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/msi.h
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2015-11-23 03:04:05 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-11-23 03:04:05 -0500
commit92907cbbef8625bb3998d1eb385fc88f23c97a3f (patch)
tree15626ff9287e37c3cb81c7286d6db5a7fd77c854 /include/linux/msi.h
parent15fbfccfe92c62ae8d1ecc647c44157ed01ac02e (diff)
parent1ec218373b8ebda821aec00bb156a9c94fad9cd4 (diff)
Merge tag 'v4.4-rc2' into drm-intel-next-queued
Linux 4.4-rc2 Backmerge to get at commit 1b0e3a049efe471c399674fd954500ce97438d30 Author: Imre Deak <imre.deak@intel.com> Date: Thu Nov 5 23:04:11 2015 +0200 drm/i915/skl: disable display side power well support for now so that we can proplery re-eanble skl power wells in -next. Conflicts are just adjacent lines changed, except for intel_fbdev.c where we need to interleave the changs. Nothing nefarious. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'include/linux/msi.h')
-rw-r--r--include/linux/msi.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/include/linux/msi.h b/include/linux/msi.h
index ad939d0ba816..f71a25e5fd25 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -163,6 +163,8 @@ struct msi_controller {
163 163
164 int (*setup_irq)(struct msi_controller *chip, struct pci_dev *dev, 164 int (*setup_irq)(struct msi_controller *chip, struct pci_dev *dev,
165 struct msi_desc *desc); 165 struct msi_desc *desc);
166 int (*setup_irqs)(struct msi_controller *chip, struct pci_dev *dev,
167 int nvec, int type);
166 void (*teardown_irq)(struct msi_controller *chip, unsigned int irq); 168 void (*teardown_irq)(struct msi_controller *chip, unsigned int irq);
167}; 169};
168 170
@@ -174,6 +176,7 @@ struct msi_controller {
174struct irq_domain; 176struct irq_domain;
175struct irq_chip; 177struct irq_chip;
176struct device_node; 178struct device_node;
179struct fwnode_handle;
177struct msi_domain_info; 180struct msi_domain_info;
178 181
179/** 182/**
@@ -262,7 +265,7 @@ enum {
262int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask, 265int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
263 bool force); 266 bool force);
264 267
265struct irq_domain *msi_create_irq_domain(struct device_node *of_node, 268struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
266 struct msi_domain_info *info, 269 struct msi_domain_info *info,
267 struct irq_domain *parent); 270 struct irq_domain *parent);
268int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev, 271int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
@@ -270,7 +273,7 @@ int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
270void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev); 273void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
271struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain); 274struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain);
272 275
273struct irq_domain *platform_msi_create_irq_domain(struct device_node *np, 276struct irq_domain *platform_msi_create_irq_domain(struct fwnode_handle *fwnode,
274 struct msi_domain_info *info, 277 struct msi_domain_info *info,
275 struct irq_domain *parent); 278 struct irq_domain *parent);
276int platform_msi_domain_alloc_irqs(struct device *dev, unsigned int nvec, 279int platform_msi_domain_alloc_irqs(struct device *dev, unsigned int nvec,
@@ -280,19 +283,26 @@ void platform_msi_domain_free_irqs(struct device *dev);
280 283
281#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN 284#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
282void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg); 285void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *msg);
283struct irq_domain *pci_msi_create_irq_domain(struct device_node *node, 286struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
284 struct msi_domain_info *info, 287 struct msi_domain_info *info,
285 struct irq_domain *parent); 288 struct irq_domain *parent);
286int pci_msi_domain_alloc_irqs(struct irq_domain *domain, struct pci_dev *dev, 289int pci_msi_domain_alloc_irqs(struct irq_domain *domain, struct pci_dev *dev,
287 int nvec, int type); 290 int nvec, int type);
288void pci_msi_domain_free_irqs(struct irq_domain *domain, struct pci_dev *dev); 291void pci_msi_domain_free_irqs(struct irq_domain *domain, struct pci_dev *dev);
289struct irq_domain *pci_msi_create_default_irq_domain(struct device_node *node, 292struct irq_domain *pci_msi_create_default_irq_domain(struct fwnode_handle *fwnode,
290 struct msi_domain_info *info, struct irq_domain *parent); 293 struct msi_domain_info *info, struct irq_domain *parent);
291 294
292irq_hw_number_t pci_msi_domain_calc_hwirq(struct pci_dev *dev, 295irq_hw_number_t pci_msi_domain_calc_hwirq(struct pci_dev *dev,
293 struct msi_desc *desc); 296 struct msi_desc *desc);
294int pci_msi_domain_check_cap(struct irq_domain *domain, 297int pci_msi_domain_check_cap(struct irq_domain *domain,
295 struct msi_domain_info *info, struct device *dev); 298 struct msi_domain_info *info, struct device *dev);
299u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
300struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);
301#else
302static inline struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev)
303{
304 return NULL;
305}
296#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */ 306#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */
297 307
298#endif /* LINUX_MSI_H */ 308#endif /* LINUX_MSI_H */