diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2015-10-13 07:51:41 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-10-13 13:01:25 -0400 |
commit | 18bd8847cdd4dac3276ae9973739c570ce37e0b7 (patch) | |
tree | 16e5ab22576131bed42b734be195633447fc9689 /drivers/irqchip/irq-gic.c | |
parent | 891ae7694f862c3605d037066e15ca128faa95d5 (diff) |
irqchip/gic: Kill the xlate method
We are now left with only two use models for the GIC driver:
- Via a firmware interface, which mandates a hierarchical domain,
and the use of the 'translate' method
- The legacy platforms, which assume irq==hwirq, hence not using
the 'xlate' method.
The logical conclusion is that we can now nuke the 'xlate' method
altogether.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-and-tested-by: Hanjun Guo <hanjun.guo@linaro.org>
Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Cc: Tomasz Nowicki <tomasz.nowicki@linaro.org>
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Cc: Graeme Gregory <graeme@xora.org.uk>
Cc: Jake Oshins <jakeo@microsoft.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Link: http://lkml.kernel.org/r/1444737105-31573-14-git-send-email-marc.zyngier@arm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/irqchip/irq-gic.c')
-rw-r--r-- | drivers/irqchip/irq-gic.c | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c index 491eacb0b413..1d0e76855106 100644 --- a/drivers/irqchip/irq-gic.c +++ b/drivers/irqchip/irq-gic.c | |||
@@ -916,30 +916,6 @@ static void gic_irq_domain_unmap(struct irq_domain *d, unsigned int irq) | |||
916 | { | 916 | { |
917 | } | 917 | } |
918 | 918 | ||
919 | static int gic_irq_domain_xlate(struct irq_domain *d, | ||
920 | struct device_node *controller, | ||
921 | const u32 *intspec, unsigned int intsize, | ||
922 | unsigned long *out_hwirq, unsigned int *out_type) | ||
923 | { | ||
924 | unsigned long ret = 0; | ||
925 | |||
926 | if (irq_domain_get_of_node(d) != controller) | ||
927 | return -EINVAL; | ||
928 | if (intsize < 3) | ||
929 | return -EINVAL; | ||
930 | |||
931 | /* Get the interrupt number and add 16 to skip over SGIs */ | ||
932 | *out_hwirq = intspec[1] + 16; | ||
933 | |||
934 | /* For SPIs, we need to add 16 more to get the GIC irq ID number */ | ||
935 | if (!intspec[0]) | ||
936 | *out_hwirq += 16; | ||
937 | |||
938 | *out_type = intspec[2] & IRQ_TYPE_SENSE_MASK; | ||
939 | |||
940 | return ret; | ||
941 | } | ||
942 | |||
943 | static int gic_irq_domain_translate(struct irq_domain *d, | 919 | static int gic_irq_domain_translate(struct irq_domain *d, |
944 | struct irq_fwspec *fwspec, | 920 | struct irq_fwspec *fwspec, |
945 | unsigned long *hwirq, | 921 | unsigned long *hwirq, |
@@ -1021,7 +997,6 @@ static const struct irq_domain_ops gic_irq_domain_hierarchy_ops = { | |||
1021 | static const struct irq_domain_ops gic_irq_domain_ops = { | 997 | static const struct irq_domain_ops gic_irq_domain_ops = { |
1022 | .map = gic_irq_domain_map, | 998 | .map = gic_irq_domain_map, |
1023 | .unmap = gic_irq_domain_unmap, | 999 | .unmap = gic_irq_domain_unmap, |
1024 | .xlate = gic_irq_domain_xlate, | ||
1025 | }; | 1000 | }; |
1026 | 1001 | ||
1027 | static void __init __gic_init_bases(unsigned int gic_nr, int irq_start, | 1002 | static void __init __gic_init_bases(unsigned int gic_nr, int irq_start, |