diff options
author | Paul Mundt <lethal@linux-sh.org> | 2012-01-24 03:41:55 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2012-01-24 03:41:55 -0500 |
commit | b59f9f9775e643435bba76e30e59e47c19c56dee (patch) | |
tree | 55bc067e5d2da0fc01ef9808ded60d9234dde165 /drivers/sh/intc/internals.h | |
parent | 30377642138aadeef35a31c2f90dba0b6fa7b91a (diff) |
sh: intc: optimize intc IRQ lookup
This ensures that the sense/prio lists are sorted at registration time,
enabling us to use a simple binary search for an optimized lookup
(something that had been on the TODO for some time).
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/sh/intc/internals.h')
-rw-r--r-- | drivers/sh/intc/internals.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/sh/intc/internals.h b/drivers/sh/intc/internals.h index 422b72df089e..f034a979a16f 100644 --- a/drivers/sh/intc/internals.h +++ b/drivers/sh/intc/internals.h | |||
@@ -108,6 +108,14 @@ static inline void activate_irq(int irq) | |||
108 | #endif | 108 | #endif |
109 | } | 109 | } |
110 | 110 | ||
111 | static inline int intc_handle_int_cmp(const void *a, const void *b) | ||
112 | { | ||
113 | const struct intc_handle_int *_a = a; | ||
114 | const struct intc_handle_int *_b = b; | ||
115 | |||
116 | return _a->irq - _b->irq; | ||
117 | } | ||
118 | |||
111 | /* access.c */ | 119 | /* access.c */ |
112 | extern unsigned long | 120 | extern unsigned long |
113 | (*intc_reg_fns[])(unsigned long addr, unsigned long h, unsigned long data); | 121 | (*intc_reg_fns[])(unsigned long addr, unsigned long h, unsigned long data); |