1STRUCT IRQ_CHIP(9) Structures STRUCT IRQ_CHIP(9)
2
3
4
6 struct_irq_chip - hardware interrupt chip descriptor
7
9 struct irq_chip {
10 const char * name;
11 unsigned int (* irq_startup) (struct irq_data *data);
12 void (* irq_shutdown) (struct irq_data *data);
13 void (* irq_enable) (struct irq_data *data);
14 void (* irq_disable) (struct irq_data *data);
15 void (* irq_ack) (struct irq_data *data);
16 void (* irq_mask) (struct irq_data *data);
17 void (* irq_mask_ack) (struct irq_data *data);
18 void (* irq_unmask) (struct irq_data *data);
19 void (* irq_eoi) (struct irq_data *data);
20 int (* irq_set_affinity) (struct irq_data *data, const struct cpumask *dest, bool force);
21 int (* irq_retrigger) (struct irq_data *data);
22 int (* irq_set_type) (struct irq_data *data, unsigned int flow_type);
23 int (* irq_set_wake) (struct irq_data *data, unsigned int on);
24 void (* irq_bus_lock) (struct irq_data *data);
25 void (* irq_bus_sync_unlock) (struct irq_data *data);
26 void (* irq_cpu_online) (struct irq_data *data);
27 void (* irq_cpu_offline) (struct irq_data *data);
28 void (* irq_suspend) (struct irq_data *data);
29 void (* irq_resume) (struct irq_data *data);
30 void (* irq_pm_shutdown) (struct irq_data *data);
31 void (* irq_print_chip) (struct irq_data *data, struct seq_file *p);
32 int (* irq_request_resources) (struct irq_data *data);
33 void (* irq_release_resources) (struct irq_data *data);
34 unsigned long flags;
35 };
36
38 name
39 name for /proc/interrupts
40
41 irq_startup
42 start up the interrupt (defaults to ->enable if NULL)
43
44 irq_shutdown
45 shut down the interrupt (defaults to ->disable if NULL)
46
47 irq_enable
48 enable the interrupt (defaults to chip->unmask if NULL)
49
50 irq_disable
51 disable the interrupt
52
53 irq_ack
54 start of a new interrupt
55
56 irq_mask
57 mask an interrupt source
58
59 irq_mask_ack
60 ack and mask an interrupt source
61
62 irq_unmask
63 unmask an interrupt source
64
65 irq_eoi
66 end of interrupt
67
68 irq_set_affinity
69 set the CPU affinity on SMP machines
70
71 irq_retrigger
72 resend an IRQ to the CPU
73
74 irq_set_type
75 set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
76
77 irq_set_wake
78 enable/disable power-management wake-on of an IRQ
79
80 irq_bus_lock
81 function to lock access to slow bus (i2c) chips
82
83 irq_bus_sync_unlock
84 function to sync and unlock slow bus (i2c) chips
85
86 irq_cpu_online
87 configure an interrupt source for a secondary CPU
88
89 irq_cpu_offline
90 un-configure an interrupt source for a secondary CPU
91
92 irq_suspend
93 function called from core code on suspend once per chip
94
95 irq_resume
96 function called from core code on resume once per chip
97
98 irq_pm_shutdown
99 function called from core code on shutdown once per chip
100
101 irq_print_chip
102 optional to print special chip info in show_interrupts
103
104 irq_request_resources
105 optional to request resources before calling any other callback
106 related to this irq
107
108 irq_release_resources
109 optional to release resources acquired with irq_request_resources
110
111 flags
112 chip specific flags
113
115 Thomas Gleixner <tglx@linutronix.de>
116 Author.
117
118 Ingo Molnar <mingo@elte.hu>
119 Author.
120
122Kernel Hackers Manual 3.10 June 2019 STRUCT IRQ_CHIP(9)