• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/kernel/irq/

Lines Matching defs:desc

43  * @desc:      description of the interrupt
47 void handle_bad_irq(unsigned int irq, struct irq_desc *desc)
53 print_irq_desc(irq, desc);
54 kstat_incr_irqs_this_cpu(irq, desc);
98 void __ref init_kstat_irqs(struct irq_desc *desc, int node, int nr)
102 ptr = kzalloc_node(nr * sizeof(*desc->kstat_irqs),
111 desc->kstat_irqs = ptr;
115 static void init_one_irq_desc(int irq, struct irq_desc *desc, int node)
117 memcpy(desc, &irq_desc_init, sizeof(struct irq_desc));
119 raw_spin_lock_init(&desc->lock);
120 desc->irq = irq;
122 desc->node = node;
124 lockdep_set_class(&desc->lock, &irq_desc_lock_class);
125 init_kstat_irqs(desc, node, nr_cpu_ids);
126 if (!desc->kstat_irqs) {
130 if (!alloc_desc_masks(desc, node, false)) {
134 init_desc_masks(desc);
135 arch_init_chip_data(desc, node);
145 static void set_irq_desc(unsigned int irq, struct irq_desc *desc)
147 radix_tree_insert(&irq_desc_tree, irq, desc);
155 void replace_irq_desc(unsigned int irq, struct irq_desc *desc)
161 radix_tree_replace_slot(ptr, desc);
179 struct irq_desc *desc;
190 desc = irq_desc_legacy;
199 desc[i].irq = i;
201 desc[i].node = node;
203 desc[i].kstat_irqs = kstat_irqs_legacy + i * nr_cpu_ids;
204 lockdep_set_class(&desc[i].lock, &irq_desc_lock_class);
205 alloc_desc_masks(&desc[i], node, true);
206 init_desc_masks(&desc[i]);
207 set_irq_desc(i, &desc[i]);
215 struct irq_desc *desc;
224 desc = irq_to_desc(irq);
225 if (desc)
226 return desc;
231 desc = irq_to_desc(irq);
232 if (desc)
235 desc = kzalloc_node(sizeof(*desc), GFP_ATOMIC, node);
238 if (!desc) {
242 init_one_irq_desc(irq, desc, node);
244 set_irq_desc(irq, desc);
249 return desc;
267 struct irq_desc *desc;
275 desc = irq_desc;
279 desc[i].irq = i;
280 alloc_desc_masks(&desc[i], 0, true);
281 init_desc_masks(&desc[i]);
282 desc[i].kstat_irqs = kstat_irqs_all[i];
298 void clear_kstat_irqs(struct irq_desc *desc)
300 memset(desc->kstat_irqs, 0, nr_cpu_ids * sizeof(*(desc->kstat_irqs)));
309 struct irq_desc *desc = irq_to_desc(irq);
315 print_irq_desc(irq, desc);
474 struct irq_desc *desc = irq_to_desc(irq);
478 kstat_incr_irqs_this_cpu(irq, desc);
480 if (CHECK_IRQ_PER_CPU(desc->status)) {
486 if (desc->chip->ack)
487 desc->chip->ack(irq);
488 if (likely(!(desc->status & IRQ_DISABLED))) {
489 action_ret = handle_IRQ_event(irq, desc->action);
491 note_interrupt(irq, desc, action_ret);
493 desc->chip->end(irq);
497 raw_spin_lock(&desc->lock);
498 if (desc->chip->ack)
499 desc->chip->ack(irq);
504 status = desc->status & ~(IRQ_REPLAY | IRQ_WAITING);
513 action = desc->action;
517 desc->status = status;
541 raw_spin_unlock(&desc->lock);
545 note_interrupt(irq, desc, action_ret);
547 raw_spin_lock(&desc->lock);
548 if (likely(!(desc->status & IRQ_PENDING)))
550 desc->status &= ~IRQ_PENDING;
552 desc->status &= ~IRQ_INPROGRESS;
559 desc->chip->end(irq);
560 raw_spin_unlock(&desc->lock);
568 struct irq_desc *desc;
571 for_each_irq_desc(i, desc) {
572 lockdep_set_class(&desc->lock, &irq_desc_lock_class);
578 struct irq_desc *desc = irq_to_desc(irq);
579 return desc ? desc->kstat_irqs[cpu] : 0;