irq.c (b9f12a5d97f652c77ef6803dccd0d40d1290f5be) irq.c (0869b6fd209bda402576a9a559120ddd4f61198e)
1/*
2 * Derived from arch/i386/kernel/irq.c
3 * Copyright (C) 1992 Linus Torvalds
4 * Adapted from arch/i386 by Gary Thomas
5 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
6 * Updated and modified by Cort Dougan <cort@fsmlabs.com>
7 * Copyright (C) 1996-2001 Cort Dougan
8 * Adapted for Power Macintosh by Paul Mackerras

--- 175 unchanged lines hidden (view full) ---

184 local_paca->irq_happened &= ~PACA_IRQ_DBELL;
185 if (happened & PACA_IRQ_DBELL) {
186 if (cpu_has_feature(CPU_FTR_HVMODE))
187 return 0xe80;
188 return 0xa00;
189 }
190#endif /* CONFIG_PPC_BOOK3E */
191
1/*
2 * Derived from arch/i386/kernel/irq.c
3 * Copyright (C) 1992 Linus Torvalds
4 * Adapted from arch/i386 by Gary Thomas
5 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
6 * Updated and modified by Cort Dougan <cort@fsmlabs.com>
7 * Copyright (C) 1996-2001 Cort Dougan
8 * Adapted for Power Macintosh by Paul Mackerras

--- 175 unchanged lines hidden (view full) ---

184 local_paca->irq_happened &= ~PACA_IRQ_DBELL;
185 if (happened & PACA_IRQ_DBELL) {
186 if (cpu_has_feature(CPU_FTR_HVMODE))
187 return 0xe80;
188 return 0xa00;
189 }
190#endif /* CONFIG_PPC_BOOK3E */
191
192 /* Check if an hypervisor Maintenance interrupt happened */
193 local_paca->irq_happened &= ~PACA_IRQ_HMI;
194 if (happened & PACA_IRQ_HMI)
195 return 0xe60;
196
192 /* There should be nothing left ! */
193 BUG_ON(local_paca->irq_happened != 0);
194
195 return 0;
196}
197
198notrace void arch_local_irq_restore(unsigned long en)
199{

--- 172 unchanged lines hidden (view full) ---

372 seq_printf(p, "%10u ", per_cpu(irq_stat, j).pmu_irqs);
373 seq_printf(p, " Performance monitoring interrupts\n");
374
375 seq_printf(p, "%*s: ", prec, "MCE");
376 for_each_online_cpu(j)
377 seq_printf(p, "%10u ", per_cpu(irq_stat, j).mce_exceptions);
378 seq_printf(p, " Machine check exceptions\n");
379
197 /* There should be nothing left ! */
198 BUG_ON(local_paca->irq_happened != 0);
199
200 return 0;
201}
202
203notrace void arch_local_irq_restore(unsigned long en)
204{

--- 172 unchanged lines hidden (view full) ---

377 seq_printf(p, "%10u ", per_cpu(irq_stat, j).pmu_irqs);
378 seq_printf(p, " Performance monitoring interrupts\n");
379
380 seq_printf(p, "%*s: ", prec, "MCE");
381 for_each_online_cpu(j)
382 seq_printf(p, "%10u ", per_cpu(irq_stat, j).mce_exceptions);
383 seq_printf(p, " Machine check exceptions\n");
384
385 if (cpu_has_feature(CPU_FTR_HVMODE)) {
386 seq_printf(p, "%*s: ", prec, "HMI");
387 for_each_online_cpu(j)
388 seq_printf(p, "%10u ",
389 per_cpu(irq_stat, j).hmi_exceptions);
390 seq_printf(p, " Hypervisor Maintenance Interrupts\n");
391 }
392
380#ifdef CONFIG_PPC_DOORBELL
381 if (cpu_has_feature(CPU_FTR_DBELL)) {
382 seq_printf(p, "%*s: ", prec, "DBL");
383 for_each_online_cpu(j)
384 seq_printf(p, "%10u ", per_cpu(irq_stat, j).doorbell_irqs);
385 seq_printf(p, " Doorbell interrupts\n");
386 }
387#endif

--- 7 unchanged lines hidden (view full) ---

395u64 arch_irq_stat_cpu(unsigned int cpu)
396{
397 u64 sum = per_cpu(irq_stat, cpu).timer_irqs_event;
398
399 sum += per_cpu(irq_stat, cpu).pmu_irqs;
400 sum += per_cpu(irq_stat, cpu).mce_exceptions;
401 sum += per_cpu(irq_stat, cpu).spurious_irqs;
402 sum += per_cpu(irq_stat, cpu).timer_irqs_others;
393#ifdef CONFIG_PPC_DOORBELL
394 if (cpu_has_feature(CPU_FTR_DBELL)) {
395 seq_printf(p, "%*s: ", prec, "DBL");
396 for_each_online_cpu(j)
397 seq_printf(p, "%10u ", per_cpu(irq_stat, j).doorbell_irqs);
398 seq_printf(p, " Doorbell interrupts\n");
399 }
400#endif

--- 7 unchanged lines hidden (view full) ---

408u64 arch_irq_stat_cpu(unsigned int cpu)
409{
410 u64 sum = per_cpu(irq_stat, cpu).timer_irqs_event;
411
412 sum += per_cpu(irq_stat, cpu).pmu_irqs;
413 sum += per_cpu(irq_stat, cpu).mce_exceptions;
414 sum += per_cpu(irq_stat, cpu).spurious_irqs;
415 sum += per_cpu(irq_stat, cpu).timer_irqs_others;
416 sum += per_cpu(irq_stat, cpu).hmi_exceptions;
403#ifdef CONFIG_PPC_DOORBELL
404 sum += per_cpu(irq_stat, cpu).doorbell_irqs;
405#endif
406
407 return sum;
408}
409
410#ifdef CONFIG_HOTPLUG_CPU

--- 268 unchanged lines hidden ---
417#ifdef CONFIG_PPC_DOORBELL
418 sum += per_cpu(irq_stat, cpu).doorbell_irqs;
419#endif
420
421 return sum;
422}
423
424#ifdef CONFIG_HOTPLUG_CPU

--- 268 unchanged lines hidden ---