irqchip: gic: Get rid of routable domain
authorMarc Zyngier <marc.zyngier@arm.com>
Wed, 11 Mar 2015 15:43:46 +0000 (15:43 +0000)
committerJason Cooper <jason@lakedaemon.net>
Sun, 15 Mar 2015 00:55:58 +0000 (00:55 +0000)
The only user of the so called "routable domain" functionality
now being fixed, let's clean up the GIC.

Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Link: https://lkml.kernel.org/r/1426088629-15377-5-git-send-email-marc.zyngier@arm.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
drivers/irqchip/irq-gic.c
include/linux/irqchip/arm-gic.h

index 4634cf7d0ec379d5578319d45194cb18c9997510..e3ca6da4314ed55b712d16bfa6219f9015d808c3 100644 (file)
@@ -798,15 +798,12 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq,
                irq_domain_set_info(d, irq, hw, &gic_chip, d->host_data,
                                    handle_fasteoi_irq, NULL, NULL);
                set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
-
-               gic_routable_irq_domain_ops->map(d, irq, hw);
        }
        return 0;
 }
 
 static void gic_irq_domain_unmap(struct irq_domain *d, unsigned int irq)
 {
-       gic_routable_irq_domain_ops->unmap(d, irq);
 }
 
 static int gic_irq_domain_xlate(struct irq_domain *d,
@@ -825,16 +822,8 @@ static int gic_irq_domain_xlate(struct irq_domain *d,
        *out_hwirq = intspec[1] + 16;
 
        /* For SPIs, we need to add 16 more to get the GIC irq ID number */
-       if (!intspec[0]) {
-               ret = gic_routable_irq_domain_ops->xlate(d, controller,
-                                                        intspec,
-                                                        intsize,
-                                                        out_hwirq,
-                                                        out_type);
-
-               if (IS_ERR_VALUE(ret))
-                       return ret;
-       }
+       if (!intspec[0])
+               *out_hwirq += 16;
 
        *out_type = intspec[2] & IRQ_TYPE_SENSE_MASK;
 
@@ -891,37 +880,6 @@ static const struct irq_domain_ops gic_irq_domain_ops = {
        .xlate = gic_irq_domain_xlate,
 };
 
-/* Default functions for routable irq domain */
-static int gic_routable_irq_domain_map(struct irq_domain *d, unsigned int irq,
-                             irq_hw_number_t hw)
-{
-       return 0;
-}
-
-static void gic_routable_irq_domain_unmap(struct irq_domain *d,
-                                         unsigned int irq)
-{
-}
-
-static int gic_routable_irq_domain_xlate(struct irq_domain *d,
-                               struct device_node *controller,
-                               const u32 *intspec, unsigned int intsize,
-                               unsigned long *out_hwirq,
-                               unsigned int *out_type)
-{
-       *out_hwirq += 16;
-       return 0;
-}
-
-static const struct irq_domain_ops gic_default_routable_irq_domain_ops = {
-       .map = gic_routable_irq_domain_map,
-       .unmap = gic_routable_irq_domain_unmap,
-       .xlate = gic_routable_irq_domain_xlate,
-};
-
-const struct irq_domain_ops *gic_routable_irq_domain_ops =
-                                       &gic_default_routable_irq_domain_ops;
-
 void __init gic_init_bases(unsigned int gic_nr, int irq_start,
                           void __iomem *dist_base, void __iomem *cpu_base,
                           u32 percpu_offset, struct device_node *node)
@@ -929,7 +887,6 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start,
        irq_hw_number_t hwirq_base;
        struct gic_chip_data *gic;
        int gic_irqs, irq_base, i;
-       int nr_routable_irqs;
 
        BUG_ON(gic_nr >= MAX_GIC_NR);
 
@@ -985,15 +942,9 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start,
        gic->gic_irqs = gic_irqs;
 
        if (node) {             /* DT case */
-               const struct irq_domain_ops *ops = &gic_irq_domain_hierarchy_ops;
-
-               if (!of_property_read_u32(node, "arm,routable-irqs",
-                                         &nr_routable_irqs)) {
-                       ops = &gic_irq_domain_ops;
-                       gic_irqs = nr_routable_irqs;
-               }
-
-               gic->domain = irq_domain_add_linear(node, gic_irqs, ops, gic);
+               gic->domain = irq_domain_add_linear(node, gic_irqs,
+                                                   &gic_irq_domain_hierarchy_ops,
+                                                   gic);
        } else {                /* Non-DT case */
                /*
                 * For primary GICs, skip over SGIs.
index 71d706d5f16922a5b95edfd6e6f93971139e7d81..3978c5be4edcf9b1f3f65624960acbecec8b9305 100644 (file)
@@ -115,11 +115,5 @@ int gic_get_cpu_id(unsigned int cpu);
 void gic_migrate_target(unsigned int new_cpu_id);
 unsigned long gic_get_sgir_physaddr(void);
 
-extern const struct irq_domain_ops *gic_routable_irq_domain_ops;
-static inline void __init register_routable_domain_ops
-                                       (const struct irq_domain_ops *ops)
-{
-       gic_routable_irq_domain_ops = ops;
-}
 #endif /* __ASSEMBLY */
 #endif