diff options
author | Paul Mundt <lethal@linux-sh.org> | 2012-08-01 04:13:46 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2012-08-01 04:13:46 -0400 |
commit | 1d6a21b0a672fb29b01ccf397d478e0541e17716 (patch) | |
tree | cc4527286de39a1b70e0af1de16f8a664bea0118 /drivers/sh/intc/internals.h | |
parent | 2d534926205db9ffce4bbbde67cb9b2cee4b835c (diff) |
sh: intc: initial irqdomain support.
Trivial support for irq domains, using either a linear map or radix tree
depending on the vector layout.
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 | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/sh/intc/internals.h b/drivers/sh/intc/internals.h index f034a979a16f..7dff08e2a071 100644 --- a/drivers/sh/intc/internals.h +++ b/drivers/sh/intc/internals.h | |||
@@ -1,5 +1,6 @@ | |||
1 | #include <linux/sh_intc.h> | 1 | #include <linux/sh_intc.h> |
2 | #include <linux/irq.h> | 2 | #include <linux/irq.h> |
3 | #include <linux/irqdomain.h> | ||
3 | #include <linux/list.h> | 4 | #include <linux/list.h> |
4 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
5 | #include <linux/types.h> | 6 | #include <linux/types.h> |
@@ -66,6 +67,7 @@ struct intc_desc_int { | |||
66 | unsigned int nr_sense; | 67 | unsigned int nr_sense; |
67 | struct intc_window *window; | 68 | struct intc_window *window; |
68 | unsigned int nr_windows; | 69 | unsigned int nr_windows; |
70 | struct irq_domain *domain; | ||
69 | struct irq_chip chip; | 71 | struct irq_chip chip; |
70 | bool skip_suspend; | 72 | bool skip_suspend; |
71 | }; | 73 | }; |
@@ -187,6 +189,9 @@ unsigned long intc_get_ack_handle(unsigned int irq); | |||
187 | void intc_enable_disable_enum(struct intc_desc *desc, struct intc_desc_int *d, | 189 | void intc_enable_disable_enum(struct intc_desc *desc, struct intc_desc_int *d, |
188 | intc_enum enum_id, int enable); | 190 | intc_enum enum_id, int enable); |
189 | 191 | ||
192 | /* irqdomain.c */ | ||
193 | void intc_irq_domain_init(struct intc_desc_int *d, struct intc_hw_desc *hw); | ||
194 | |||
190 | /* virq.c */ | 195 | /* virq.c */ |
191 | void intc_subgroup_init(struct intc_desc *desc, struct intc_desc_int *d); | 196 | void intc_subgroup_init(struct intc_desc *desc, struct intc_desc_int *d); |
192 | void intc_irq_xlate_set(unsigned int irq, intc_enum id, struct intc_desc_int *d); | 197 | void intc_irq_xlate_set(unsigned int irq, intc_enum id, struct intc_desc_int *d); |