~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/m32r/kernel/irq.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
#include <linux/kernel_stat.h>
20
20
#include <linux/interrupt.h>
21
 
#include <linux/seq_file.h>
22
21
#include <linux/module.h>
23
22
#include <asm/uaccess.h>
24
23
 
25
24
/*
26
 
 * Generic, controller-independent functions:
27
 
 */
28
 
 
29
 
int show_interrupts(struct seq_file *p, void *v)
30
 
{
31
 
        int i = *(loff_t *) v, j;
32
 
        struct irqaction * action;
33
 
        unsigned long flags;
34
 
 
35
 
        if (i == 0) {
36
 
                seq_printf(p, "           ");
37
 
                for_each_online_cpu(j)
38
 
                        seq_printf(p, "CPU%d       ",j);
39
 
                seq_putc(p, '\n');
40
 
        }
41
 
 
42
 
        if (i < NR_IRQS) {
43
 
                struct irq_desc *desc = irq_to_desc(i);
44
 
 
45
 
                raw_spin_lock_irqsave(&desc->lock, flags);
46
 
                action = desc->action;
47
 
                if (!action)
48
 
                        goto skip;
49
 
                seq_printf(p, "%3d: ",i);
50
 
#ifndef CONFIG_SMP
51
 
                seq_printf(p, "%10u ", kstat_irqs(i));
52
 
#else
53
 
                for_each_online_cpu(j)
54
 
                        seq_printf(p, "%10u ", kstat_irqs_cpu(i, j));
55
 
#endif
56
 
                seq_printf(p, " %14s", desc->irq_data.chip->name);
57
 
                seq_printf(p, "  %s", action->name);
58
 
 
59
 
                for (action=action->next; action; action = action->next)
60
 
                        seq_printf(p, ", %s", action->name);
61
 
 
62
 
                seq_putc(p, '\n');
63
 
skip:
64
 
                raw_spin_unlock_irqrestore(&desc->lock, flags);
65
 
        }
66
 
        return 0;
67
 
}
68
 
 
69
 
/*
70
25
 * do_IRQ handles all normal device IRQs (the special
71
26
 * SMP cross-CPU interrupts have their own specific
72
27
 * handlers).