.. | .. |
---|
22 | 22 | * @irq_common_data: per irq and chip data passed down to chip functions |
---|
23 | 23 | * @kstat_irqs: irq stats per cpu |
---|
24 | 24 | * @handle_irq: highlevel irq-events handler |
---|
25 | | - * @preflow_handler: handler called before the flow handler (currently used by sparc) |
---|
26 | 25 | * @action: the irq action chain |
---|
27 | | - * @status: status information |
---|
| 26 | + * @status_use_accessors: status information |
---|
28 | 27 | * @core_internal_state__do_not_mess_with_it: core internal status information |
---|
29 | 28 | * @depth: disable-depth, for nested irq_disable() calls |
---|
30 | 29 | * @wake_depth: enable depth, for multiple irq_set_irq_wake() callers |
---|
| 30 | + * @tot_count: stats field for non-percpu irqs |
---|
31 | 31 | * @irq_count: stats field to detect stalled irqs |
---|
32 | 32 | * @last_unhandled: aging timer for unhandled count |
---|
33 | 33 | * @irqs_unhandled: stats field for spurious unhandled interrupts |
---|
34 | 34 | * @threads_handled: stats field for deferred spurious detection of threaded handlers |
---|
35 | | - * @threads_handled_last: comparator field for deferred spurious detection of theraded handlers |
---|
| 35 | + * @threads_handled_last: comparator field for deferred spurious detection of threaded handlers |
---|
36 | 36 | * @lock: locking for SMP |
---|
37 | 37 | * @affinity_hint: hint to user space for preferred irq affinity |
---|
38 | 38 | * @affinity_notify: context for notification of affinity changes |
---|
.. | .. |
---|
57 | 57 | struct irq_data irq_data; |
---|
58 | 58 | unsigned int __percpu *kstat_irqs; |
---|
59 | 59 | irq_flow_handler_t handle_irq; |
---|
60 | | -#ifdef CONFIG_IRQ_PREFLOW_FASTEOI |
---|
61 | | - irq_preflow_handler_t preflow_handler; |
---|
62 | | -#endif |
---|
63 | 60 | struct irqaction *action; /* IRQ action list */ |
---|
64 | 61 | unsigned int status_use_accessors; |
---|
65 | 62 | unsigned int core_internal_state__do_not_mess_with_it; |
---|
.. | .. |
---|
71 | 68 | unsigned int irqs_unhandled; |
---|
72 | 69 | atomic_t threads_handled; |
---|
73 | 70 | int threads_handled_last; |
---|
74 | | - u64 random_ip; |
---|
75 | 71 | raw_spinlock_t lock; |
---|
76 | 72 | struct cpumask *percpu_enabled; |
---|
77 | 73 | const struct cpumask *percpu_affinity; |
---|
.. | .. |
---|
173 | 169 | { |
---|
174 | 170 | return __handle_domain_irq(domain, hwirq, true, regs); |
---|
175 | 171 | } |
---|
| 172 | + |
---|
| 173 | +#ifdef CONFIG_IRQ_DOMAIN |
---|
| 174 | +int handle_domain_nmi(struct irq_domain *domain, unsigned int hwirq, |
---|
| 175 | + struct pt_regs *regs); |
---|
| 176 | +#endif |
---|
176 | 177 | #endif |
---|
177 | 178 | |
---|
178 | 179 | /* Test to see if a driver has successfully requested an irq */ |
---|
.. | .. |
---|
262 | 263 | lockdep_set_class(&desc->request_mutex, request_class); |
---|
263 | 264 | } |
---|
264 | 265 | } |
---|
265 | | - |
---|
266 | | -#ifdef CONFIG_IRQ_PREFLOW_FASTEOI |
---|
267 | | -static inline void |
---|
268 | | -__irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler) |
---|
269 | | -{ |
---|
270 | | - struct irq_desc *desc; |
---|
271 | | - |
---|
272 | | - desc = irq_to_desc(irq); |
---|
273 | | - desc->preflow_handler = handler; |
---|
274 | | -} |
---|
275 | | -#endif |
---|
276 | 266 | |
---|
277 | 267 | #endif |
---|