aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r--include/linux/irq.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index baa397eb9c3..59517300a31 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -23,6 +23,7 @@
23#include <linux/errno.h> 23#include <linux/errno.h>
24#include <linux/topology.h> 24#include <linux/topology.h>
25#include <linux/wait.h> 25#include <linux/wait.h>
26#include <linux/module.h>
26 27
27#include <asm/irq.h> 28#include <asm/irq.h>
28#include <asm/ptrace.h> 29#include <asm/ptrace.h>
@@ -96,11 +97,6 @@ enum {
96 97
97#define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING) 98#define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
98 99
99static inline __deprecated bool CHECK_IRQ_PER_CPU(unsigned int status)
100{
101 return status & IRQ_PER_CPU;
102}
103
104/* 100/*
105 * Return value for chip->irq_set_affinity() 101 * Return value for chip->irq_set_affinity()
106 * 102 *
@@ -113,14 +109,18 @@ enum {
113}; 109};
114 110
115struct msi_desc; 111struct msi_desc;
112struct irq_domain;
116 113
117/** 114/**
118 * struct irq_data - per irq and irq chip data passed down to chip functions 115 * struct irq_data - per irq and irq chip data passed down to chip functions
119 * @irq: interrupt number 116 * @irq: interrupt number
117 * @hwirq: hardware interrupt number, local to the interrupt domain
120 * @node: node index useful for balancing 118 * @node: node index useful for balancing
121 * @state_use_accessors: status information for irq chip functions. 119 * @state_use_accessors: status information for irq chip functions.
122 * Use accessor functions to deal with it 120 * Use accessor functions to deal with it
123 * @chip: low level interrupt hardware access 121 * @chip: low level interrupt hardware access
122 * @domain: Interrupt translation domain; responsible for mapping
123 * between hwirq number and linux irq number.
124 * @handler_data: per-IRQ data for the irq_chip methods 124 * @handler_data: per-IRQ data for the irq_chip methods
125 * @chip_data: platform-specific per-chip private data for the chip 125 * @chip_data: platform-specific per-chip private data for the chip
126 * methods, to allow shared chip implementations 126 * methods, to allow shared chip implementations
@@ -133,9 +133,11 @@ struct msi_desc;
133 */ 133 */
134struct irq_data { 134struct irq_data {
135 unsigned int irq; 135 unsigned int irq;
136 unsigned long hwirq;
136 unsigned int node; 137 unsigned int node;
137 unsigned int state_use_accessors; 138 unsigned int state_use_accessors;
138 struct irq_chip *chip; 139 struct irq_chip *chip;
140 struct irq_domain *domain;
139 void *handler_data; 141 void *handler_data;
140 void *chip_data; 142 void *chip_data;
141 struct msi_desc *msi_desc; 143 struct msi_desc *msi_desc;
@@ -546,7 +548,15 @@ static inline struct msi_desc *irq_data_get_msi(struct irq_data *d)
546 return d->msi_desc; 548 return d->msi_desc;
547} 549}
548 550
549int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node); 551int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
552 struct module *owner);
553
554static inline int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt,
555 int node)
556{
557 return __irq_alloc_descs(irq, from, cnt, node, THIS_MODULE);
558}
559
550void irq_free_descs(unsigned int irq, unsigned int cnt); 560void irq_free_descs(unsigned int irq, unsigned int cnt);
551int irq_reserve_irqs(unsigned int from, unsigned int cnt); 561int irq_reserve_irqs(unsigned int from, unsigned int cnt);
552 562