diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-29 13:46:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-29 13:46:15 -0400 |
commit | c86defc82c18b648193b5c6aabcc6204fd6bb373 (patch) | |
tree | 1ef70cfa56f5f9a123d0db6fefe4c434c12bd6c6 /include | |
parent | 1309d7afbed112f0e8e90be9af975550caa0076b (diff) | |
parent | 9ad198cba2a8177eea6a7f2f0202b910abdef96b (diff) |
Merge branch 'irq-final-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'irq-final-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (111 commits)
gpio: ab8500: Mark broken
genirq: Remove move_*irq leftovers
genirq: Remove compat code
drivers: Final irq namespace conversion
mn10300: Use generic show_interrupts()
mn10300: Cleanup irq_desc access
mn10300: Convert genirq namespace
frv: Use generic show_interrupts()
frv: Convert genirq namespace
frv: Select GENERIC_HARDIRQS_NO_DEPRECATED
frv: Convert cpu irq_chip to new functions
frv: Convert mb93493 irq_chip to new functions
frv: Convert mb93093 irq_chip to new function
frv: Convert mb93091 irq_chip to new functions
frv: Fix typo from __do_IRQ overhaul
frv: Remove stale irq_chip.end
m68k: Convert irq function namespace
xen: Use new irq_move functions
xen: Cleanup genirq namespace
unicore32: Use generic show_interrupts()
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/irq.h | 121 | ||||
-rw-r--r-- | include/linux/irqdesc.h | 60 |
2 files changed, 1 insertions, 180 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index b3741c83774c..2a375a72ce3c 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -92,18 +92,6 @@ enum { | |||
92 | IRQ_NO_BALANCING = (1 << 13), | 92 | IRQ_NO_BALANCING = (1 << 13), |
93 | IRQ_MOVE_PCNTXT = (1 << 14), | 93 | IRQ_MOVE_PCNTXT = (1 << 14), |
94 | IRQ_NESTED_THREAD = (1 << 15), | 94 | IRQ_NESTED_THREAD = (1 << 15), |
95 | |||
96 | #ifndef CONFIG_GENERIC_HARDIRQS_NO_COMPAT | ||
97 | IRQ_INPROGRESS = (1 << 16), | ||
98 | IRQ_REPLAY = (1 << 17), | ||
99 | IRQ_WAITING = (1 << 18), | ||
100 | IRQ_DISABLED = (1 << 19), | ||
101 | IRQ_PENDING = (1 << 20), | ||
102 | IRQ_MASKED = (1 << 21), | ||
103 | IRQ_MOVE_PENDING = (1 << 22), | ||
104 | IRQ_AFFINITY_SET = (1 << 23), | ||
105 | IRQ_WAKEUP = (1 << 24), | ||
106 | #endif | ||
107 | }; | 95 | }; |
108 | 96 | ||
109 | #define IRQF_MODIFY_MASK \ | 97 | #define IRQF_MODIFY_MASK \ |
@@ -321,28 +309,6 @@ static inline void irqd_clr_chained_irq_inprogress(struct irq_data *d) | |||
321 | */ | 309 | */ |
322 | struct irq_chip { | 310 | struct irq_chip { |
323 | const char *name; | 311 | const char *name; |
324 | #ifndef CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED | ||
325 | unsigned int (*startup)(unsigned int irq); | ||
326 | void (*shutdown)(unsigned int irq); | ||
327 | void (*enable)(unsigned int irq); | ||
328 | void (*disable)(unsigned int irq); | ||
329 | |||
330 | void (*ack)(unsigned int irq); | ||
331 | void (*mask)(unsigned int irq); | ||
332 | void (*mask_ack)(unsigned int irq); | ||
333 | void (*unmask)(unsigned int irq); | ||
334 | void (*eoi)(unsigned int irq); | ||
335 | |||
336 | void (*end)(unsigned int irq); | ||
337 | int (*set_affinity)(unsigned int irq, | ||
338 | const struct cpumask *dest); | ||
339 | int (*retrigger)(unsigned int irq); | ||
340 | int (*set_type)(unsigned int irq, unsigned int flow_type); | ||
341 | int (*set_wake)(unsigned int irq, unsigned int on); | ||
342 | |||
343 | void (*bus_lock)(unsigned int irq); | ||
344 | void (*bus_sync_unlock)(unsigned int irq); | ||
345 | #endif | ||
346 | unsigned int (*irq_startup)(struct irq_data *data); | 312 | unsigned int (*irq_startup)(struct irq_data *data); |
347 | void (*irq_shutdown)(struct irq_data *data); | 313 | void (*irq_shutdown)(struct irq_data *data); |
348 | void (*irq_enable)(struct irq_data *data); | 314 | void (*irq_enable)(struct irq_data *data); |
@@ -420,13 +386,9 @@ extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumas | |||
420 | #ifdef CONFIG_GENERIC_HARDIRQS | 386 | #ifdef CONFIG_GENERIC_HARDIRQS |
421 | 387 | ||
422 | #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) | 388 | #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) |
423 | void move_native_irq(int irq); | ||
424 | void move_masked_irq(int irq); | ||
425 | void irq_move_irq(struct irq_data *data); | 389 | void irq_move_irq(struct irq_data *data); |
426 | void irq_move_masked_irq(struct irq_data *data); | 390 | void irq_move_masked_irq(struct irq_data *data); |
427 | #else | 391 | #else |
428 | static inline void move_native_irq(int irq) { } | ||
429 | static inline void move_masked_irq(int irq) { } | ||
430 | static inline void irq_move_irq(struct irq_data *data) { } | 392 | static inline void irq_move_irq(struct irq_data *data) { } |
431 | static inline void irq_move_masked_irq(struct irq_data *data) { } | 393 | static inline void irq_move_masked_irq(struct irq_data *data) { } |
432 | #endif | 394 | #endif |
@@ -589,89 +551,6 @@ static inline struct msi_desc *irq_data_get_msi(struct irq_data *d) | |||
589 | return d->msi_desc; | 551 | return d->msi_desc; |
590 | } | 552 | } |
591 | 553 | ||
592 | #ifndef CONFIG_GENERIC_HARDIRQS_NO_COMPAT | ||
593 | /* Please do not use: Use the replacement functions instead */ | ||
594 | static inline int set_irq_chip(unsigned int irq, struct irq_chip *chip) | ||
595 | { | ||
596 | return irq_set_chip(irq, chip); | ||
597 | } | ||
598 | static inline int set_irq_data(unsigned int irq, void *data) | ||
599 | { | ||
600 | return irq_set_handler_data(irq, data); | ||
601 | } | ||
602 | static inline int set_irq_chip_data(unsigned int irq, void *data) | ||
603 | { | ||
604 | return irq_set_chip_data(irq, data); | ||
605 | } | ||
606 | static inline int set_irq_type(unsigned int irq, unsigned int type) | ||
607 | { | ||
608 | return irq_set_irq_type(irq, type); | ||
609 | } | ||
610 | static inline int set_irq_msi(unsigned int irq, struct msi_desc *entry) | ||
611 | { | ||
612 | return irq_set_msi_desc(irq, entry); | ||
613 | } | ||
614 | static inline struct irq_chip *get_irq_chip(unsigned int irq) | ||
615 | { | ||
616 | return irq_get_chip(irq); | ||
617 | } | ||
618 | static inline void *get_irq_chip_data(unsigned int irq) | ||
619 | { | ||
620 | return irq_get_chip_data(irq); | ||
621 | } | ||
622 | static inline void *get_irq_data(unsigned int irq) | ||
623 | { | ||
624 | return irq_get_handler_data(irq); | ||
625 | } | ||
626 | static inline void *irq_data_get_irq_data(struct irq_data *d) | ||
627 | { | ||
628 | return irq_data_get_irq_handler_data(d); | ||
629 | } | ||
630 | static inline struct msi_desc *get_irq_msi(unsigned int irq) | ||
631 | { | ||
632 | return irq_get_msi_desc(irq); | ||
633 | } | ||
634 | static inline void set_irq_noprobe(unsigned int irq) | ||
635 | { | ||
636 | irq_set_noprobe(irq); | ||
637 | } | ||
638 | static inline void set_irq_probe(unsigned int irq) | ||
639 | { | ||
640 | irq_set_probe(irq); | ||
641 | } | ||
642 | static inline void set_irq_nested_thread(unsigned int irq, int nest) | ||
643 | { | ||
644 | irq_set_nested_thread(irq, nest); | ||
645 | } | ||
646 | static inline void | ||
647 | set_irq_chip_and_handler_name(unsigned int irq, struct irq_chip *chip, | ||
648 | irq_flow_handler_t handle, const char *name) | ||
649 | { | ||
650 | irq_set_chip_and_handler_name(irq, chip, handle, name); | ||
651 | } | ||
652 | static inline void | ||
653 | set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, | ||
654 | irq_flow_handler_t handle) | ||
655 | { | ||
656 | irq_set_chip_and_handler(irq, chip, handle); | ||
657 | } | ||
658 | static inline void | ||
659 | __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained, | ||
660 | const char *name) | ||
661 | { | ||
662 | __irq_set_handler(irq, handle, is_chained, name); | ||
663 | } | ||
664 | static inline void set_irq_handler(unsigned int irq, irq_flow_handler_t handle) | ||
665 | { | ||
666 | irq_set_handler(irq, handle); | ||
667 | } | ||
668 | static inline void | ||
669 | set_irq_chained_handler(unsigned int irq, irq_flow_handler_t handle) | ||
670 | { | ||
671 | irq_set_chained_handler(irq, handle); | ||
672 | } | ||
673 | #endif | ||
674 | |||
675 | int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node); | 554 | int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node); |
676 | void irq_free_descs(unsigned int irq, unsigned int cnt); | 555 | void irq_free_descs(unsigned int irq, unsigned int cnt); |
677 | int irq_reserve_irqs(unsigned int from, unsigned int cnt); | 556 | int irq_reserve_irqs(unsigned int from, unsigned int cnt); |
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index 15e6c3905f41..a082905b5ebe 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h | |||
@@ -35,32 +35,7 @@ struct timer_rand_state; | |||
35 | * @name: flow handler name for /proc/interrupts output | 35 | * @name: flow handler name for /proc/interrupts output |
36 | */ | 36 | */ |
37 | struct irq_desc { | 37 | struct irq_desc { |
38 | |||
39 | #ifdef CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED | ||
40 | struct irq_data irq_data; | 38 | struct irq_data irq_data; |
41 | #else | ||
42 | /* | ||
43 | * This union will go away, once we fixed the direct access to | ||
44 | * irq_desc all over the place. The direct fields are a 1:1 | ||
45 | * overlay of irq_data. | ||
46 | */ | ||
47 | union { | ||
48 | struct irq_data irq_data; | ||
49 | struct { | ||
50 | unsigned int irq; | ||
51 | unsigned int node; | ||
52 | unsigned int pad_do_not_even_think_about_it; | ||
53 | struct irq_chip *chip; | ||
54 | void *handler_data; | ||
55 | void *chip_data; | ||
56 | struct msi_desc *msi_desc; | ||
57 | #ifdef CONFIG_SMP | ||
58 | cpumask_var_t affinity; | ||
59 | #endif | ||
60 | }; | ||
61 | }; | ||
62 | #endif | ||
63 | |||
64 | struct timer_rand_state *timer_rand_state; | 39 | struct timer_rand_state *timer_rand_state; |
65 | unsigned int __percpu *kstat_irqs; | 40 | unsigned int __percpu *kstat_irqs; |
66 | irq_flow_handler_t handle_irq; | 41 | irq_flow_handler_t handle_irq; |
@@ -68,11 +43,7 @@ struct irq_desc { | |||
68 | irq_preflow_handler_t preflow_handler; | 43 | irq_preflow_handler_t preflow_handler; |
69 | #endif | 44 | #endif |
70 | struct irqaction *action; /* IRQ action list */ | 45 | struct irqaction *action; /* IRQ action list */ |
71 | #ifdef CONFIG_GENERIC_HARDIRQS_NO_COMPAT | ||
72 | unsigned int status_use_accessors; | 46 | unsigned int status_use_accessors; |
73 | #else | ||
74 | unsigned int status; /* IRQ status */ | ||
75 | #endif | ||
76 | unsigned int core_internal_state__do_not_mess_with_it; | 47 | unsigned int core_internal_state__do_not_mess_with_it; |
77 | unsigned int depth; /* nested irq disables */ | 48 | unsigned int depth; /* nested irq disables */ |
78 | unsigned int wake_depth; /* nested wake enables */ | 49 | unsigned int wake_depth; /* nested wake enables */ |
@@ -127,27 +98,6 @@ static inline struct msi_desc *irq_desc_get_msi_desc(struct irq_desc *desc) | |||
127 | return desc->irq_data.msi_desc; | 98 | return desc->irq_data.msi_desc; |
128 | } | 99 | } |
129 | 100 | ||
130 | #ifndef CONFIG_GENERIC_HARDIRQS_NO_COMPAT | ||
131 | static inline struct irq_chip *get_irq_desc_chip(struct irq_desc *desc) | ||
132 | { | ||
133 | return irq_desc_get_chip(desc); | ||
134 | } | ||
135 | static inline void *get_irq_desc_data(struct irq_desc *desc) | ||
136 | { | ||
137 | return irq_desc_get_handler_data(desc); | ||
138 | } | ||
139 | |||
140 | static inline void *get_irq_desc_chip_data(struct irq_desc *desc) | ||
141 | { | ||
142 | return irq_desc_get_chip_data(desc); | ||
143 | } | ||
144 | |||
145 | static inline struct msi_desc *get_irq_desc_msi(struct irq_desc *desc) | ||
146 | { | ||
147 | return irq_desc_get_msi_desc(desc); | ||
148 | } | ||
149 | #endif | ||
150 | |||
151 | /* | 101 | /* |
152 | * Architectures call this to let the generic IRQ layer | 102 | * Architectures call this to let the generic IRQ layer |
153 | * handle an interrupt. If the descriptor is attached to an | 103 | * handle an interrupt. If the descriptor is attached to an |
@@ -194,21 +144,13 @@ __irq_set_chip_handler_name_locked(unsigned int irq, struct irq_chip *chip, | |||
194 | desc->name = name; | 144 | desc->name = name; |
195 | } | 145 | } |
196 | 146 | ||
197 | #ifndef CONFIG_GENERIC_HARDIRQS_NO_COMPAT | ||
198 | static inline void __set_irq_handler_unlocked(int irq, | ||
199 | irq_flow_handler_t handler) | ||
200 | { | ||
201 | __irq_set_handler_locked(irq, handler); | ||
202 | } | ||
203 | |||
204 | static inline int irq_balancing_disabled(unsigned int irq) | 147 | static inline int irq_balancing_disabled(unsigned int irq) |
205 | { | 148 | { |
206 | struct irq_desc *desc; | 149 | struct irq_desc *desc; |
207 | 150 | ||
208 | desc = irq_to_desc(irq); | 151 | desc = irq_to_desc(irq); |
209 | return desc->status & IRQ_NO_BALANCING_MASK; | 152 | return desc->status_use_accessors & IRQ_NO_BALANCING_MASK; |
210 | } | 153 | } |
211 | #endif | ||
212 | 154 | ||
213 | static inline void | 155 | static inline void |
214 | irq_set_lockdep_class(unsigned int irq, struct lock_class_key *class) | 156 | irq_set_lockdep_class(unsigned int irq, struct lock_class_key *class) |