diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-06 22:32:52 +0000 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-06 22:32:52 +0000 | 
| commit | 4073723acb9cdcdbe4df9c0e0c376c65d1697e43 (patch) | |
| tree | f41c17eac157b1223ce104845cf9b1e5a9e6a83d /arch/arm/kernel/irq.c | |
| parent | 58daf18cdcab550262a5f4681e1f1e073e21965a (diff) | |
| parent | 4ec3eb13634529c0bc7466658d84d0bbe3244aea (diff) | |
| download | olio-linux-3.10-4073723acb9cdcdbe4df9c0e0c376c65d1697e43.tar.xz olio-linux-3.10-4073723acb9cdcdbe4df9c0e0c376c65d1697e43.zip  | |
Merge branch 'misc' into devel
Conflicts:
	arch/arm/Kconfig
	arch/arm/common/Makefile
	arch/arm/kernel/Makefile
	arch/arm/kernel/smp.c
Diffstat (limited to 'arch/arm/kernel/irq.c')
| -rw-r--r-- | arch/arm/kernel/irq.c | 30 | 
1 files changed, 20 insertions, 10 deletions
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 6d616333340..8135438b881 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c @@ -38,6 +38,7 @@  #include <linux/ftrace.h>  #include <asm/system.h> +#include <asm/mach/arch.h>  #include <asm/mach/irq.h>  #include <asm/mach/time.h> @@ -48,8 +49,6 @@  #define irq_finish(irq) do { } while (0)  #endif -unsigned int arch_nr_irqs; -void (*init_arch_irq)(void) __initdata = NULL;  unsigned long irq_err_count;  int show_interrupts(struct seq_file *p, void *v) @@ -58,11 +57,20 @@ int show_interrupts(struct seq_file *p, void *v)  	struct irq_desc *desc;  	struct irqaction * action;  	unsigned long flags; +	int prec, n; + +	for (prec = 3, n = 1000; prec < 10 && n <= nr_irqs; prec++) +		n *= 10; + +#ifdef CONFIG_SMP +	if (prec < 4) +		prec = 4; +#endif  	if (i == 0) {  		char cpuname[12]; -		seq_printf(p, "    "); +		seq_printf(p, "%*s ", prec, "");  		for_each_present_cpu(cpu) {  			sprintf(cpuname, "CPU%d", cpu);  			seq_printf(p, " %10s", cpuname); @@ -77,7 +85,7 @@ int show_interrupts(struct seq_file *p, void *v)  		if (!action)  			goto unlock; -		seq_printf(p, "%3d: ", i); +		seq_printf(p, "%*d: ", prec, i);  		for_each_present_cpu(cpu)  			seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu));  		seq_printf(p, " %10s", desc->chip->name ? : "-"); @@ -90,13 +98,15 @@ unlock:  		raw_spin_unlock_irqrestore(&desc->lock, flags);  	} else if (i == nr_irqs) {  #ifdef CONFIG_FIQ -		show_fiq_list(p, v); +		show_fiq_list(p, prec);  #endif  #ifdef CONFIG_SMP -		show_ipi_list(p); -		show_local_irqs(p); +		show_ipi_list(p, prec); +#endif +#ifdef CONFIG_LOCAL_TIMERS +		show_local_irqs(p, prec);  #endif -		seq_printf(p, "Err: %10lu\n", irq_err_count); +		seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count);  	}  	return 0;  } @@ -156,13 +166,13 @@ void set_irq_flags(unsigned int irq, unsigned int iflags)  void __init init_IRQ(void)  { -	init_arch_irq(); +	machine_desc->init_irq();  }  #ifdef CONFIG_SPARSE_IRQ  int __init arch_probe_nr_irqs(void)  { -	nr_irqs = arch_nr_irqs ? arch_nr_irqs : NR_IRQS; +	nr_irqs = machine_desc->nr_irqs ? machine_desc->nr_irqs : NR_IRQS;  	return nr_irqs;  }  #endif  |