gic_data 58 drivers/irqchip/irq-gic-v3.c static struct gic_chip_data gic_data __read_mostly; gic_data 61 drivers/irqchip/irq-gic-v3.c #define GIC_ID_NR (1U << GICD_TYPER_ID_BITS(gic_data.rdists.gicd_typer)) gic_data 62 drivers/irqchip/irq-gic-v3.c #define GIC_LINE_NR min(GICD_TYPER_SPIS(gic_data.rdists.gicd_typer), 1020U) gic_data 63 drivers/irqchip/irq-gic-v3.c #define GIC_ESPI_NR GICD_TYPER_ESPIS(gic_data.rdists.gicd_typer) gic_data 97 drivers/irqchip/irq-gic-v3.c #define gic_data_rdist() (this_cpu_ptr(gic_data.rdists.rdist)) gic_data 158 drivers/irqchip/irq-gic-v3.c return gic_data.dist_base; gic_data 183 drivers/irqchip/irq-gic-v3.c gic_do_wait_for_rwp(gic_data.dist_base); gic_data 209 drivers/irqchip/irq-gic-v3.c if (gic_data.flags & FLAGS_WORKAROUND_GICR_WAKER_MSM8996) gic_data 303 drivers/irqchip/irq-gic-v3.c base = gic_data.dist_base; gic_data 321 drivers/irqchip/irq-gic-v3.c base = gic_data.dist_base; gic_data 547 drivers/irqchip/irq-gic-v3.c base = gic_data.dist_base; gic_data 610 drivers/irqchip/irq-gic-v3.c err = handle_domain_nmi(gic_data.domain, irqnr, regs); gic_data 648 drivers/irqchip/irq-gic-v3.c err = handle_domain_irq(gic_data.domain, irqnr, regs); gic_data 716 drivers/irqchip/irq-gic-v3.c void __iomem *base = gic_data.dist_base; gic_data 770 drivers/irqchip/irq-gic-v3.c for (i = 0; i < gic_data.nr_redist_regions; i++) { gic_data 771 drivers/irqchip/irq-gic-v3.c void __iomem *ptr = gic_data.redist_regions[i].redist_base; gic_data 784 drivers/irqchip/irq-gic-v3.c ret = fn(gic_data.redist_regions + i, ptr); gic_data 788 drivers/irqchip/irq-gic-v3.c if (gic_data.redist_regions[i].single_redist) gic_data 791 drivers/irqchip/irq-gic-v3.c if (gic_data.redist_stride) { gic_data 792 drivers/irqchip/irq-gic-v3.c ptr += gic_data.redist_stride; gic_data 827 drivers/irqchip/irq-gic-v3.c (int)(region - gic_data.redist_regions), gic_data 852 drivers/irqchip/irq-gic-v3.c gic_data.rdists.has_vlpis &= !!(typer & GICR_TYPER_VLPIS); gic_data 853 drivers/irqchip/irq-gic-v3.c gic_data.rdists.has_direct_lpi &= !!(typer & GICR_TYPER_DirectLPIS); gic_data 854 drivers/irqchip/irq-gic-v3.c gic_data.ppi_nr = min(GICR_TYPER_NR_PPIS(typer), gic_data.ppi_nr); gic_data 861 drivers/irqchip/irq-gic-v3.c gic_data.ppi_nr = UINT_MAX; gic_data 863 drivers/irqchip/irq-gic-v3.c if (WARN_ON(gic_data.ppi_nr == UINT_MAX)) gic_data 864 drivers/irqchip/irq-gic-v3.c gic_data.ppi_nr = 0; gic_data 865 drivers/irqchip/irq-gic-v3.c pr_info("%d PPIs implemented\n", gic_data.ppi_nr); gic_data 867 drivers/irqchip/irq-gic-v3.c !gic_data.rdists.has_vlpis ? "no " : "", gic_data 868 drivers/irqchip/irq-gic-v3.c !gic_data.rdists.has_direct_lpi ? "no " : ""); gic_data 874 drivers/irqchip/irq-gic-v3.c return readl_relaxed(gic_data.dist_base + GICD_CTLR) & GICD_CTLR_DS; gic_data 987 drivers/irqchip/irq-gic-v3.c if (need_rss && (!gic_data.has_rss)) gic_data 1002 drivers/irqchip/irq-gic-v3.c !!(readl_relaxed(gic_data.dist_base + GICD_TYPER) & GICD_TYPER_LPIS) && gic_data 1017 drivers/irqchip/irq-gic-v3.c WARN((gic_data.ppi_nr > 16 || GIC_ESPI_NR != 0) && gic_data 1025 drivers/irqchip/irq-gic-v3.c for (i = 0; i < gic_data.ppi_nr + 16; i += 32) gic_data 1028 drivers/irqchip/irq-gic-v3.c gic_cpu_config(rbase, gic_data.ppi_nr + 16, gic_redist_wait_for_rwp); gic_data 1391 drivers/irqchip/irq-gic-v3.c gic_data.ppi_descs) gic_data 1392 drivers/irqchip/irq-gic-v3.c return d == partition_get_domain(gic_data.ppi_descs[fwspec->param[1]]); gic_data 1394 drivers/irqchip/irq-gic-v3.c return d == gic_data.domain; gic_data 1412 drivers/irqchip/irq-gic-v3.c if (!gic_data.ppi_descs) gic_data 1419 drivers/irqchip/irq-gic-v3.c ret = partition_translate_id(gic_data.ppi_descs[fwspec->param[1]], gic_data 1498 drivers/irqchip/irq-gic-v3.c ppi_nmi_refs = kcalloc(gic_data.ppi_nr, sizeof(*ppi_nmi_refs), GFP_KERNEL); gic_data 1502 drivers/irqchip/irq-gic-v3.c for (i = 0; i < gic_data.ppi_nr; i++) gic_data 1528 drivers/irqchip/irq-gic-v3.c gic_data.fwnode = handle; gic_data 1529 drivers/irqchip/irq-gic-v3.c gic_data.dist_base = dist_base; gic_data 1530 drivers/irqchip/irq-gic-v3.c gic_data.redist_regions = rdist_regs; gic_data 1531 drivers/irqchip/irq-gic-v3.c gic_data.nr_redist_regions = nr_redist_regions; gic_data 1532 drivers/irqchip/irq-gic-v3.c gic_data.redist_stride = redist_stride; gic_data 1537 drivers/irqchip/irq-gic-v3.c typer = readl_relaxed(gic_data.dist_base + GICD_TYPER); gic_data 1538 drivers/irqchip/irq-gic-v3.c gic_data.rdists.gicd_typer = typer; gic_data 1540 drivers/irqchip/irq-gic-v3.c gic_enable_quirks(readl_relaxed(gic_data.dist_base + GICD_IIDR), gic_data 1541 drivers/irqchip/irq-gic-v3.c gic_quirks, &gic_data); gic_data 1545 drivers/irqchip/irq-gic-v3.c gic_data.domain = irq_domain_create_tree(handle, &gic_irq_domain_ops, gic_data 1546 drivers/irqchip/irq-gic-v3.c &gic_data); gic_data 1547 drivers/irqchip/irq-gic-v3.c irq_domain_update_bus_token(gic_data.domain, DOMAIN_BUS_WIRED); gic_data 1548 drivers/irqchip/irq-gic-v3.c gic_data.rdists.rdist = alloc_percpu(typeof(*gic_data.rdists.rdist)); gic_data 1549 drivers/irqchip/irq-gic-v3.c gic_data.rdists.has_vlpis = true; gic_data 1550 drivers/irqchip/irq-gic-v3.c gic_data.rdists.has_direct_lpi = true; gic_data 1552 drivers/irqchip/irq-gic-v3.c if (WARN_ON(!gic_data.domain) || WARN_ON(!gic_data.rdists.rdist)) { gic_data 1557 drivers/irqchip/irq-gic-v3.c gic_data.has_rss = !!(typer & GICD_TYPER_RSS); gic_data 1559 drivers/irqchip/irq-gic-v3.c gic_data.has_rss ? "" : "no "); gic_data 1562 drivers/irqchip/irq-gic-v3.c err = mbi_init(handle, gic_data.domain); gic_data 1577 drivers/irqchip/irq-gic-v3.c its_init(handle, &gic_data.rdists, gic_data.domain); gic_data 1581 drivers/irqchip/irq-gic-v3.c gicv2m_init(handle, gic_data.domain); gic_data 1589 drivers/irqchip/irq-gic-v3.c if (gic_data.domain) gic_data 1590 drivers/irqchip/irq-gic-v3.c irq_domain_remove(gic_data.domain); gic_data 1591 drivers/irqchip/irq-gic-v3.c free_percpu(gic_data.rdists.rdist); gic_data 1617 drivers/irqchip/irq-gic-v3.c gic_data.ppi_descs = kcalloc(gic_data.ppi_nr, sizeof(*gic_data.ppi_descs), GFP_KERNEL); gic_data 1618 drivers/irqchip/irq-gic-v3.c if (!gic_data.ppi_descs) gic_data 1672 drivers/irqchip/irq-gic-v3.c for (i = 0; i < gic_data.ppi_nr; i++) { gic_data 1676 drivers/irqchip/irq-gic-v3.c .fwnode = gic_data.fwnode, gic_data 1688 drivers/irqchip/irq-gic-v3.c desc = partition_create_desc(gic_data.fwnode, parts, nr_parts, gic_data 1693 drivers/irqchip/irq-gic-v3.c gic_data.ppi_descs[i] = desc; gic_data 1721 drivers/irqchip/irq-gic-v3.c gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis; gic_data 1772 drivers/irqchip/irq-gic-v3.c gic_enable_of_quirks(node, gic_quirks, &gic_data); gic_data 2036 drivers/irqchip/irq-gic-v3.c gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis; gic_data 123 drivers/irqchip/irq-gic.c static struct gic_chip_data gic_data[CONFIG_ARM_GIC_MAX_NR] __read_mostly; gic_data 161 drivers/irqchip/irq-gic.c struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d); gic_data 162 drivers/irqchip/irq-gic.c return gic_data_dist_base(gic_data); gic_data 167 drivers/irqchip/irq-gic.c struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d); gic_data 168 drivers/irqchip/irq-gic.c return gic_data_cpu_base(gic_data); gic_data 361 drivers/irqchip/irq-gic.c struct gic_chip_data *gic = &gic_data[0]; gic_data 439 drivers/irqchip/irq-gic.c &gic_data[gic_nr]); gic_data 474 drivers/irqchip/irq-gic.c if (gic == &gic_data[0] && static_branch_likely(&supports_deactivate_key)) gic_data 526 drivers/irqchip/irq-gic.c if (gic == &gic_data[0]) { gic_data 562 drivers/irqchip/irq-gic.c cpu_base = gic_data_cpu_base(&gic_data[gic_nr]); gic_data 741 drivers/irqchip/irq-gic.c if (!gic_data[i].get_base) gic_data 746 drivers/irqchip/irq-gic.c gic_cpu_save(&gic_data[i]); gic_data 750 drivers/irqchip/irq-gic.c gic_cpu_restore(&gic_data[i]); gic_data 753 drivers/irqchip/irq-gic.c gic_dist_save(&gic_data[i]); gic_data 757 drivers/irqchip/irq-gic.c gic_dist_restore(&gic_data[i]); gic_data 786 drivers/irqchip/irq-gic.c if (gic == &gic_data[0]) gic_data 814 drivers/irqchip/irq-gic.c gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT); gic_data 831 drivers/irqchip/irq-gic.c writel_relaxed(map << 16 | irq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT); gic_data 849 drivers/irqchip/irq-gic.c writel_relaxed((cpu_id << 16) | irq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT); gic_data 892 drivers/irqchip/irq-gic.c dist_base = gic_data_dist_base(&gic_data[gic_nr]); gic_data 895 drivers/irqchip/irq-gic.c gic_irqs = gic_data[gic_nr].gic_irqs; gic_data 1041 drivers/irqchip/irq-gic.c gic_cpu_init(&gic_data[0]); gic_data 1092 drivers/irqchip/irq-gic.c if (gic == &gic_data[0]) gic_data 1203 drivers/irqchip/irq-gic.c if (gic == &gic_data[0]) { gic_data 1222 drivers/irqchip/irq-gic.c if (static_branch_likely(&supports_deactivate_key) && gic == &gic_data[0]) { gic_data 1226 drivers/irqchip/irq-gic.c name = kasprintf(GFP_KERNEL, "GIC-%d", (int)(gic-&gic_data[0])); gic_data 1247 drivers/irqchip/irq-gic.c gic = &gic_data[0]; gic_data 1441 drivers/irqchip/irq-gic.c gic = &gic_data[gic_cnt]; gic_data 1471 drivers/irqchip/irq-gic.c gicv2m_init(&node->fwnode, gic_data[gic_cnt].domain); gic_data 1601 drivers/irqchip/irq-gic.c struct gic_chip_data *gic = &gic_data[0]; gic_data 1656 drivers/irqchip/irq-gic.c gicv2m_init(NULL, gic_data[0].domain);