Lines Matching refs:gic
267 struct gic_chip_data *gic = &gic_data[0]; in gic_handle_irq() local
268 void __iomem *cpu_base = gic_data_cpu_base(gic); in gic_handle_irq()
275 handle_domain_irq(gic->domain, irqnr, regs); in gic_handle_irq()
346 static u8 gic_get_cpumask(struct gic_chip_data *gic) in gic_get_cpumask() argument
348 void __iomem *base = gic_data_dist_base(gic); in gic_get_cpumask()
380 static void __init gic_dist_init(struct gic_chip_data *gic) in gic_dist_init() argument
384 unsigned int gic_irqs = gic->gic_irqs; in gic_dist_init()
385 void __iomem *base = gic_data_dist_base(gic); in gic_dist_init()
392 cpumask = gic_get_cpumask(gic); in gic_dist_init()
403 static void gic_cpu_init(struct gic_chip_data *gic) in gic_cpu_init() argument
405 void __iomem *dist_base = gic_data_dist_base(gic); in gic_cpu_init()
406 void __iomem *base = gic_data_cpu_base(gic); in gic_cpu_init()
414 cpu_mask = gic_get_cpumask(gic); in gic_cpu_init()
612 static void __init gic_pm_init(struct gic_chip_data *gic) in gic_pm_init() argument
614 gic->saved_ppi_enable = __alloc_percpu(DIV_ROUND_UP(32, 32) * 4, in gic_pm_init()
616 BUG_ON(!gic->saved_ppi_enable); in gic_pm_init()
618 gic->saved_ppi_conf = __alloc_percpu(DIV_ROUND_UP(32, 16) * 4, in gic_pm_init()
620 BUG_ON(!gic->saved_ppi_conf); in gic_pm_init()
622 if (gic == &gic_data[0]) in gic_pm_init()
626 static void __init gic_pm_init(struct gic_chip_data *gic) in gic_pm_init() argument
900 struct gic_chip_data *gic; in gic_init_bases() local
905 gic = &gic_data[gic_nr]; in gic_init_bases()
910 gic->dist_base.percpu_base = alloc_percpu(void __iomem *); in gic_init_bases()
911 gic->cpu_base.percpu_base = alloc_percpu(void __iomem *); in gic_init_bases()
912 if (WARN_ON(!gic->dist_base.percpu_base || in gic_init_bases()
913 !gic->cpu_base.percpu_base)) { in gic_init_bases()
914 free_percpu(gic->dist_base.percpu_base); in gic_init_bases()
915 free_percpu(gic->cpu_base.percpu_base); in gic_init_bases()
923 *per_cpu_ptr(gic->dist_base.percpu_base, cpu) = dist_base + offset; in gic_init_bases()
924 *per_cpu_ptr(gic->cpu_base.percpu_base, cpu) = cpu_base + offset; in gic_init_bases()
927 gic_set_base_accessor(gic, gic_get_percpu_base); in gic_init_bases()
934 gic->dist_base.common_base = dist_base; in gic_init_bases()
935 gic->cpu_base.common_base = cpu_base; in gic_init_bases()
936 gic_set_base_accessor(gic, gic_get_common_base); in gic_init_bases()
950 gic_irqs = readl_relaxed(gic_data_dist_base(gic) + GIC_DIST_CTR) & 0x1f; in gic_init_bases()
954 gic->gic_irqs = gic_irqs; in gic_init_bases()
957 gic->domain = irq_domain_add_linear(node, gic_irqs, in gic_init_bases()
959 gic); in gic_init_bases()
983 gic->domain = irq_domain_add_legacy(node, gic_irqs, irq_base, in gic_init_bases()
984 hwirq_base, &gic_irq_domain_ops, gic); in gic_init_bases()
987 if (WARN_ON(!gic->domain)) in gic_init_bases()
998 gic_dist_init(gic); in gic_init_bases()
999 gic_cpu_init(gic); in gic_init_bases()
1000 gic_pm_init(gic); in gic_init_bases()