--- zzzz-none-000/linux-4.9.279/kernel/irq/irqdesc.c 2021-08-08 06:38:54.000000000 +0000 +++ puma7-arm-6591-750/linux-4.9.279/kernel/irq/irqdesc.c 2023-02-08 10:58:16.000000000 +0000 @@ -7,6 +7,10 @@ * Detailed information is available in Documentation/DocBook/genericirq * */ +/* +Includes Intel Corporation's changes/modifications dated: 2014. +Changed/modified portions - Copyright © 2014, Intel Corporation. +*/ #include #include #include @@ -16,9 +20,15 @@ #include #include #include - +#ifdef CONFIG_INTEL_IRQ_THREAD_CHANGE_PRIORITY +#include +#include +#endif #include "internals.h" - +#include +#if defined(CONFIG_AVM_POWER) +#include +#endif /*--- #if defined(CONFIG_AVM_POWER) ---*/ /* * lockdep: we want to handle all irq_desc locks as a single lock-class: */ @@ -115,6 +125,10 @@ for_each_possible_cpu(cpu) *per_cpu_ptr(desc->kstat_irqs, cpu) = 0; desc_smp_init(desc, node, affinity); +#ifdef CONFIG_INTEL_IRQ_THREAD_CHANGE_PRIORITY + desc->sched_priority = MAX_USER_RT_PRIO/2; + desc->policy = SCHED_FIFO; +#endif } int nr_irqs = NR_IRQS; @@ -624,6 +638,14 @@ int ret = 0; irq_enter(); +#if defined(CONFIG_AVM_POWER) + avm_cpu_wait_end(); /* call it to trigger system load output*/ +#endif /*--- #if defined(CONFIG_AVM_POWER) ---*/ + if (IS_ENABLED(CONFIG_ARM)) { + 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); + } #ifdef CONFIG_IRQ_DOMAIN if (lookup) @@ -641,6 +663,9 @@ generic_handle_irq(irq); } + avm_simple_profiling_log(avm_profile_data_type_hw_irq_end, + (unsigned int)irq_to_desc(irq), irq); + irq_exit(); set_irq_regs(old_regs); return ret;