Lines Matching refs:gic
332 struct gic_chip_data *gic = &gic_data[0]; in gic_handle_irq() local
333 void __iomem *cpu_base = gic_data_cpu_base(gic); in gic_handle_irq()
342 handle_domain_irq(gic->domain, irqnr, regs); in gic_handle_irq()
434 static u8 gic_get_cpumask(struct gic_chip_data *gic) in gic_get_cpumask() argument
436 void __iomem *base = gic_data_dist_base(gic); in gic_get_cpumask()
453 static void gic_cpu_if_up(struct gic_chip_data *gic) in gic_cpu_if_up() argument
455 void __iomem *cpu_base = gic_data_cpu_base(gic); in gic_cpu_if_up()
472 static void __init gic_dist_init(struct gic_chip_data *gic) in gic_dist_init() argument
476 unsigned int gic_irqs = gic->gic_irqs; in gic_dist_init()
477 void __iomem *base = gic_data_dist_base(gic); in gic_dist_init()
484 cpumask = gic_get_cpumask(gic); in gic_dist_init()
495 static void gic_cpu_init(struct gic_chip_data *gic) in gic_cpu_init() argument
497 void __iomem *dist_base = gic_data_dist_base(gic); in gic_cpu_init()
498 void __iomem *base = gic_data_cpu_base(gic); in gic_cpu_init()
507 if (gic == &gic_data[0]) { in gic_cpu_init()
512 cpu_mask = gic_get_cpumask(gic); in gic_cpu_init()
527 gic_cpu_if_up(gic); in gic_cpu_init()
745 static void __init gic_pm_init(struct gic_chip_data *gic) in gic_pm_init() argument
747 gic->saved_ppi_enable = __alloc_percpu(DIV_ROUND_UP(32, 32) * 4, in gic_pm_init()
749 BUG_ON(!gic->saved_ppi_enable); in gic_pm_init()
751 gic->saved_ppi_active = __alloc_percpu(DIV_ROUND_UP(32, 32) * 4, in gic_pm_init()
753 BUG_ON(!gic->saved_ppi_active); in gic_pm_init()
755 gic->saved_ppi_conf = __alloc_percpu(DIV_ROUND_UP(32, 16) * 4, in gic_pm_init()
757 BUG_ON(!gic->saved_ppi_conf); in gic_pm_init()
759 if (gic == &gic_data[0]) in gic_pm_init()
763 static void __init gic_pm_init(struct gic_chip_data *gic) in gic_pm_init() argument
1048 struct gic_chip_data *gic; in __gic_init_bases() local
1055 gic = &gic_data[gic_nr]; in __gic_init_bases()
1060 gic->dist_base.percpu_base = alloc_percpu(void __iomem *); in __gic_init_bases()
1061 gic->cpu_base.percpu_base = alloc_percpu(void __iomem *); in __gic_init_bases()
1062 if (WARN_ON(!gic->dist_base.percpu_base || in __gic_init_bases()
1063 !gic->cpu_base.percpu_base)) { in __gic_init_bases()
1064 free_percpu(gic->dist_base.percpu_base); in __gic_init_bases()
1065 free_percpu(gic->cpu_base.percpu_base); in __gic_init_bases()
1073 *per_cpu_ptr(gic->dist_base.percpu_base, cpu) = dist_base + offset; in __gic_init_bases()
1074 *per_cpu_ptr(gic->cpu_base.percpu_base, cpu) = cpu_base + offset; in __gic_init_bases()
1077 gic_set_base_accessor(gic, gic_get_percpu_base); in __gic_init_bases()
1084 gic->dist_base.common_base = dist_base; in __gic_init_bases()
1085 gic->cpu_base.common_base = cpu_base; in __gic_init_bases()
1086 gic_set_base_accessor(gic, gic_get_common_base); in __gic_init_bases()
1093 gic_irqs = readl_relaxed(gic_data_dist_base(gic) + GIC_DIST_CTR) & 0x1f; in __gic_init_bases()
1097 gic->gic_irqs = gic_irqs; in __gic_init_bases()
1100 gic->domain = irq_domain_create_linear(handle, gic_irqs, in __gic_init_bases()
1102 gic); in __gic_init_bases()
1126 gic->domain = irq_domain_add_legacy(NULL, gic_irqs, irq_base, in __gic_init_bases()
1127 hwirq_base, &gic_irq_domain_ops, gic); in __gic_init_bases()
1130 if (WARN_ON(!gic->domain)) in __gic_init_bases()
1150 gic_dist_init(gic); in __gic_init_bases()
1151 gic_cpu_init(gic); in __gic_init_bases()
1152 gic_pm_init(gic); in __gic_init_bases()