--- zzzz-none-000/linux-3.10.107/arch/arm/kernel/irq.c 2017-06-27 09:49:32.000000000 +0000 +++ vr9-7490-729/linux-3.10.107/arch/arm/kernel/irq.c 2021-11-10 11:53:52.000000000 +0000 @@ -42,6 +42,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) @@ -68,6 +75,14 @@ irq_enter(); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_enter_irqcontext(regs->ARM_pc); + 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) ---*/ + /* * Some hardware gives randomly wrong interrupts. Rather * than crashing, do something sensible. @@ -79,6 +94,9 @@ } else { generic_handle_irq(irq); } +#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) ---*/ irq_exit(); set_irq_regs(old_regs);