.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 gic_set_irqchip_flags(unsigned long flags)
+ {
+       gic_chip.flags |= flags;
+ }
+ 
  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)