diff options
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) |
