aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2011-02-28 05:12:29 -0500
committerWill Deacon <will.deacon@arm.com>2011-05-11 11:04:15 -0400
commitadfed159ab71bff53ccac3013776580bc866d2ba (patch)
treee822c9aad821335a7363df446e3c99a8c66503df /lib
parent03dd765fe4dd9420ac430d2a7c19498afa4431b3 (diff)
ARM: nmk: update GPIO chained IRQ handler to entry/exit functions
This patch updates the Nomadik gpio chained IRQ handler to use the chained IRQ enter/exit functions in order to function correctly on primary controllers with different methods of flow control. Cc: Rabin Vincent <rabin@rab.in> Cc: Grant Likely <grant.likely@secretlab.ca> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions
="hl kwb">unsigned int irq, int cpu); #define kstat_incr_irqs_this_cpu(irqno, DESC) \ do { \ __this_cpu_inc(*(DESC)->kstat_irqs); \ __this_cpu_inc(kstat.irqs_sum); \ } while (0) #endif static inline void kstat_incr_softirqs_this_cpu(unsigned int irq) { __this_cpu_inc(kstat.softirqs[irq]); } static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu) { return kstat_cpu(cpu).softirqs[irq]; } /* * Number of interrupts per specific IRQ source, since bootup */ #ifndef CONFIG_GENERIC_HARDIRQS static inline unsigned int kstat_irqs(unsigned int irq) { unsigned int sum = 0; int cpu; for_each_possible_cpu(cpu) sum += kstat_irqs_cpu(irq, cpu); return sum; } #else extern unsigned int kstat_irqs(unsigned int irq); #endif /* * Number of interrupts per cpu, since bootup */ static inline unsigned int kstat_cpu_irqs_sum(unsigned int cpu) { return kstat_cpu(cpu).irqs_sum; } /* * Lock/unlock the current runqueue - to extract task statistics: */ extern unsigned long long task_delta_exec(struct task_struct *); extern void account_user_time(struct task_struct *, cputime_t, cputime_t); extern void account_system_time(struct task_struct *, int, cputime_t, cputime_t); extern void account_steal_time(cputime_t); extern void account_idle_time(cputime_t); extern void account_process_tick(struct task_struct *, int user); extern void account_steal_ticks(unsigned long ticks); extern void account_idle_ticks(unsigned long ticks); #endif /* _LINUX_KERNEL_STAT_H */