Lines Matching refs:gic_data

63 static struct gic_chip_data gic_data __read_mostly;
70 #define gic_data_rdist() (this_cpu_ptr(gic_data.rdists.rdist))
93 return gic_data.dist_base; in gic_dist_base()
116 gic_do_wait_for_rwp(gic_data.dist_base); in gic_dist_wait_for_rwp()
181 base = gic_data.dist_base; in gic_peek_irq()
196 base = gic_data.dist_base; in gic_poke_irq()
234 if (d->hwirq >= gic_data.irq_nr) /* PPI/SPI only */ in gic_irq_set_irqchip_state()
261 if (d->hwirq >= gic_data.irq_nr) /* PPI/SPI only */ in gic_irq_get_irqchip_state()
319 base = gic_data.dist_base; in gic_set_type()
362 err = handle_domain_irq(gic_data.domain, irqnr, regs); in gic_handle_irq()
399 void __iomem *base = gic_data.dist_base; in gic_dist_init()
411 for (i = 32; i < gic_data.irq_nr; i += 32) in gic_dist_init()
414 gic_dist_config(base, gic_data.irq_nr, gic_dist_wait_for_rwp); in gic_dist_init()
425 for (i = 32; i < gic_data.irq_nr; i++) in gic_dist_init()
434 for (i = 0; i < gic_data.nr_redist_regions; i++) { in gic_iterate_rdists()
435 void __iomem *ptr = gic_data.redist_regions[i].redist_base; in gic_iterate_rdists()
448 ret = fn(gic_data.redist_regions + i, ptr); in gic_iterate_rdists()
452 if (gic_data.redist_regions[i].single_redist) in gic_iterate_rdists()
455 if (gic_data.redist_stride) { in gic_iterate_rdists()
456 ptr += gic_data.redist_stride; in gic_iterate_rdists()
491 (int)(region - gic_data.redist_regions), in __gic_populate_rdist()
516 gic_data.rdists.has_vlpis &= !!(typer & GICR_TYPER_VLPIS); in __gic_update_vlpi_properties()
517 gic_data.rdists.has_direct_lpi &= !!(typer & GICR_TYPER_DirectLPIS); in __gic_update_vlpi_properties()
526 !gic_data.rdists.has_vlpis ? "no " : "", in gic_update_vlpi_properties()
527 !gic_data.rdists.has_direct_lpi ? "no " : ""); in gic_update_vlpi_properties()
642 if (need_rss && (!gic_data.has_rss)) in gic_cpu_sys_reg_init()
656 return !!(readl_relaxed(gic_data.dist_base + GICD_TYPER) & GICD_TYPER_LPIS) && !gicv3_nolpi; in gic_dist_supports_lpis()
825 return readl_relaxed(gic_data.dist_base + GICD_CTLR) & GICD_CTLR_DS; in gic_dist_security_disabled()
884 #define GIC_ID_NR (1U << GICD_TYPER_ID_BITS(gic_data.rdists.gicd_typer))
898 if (hw >= gic_data.irq_nr && hw < 8192) in gic_irq_domain_map()
912 if (hw >= 32 && hw < gic_data.irq_nr) { in gic_irq_domain_map()
1031 return d == partition_get_domain(gic_data.ppi_descs[fwspec->param[1]]); in gic_irq_domain_select()
1033 return d == gic_data.domain; in gic_irq_domain_select()
1055 ret = partition_translate_id(gic_data.ppi_descs[fwspec->param[1]], in partition_domain_translate()
1087 gic_data.fwnode = handle; in gic_init_bases()
1088 gic_data.dist_base = dist_base; in gic_init_bases()
1089 gic_data.redist_regions = rdist_regs; in gic_init_bases()
1090 gic_data.nr_redist_regions = nr_redist_regions; in gic_init_bases()
1091 gic_data.redist_stride = redist_stride; in gic_init_bases()
1097 typer = readl_relaxed(gic_data.dist_base + GICD_TYPER); in gic_init_bases()
1098 gic_data.rdists.gicd_typer = typer; in gic_init_bases()
1102 gic_data.irq_nr = gic_irqs; in gic_init_bases()
1104 gic_data.domain = irq_domain_create_tree(handle, &gic_irq_domain_ops, in gic_init_bases()
1105 &gic_data); in gic_init_bases()
1106 irq_domain_update_bus_token(gic_data.domain, DOMAIN_BUS_WIRED); in gic_init_bases()
1107 gic_data.rdists.rdist = alloc_percpu(typeof(*gic_data.rdists.rdist)); in gic_init_bases()
1108 gic_data.rdists.has_vlpis = true; in gic_init_bases()
1109 gic_data.rdists.has_direct_lpi = true; in gic_init_bases()
1111 if (WARN_ON(!gic_data.domain) || WARN_ON(!gic_data.rdists.rdist)) { in gic_init_bases()
1116 gic_data.has_rss = !!(typer & GICD_TYPER_RSS); in gic_init_bases()
1118 gic_data.has_rss ? "" : "no "); in gic_init_bases()
1121 err = mbi_init(handle, gic_data.domain); in gic_init_bases()
1131 its_init(handle, &gic_data.rdists, gic_data.domain); in gic_init_bases()
1141 if (gic_data.domain) in gic_init_bases()
1142 irq_domain_remove(gic_data.domain); in gic_init_bases()
1143 free_percpu(gic_data.rdists.rdist); in gic_init_bases()
1224 .fwnode = gic_data.fwnode, in gic_populate_ppi_partitions()
1236 desc = partition_create_desc(gic_data.fwnode, parts, nr_parts, in gic_populate_ppi_partitions()
1241 gic_data.ppi_descs[i] = desc; in gic_populate_ppi_partitions()
1269 gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis; in gic_of_setup_kvm_info()
1577 gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis; in gic_acpi_setup_kvm_info()