Lines Matching refs:irq
9 #include <linux/irq.h>
16 /* Global ht irq lock.
19 * irq capability.
21 * With multiple simultaneous hypertransport irq devices it might pay
36 void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg)
38 struct ht_irq_cfg *cfg = irq_get_handler_data(irq);
50 cfg->update(cfg->dev, irq, msg);
55 void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg)
57 struct ht_irq_cfg *cfg = irq_get_handler_data(irq);
67 write_ht_irq_msg(data->irq, &msg);
76 write_ht_irq_msg(data->irq, &msg);
80 * __ht_create_irq - create an irq and attach it to a device.
81 * @dev: The hypertransport device to find the irq capability on.
85 * The irq number of the new irq or a negative error value is returned.
94 int irq;
124 irq = create_irq_nr(0, node);
126 if (irq <= 0) {
130 irq_set_handler_data(irq, cfg);
132 if (arch_setup_ht_irq(irq, dev) < 0) {
133 ht_destroy_irq(irq);
137 return irq;
141 * ht_create_irq - create an irq and attach it to a device.
142 * @dev: The hypertransport device to find the irq capability on.
148 * The irq number of the new irq or a negative error value is returned.
156 * ht_destroy_irq - destroy an irq created with ht_create_irq
157 * @irq: irq to be destroyed
159 * This reverses ht_create_irq removing the specified irq from
160 * existence. The irq should be free before this happens.
162 void ht_destroy_irq(unsigned int irq)
166 cfg = irq_get_handler_data(irq);
167 irq_set_chip(irq, NULL);
168 irq_set_handler_data(irq, NULL);
169 destroy_irq(irq);