--- zzzz-none-000/linux-4.1.38/arch/arm/kernel/irq.c 2017-01-18 18:48:06.000000000 +0000 +++ bcm63-7582-715/linux-4.1.38/arch/arm/kernel/irq.c 2020-11-25 10:06:48.000000000 +0000 @@ -44,6 +44,13 @@ #include #include +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ +#if defined(CONFIG_AVM_POWER) +#include +#endif /*--- #if defined(CONFIG_AVM_POWER) ---*/ + unsigned long irq_err_count; int arch_show_interrupts(struct seq_file *p, int prec) @@ -66,7 +73,17 @@ */ void handle_IRQ(unsigned int irq, struct pt_regs *regs) { +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_enter_irq_context(regs->ARM_pc, regs->ARM_lr); + avm_simple_profiling_log(avm_profile_data_type_hw_irq_begin, (unsigned int)(irq_to_desc(irq)), irq); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ +#if defined(CONFIG_AVM_POWER) + avm_cpu_wait_end(); /*--- auch wenn es wait_irqoff gibt: trotzdem aufrufen, um system-load-Ausgabe zu triggern ---*/ +#endif /*--- #if defined(CONFIG_AVM_POWER) ---*/ __handle_domain_irq(NULL, irq, false, regs); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_end, (unsigned int)(irq_to_desc(irq)), irq); +#endif /*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ } /*