aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-gic.c
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2015-10-13 07:51:41 -0400
committerThomas Gleixner <tglx@linutronix.de>2015-10-13 13:01:25 -0400
commit18bd8847cdd4dac3276ae9973739c570ce37e0b7 (patch)
tree16e5ab22576131bed42b734be195633447fc9689 /drivers/irqchip/irq-gic.c
parent891ae7694f862c3605d037066e15ca128faa95d5 (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.c25
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
919static 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
943static int gic_irq_domain_translate(struct irq_domain *d, 919static 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 = {
1021static const struct irq_domain_ops gic_irq_domain_ops = { 997static 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
1027static void __init __gic_init_bases(unsigned int gic_nr, int irq_start, 1002static void __init __gic_init_bases(unsigned int gic_nr, int irq_start,