| /drivers/acpi/ |
| A D | irq.c | 59 struct irq_fwspec fwspec; in acpi_register_gsi() local 63 if (WARN_ON(!fwspec.fwnode)) { in acpi_register_gsi() 68 fwspec.param[0] = gsi; in acpi_register_gsi() 70 fwspec.param_count = 2; in acpi_register_gsi() 72 irq = irq_create_fwspec_mapping(&fwspec); in acpi_register_gsi() 145 struct irq_fwspec *fwspec; member 173 ctx->fwspec->fwnode = fwnode; in acpi_irq_parse_one_match() 174 ctx->fwspec->param[0] = hwirq; in acpi_irq_parse_one_match() 176 ctx->fwspec->param_count = 2; in acpi_irq_parse_one_match() 278 struct irq_fwspec fwspec; in acpi_irq_get() local [all …]
|
| /drivers/irqchip/ |
| A D | irq-crossbar.c | 77 struct irq_fwspec fwspec; in allocate_gic_irq() local 97 fwspec.param_count = 3; in allocate_gic_irq() 98 fwspec.param[0] = 0; /* SPI */ in allocate_gic_irq() 99 fwspec.param[1] = i; in allocate_gic_irq() 114 struct irq_fwspec *fwspec = data; in crossbar_domain_alloc() local 118 if (fwspec->param_count != 3) in crossbar_domain_alloc() 120 if (fwspec->param[0] != 0) in crossbar_domain_alloc() 123 hwirq = fwspec->param[1]; in crossbar_domain_alloc() 174 if (fwspec->param_count != 3) in crossbar_domain_translate() 178 if (fwspec->param[0] != 0) in crossbar_domain_translate() [all …]
|
| A D | irq-ti-sci-intr.c | 58 struct irq_fwspec *fwspec, in ti_sci_intr_irq_domain_translate() argument 64 if (fwspec->param_count != 1) in ti_sci_intr_irq_domain_translate() 67 *hwirq = fwspec->param[0]; in ti_sci_intr_irq_domain_translate() 139 struct irq_fwspec fwspec; in ti_sci_intr_alloc_parent_irq() local 152 fwspec.fwnode = of_fwnode_handle(parent_node); in ti_sci_intr_alloc_parent_irq() 156 fwspec.param_count = 3; in ti_sci_intr_alloc_parent_irq() 157 fwspec.param[0] = 0; /* SPI */ in ti_sci_intr_alloc_parent_irq() 159 fwspec.param[2] = intr->type; in ti_sci_intr_alloc_parent_irq() 162 fwspec.param_count = 1; in ti_sci_intr_alloc_parent_irq() 163 fwspec.param[0] = p_hwirq; in ti_sci_intr_alloc_parent_irq() [all …]
|
| A D | irq-sni-exiu.c | 139 struct irq_fwspec *fwspec, in exiu_domain_translate() argument 145 if (is_of_node(fwspec->fwnode)) { in exiu_domain_translate() 146 if (fwspec->param_count != 3) in exiu_domain_translate() 149 if (fwspec->param[0] != GIC_SPI) in exiu_domain_translate() 155 if (fwspec->param_count != 2) in exiu_domain_translate() 157 *hwirq = fwspec->param[0]; in exiu_domain_translate() 166 struct irq_fwspec *fwspec = data; in exiu_domain_alloc() local 171 parent_fwspec = *fwspec; in exiu_domain_alloc() 173 if (fwspec->param_count != 3) in exiu_domain_alloc() 175 if (fwspec->param[0] != GIC_SPI) in exiu_domain_alloc() [all …]
|
| A D | irq-ixp4xx.c | 129 struct irq_fwspec *fwspec, in ixp4xx_irq_domain_translate() argument 134 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in ixp4xx_irq_domain_translate() 135 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate() 136 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate() 140 if (is_fwnode_irqchip(fwspec->fwnode)) { in ixp4xx_irq_domain_translate() 141 if (fwspec->param_count != 2) in ixp4xx_irq_domain_translate() 143 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate() 144 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate() 159 struct irq_fwspec *fwspec = data; in ixp4xx_irq_domain_alloc() local 163 ret = ixp4xx_irq_domain_translate(d, fwspec, &hwirq, &type); in ixp4xx_irq_domain_alloc()
|
| A D | irq-mst-intc.c | 177 struct irq_fwspec *fwspec, in mst_intc_domain_translate() argument 183 if (is_of_node(fwspec->fwnode)) { in mst_intc_domain_translate() 184 if (fwspec->param_count != 3) in mst_intc_domain_translate() 188 if (fwspec->param[0] != 0) in mst_intc_domain_translate() 191 if (fwspec->param[1] >= cd->nr_irqs) in mst_intc_domain_translate() 194 *hwirq = fwspec->param[1]; in mst_intc_domain_translate() 195 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mst_intc_domain_translate() 211 if (fwspec->param_count != 3) in mst_intc_domain_alloc() 215 if (fwspec->param[0]) in mst_intc_domain_alloc() 218 hwirq = fwspec->param[1]; in mst_intc_domain_alloc() [all …]
|
| A D | irq-vf610-mscm-ir.c | 129 struct irq_fwspec *fwspec = arg; in vf610_mscm_ir_domain_alloc() local 135 if (fwspec->param_count != 2) in vf610_mscm_ir_domain_alloc() 138 hwirq = fwspec->param[0]; in vf610_mscm_ir_domain_alloc() 148 parent_fwspec.param[0] = fwspec->param[0]; in vf610_mscm_ir_domain_alloc() 152 parent_fwspec.param[1] = fwspec->param[0]; in vf610_mscm_ir_domain_alloc() 153 parent_fwspec.param[2] = fwspec->param[1]; in vf610_mscm_ir_domain_alloc() 161 struct irq_fwspec *fwspec, in vf610_mscm_ir_domain_translate() argument 165 if (WARN_ON(fwspec->param_count < 2)) in vf610_mscm_ir_domain_translate() 167 *hwirq = fwspec->param[0]; in vf610_mscm_ir_domain_translate() 168 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in vf610_mscm_ir_domain_translate()
|
| A D | irq-mtk-sysirq.c | 72 struct irq_fwspec *fwspec, in mtk_sysirq_domain_translate() argument 76 if (is_of_node(fwspec->fwnode)) { in mtk_sysirq_domain_translate() 77 if (fwspec->param_count != 3) in mtk_sysirq_domain_translate() 81 if (fwspec->param[0] != 0) in mtk_sysirq_domain_translate() 84 *hwirq = fwspec->param[1]; in mtk_sysirq_domain_translate() 85 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_sysirq_domain_translate() 97 struct irq_fwspec *fwspec = arg; in mtk_sysirq_domain_alloc() local 98 struct irq_fwspec gic_fwspec = *fwspec; in mtk_sysirq_domain_alloc() 100 if (fwspec->param_count != 3) in mtk_sysirq_domain_alloc() 104 if (fwspec->param[0]) in mtk_sysirq_domain_alloc() [all …]
|
| A D | irq-mtk-cirq.c | 145 struct irq_fwspec *fwspec, in mtk_cirq_domain_translate() argument 149 if (is_of_node(fwspec->fwnode)) { in mtk_cirq_domain_translate() 150 if (fwspec->param_count != 3) in mtk_cirq_domain_translate() 154 if (fwspec->param[0] != 0) in mtk_cirq_domain_translate() 158 if (fwspec->param[1] < cirq_data->ext_irq_start || in mtk_cirq_domain_translate() 159 fwspec->param[1] > cirq_data->ext_irq_end) in mtk_cirq_domain_translate() 162 *hwirq = fwspec->param[1] - cirq_data->ext_irq_start; in mtk_cirq_domain_translate() 163 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_cirq_domain_translate() 176 struct irq_fwspec *fwspec = arg; in mtk_cirq_domain_alloc() local 177 struct irq_fwspec parent_fwspec = *fwspec; in mtk_cirq_domain_alloc() [all …]
|
| A D | irq-tegra.c | 216 struct irq_fwspec *fwspec, in tegra_ictlr_domain_translate() argument 220 if (is_of_node(fwspec->fwnode)) { in tegra_ictlr_domain_translate() 221 if (fwspec->param_count != 3) in tegra_ictlr_domain_translate() 225 if (fwspec->param[0] != 0) in tegra_ictlr_domain_translate() 228 *hwirq = fwspec->param[1]; in tegra_ictlr_domain_translate() 229 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in tegra_ictlr_domain_translate() 240 struct irq_fwspec *fwspec = data; in tegra_ictlr_domain_alloc() local 246 if (fwspec->param_count != 3) in tegra_ictlr_domain_alloc() 248 if (fwspec->param[0] != GIC_SPI) in tegra_ictlr_domain_alloc() 251 hwirq = fwspec->param[1]; in tegra_ictlr_domain_alloc() [all …]
|
| A D | irq-mbigen.c | 170 static int mbigen_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in mbigen_domain_translate() argument 173 if (is_of_node(fwspec->fwnode) || is_acpi_device_node(fwspec->fwnode)) { in mbigen_domain_translate() 174 if (fwspec->param_count != 2) in mbigen_domain_translate() 177 if ((fwspec->param[0] > MAXIMUM_IRQ_PIN_NUM) || in mbigen_domain_translate() 178 (fwspec->param[0] < RESERVED_IRQ_PER_MBIGEN_CHIP)) in mbigen_domain_translate() 181 *hwirq = fwspec->param[0]; in mbigen_domain_translate() 184 if ((fwspec->param[1] == IRQ_TYPE_EDGE_RISING) || in mbigen_domain_translate() 185 (fwspec->param[1] == IRQ_TYPE_LEVEL_HIGH)) in mbigen_domain_translate() 186 *type = fwspec->param[1]; in mbigen_domain_translate()
|
| A D | irq-sun6i-r.c | 199 struct irq_fwspec *fwspec, in sun6i_r_intc_domain_translate() argument 204 if (fwspec->param_count == 2 && fwspec->param[0] == 0) { in sun6i_r_intc_domain_translate() 206 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in sun6i_r_intc_domain_translate() 211 if (fwspec->param_count < 3) in sun6i_r_intc_domain_translate() 213 if (fwspec->param[0] != GIC_SPI) in sun6i_r_intc_domain_translate() 216 *hwirq = fwspec->param[1]; in sun6i_r_intc_domain_translate() 217 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in sun6i_r_intc_domain_translate() 226 struct irq_fwspec *fwspec = arg; in sun6i_r_intc_domain_alloc() local 232 ret = sun6i_r_intc_domain_translate(domain, fwspec, &hwirq, &type); in sun6i_r_intc_domain_alloc()
|
| A D | irq-mvebu-sei.c | 173 struct irq_fwspec *fwspec = arg; in mvebu_sei_domain_alloc() local 200 struct irq_fwspec *fwspec, in mvebu_sei_ap_translate() argument 204 *hwirq = fwspec->param[0]; in mvebu_sei_ap_translate() 214 struct irq_fwspec fwspec; in mvebu_sei_ap_alloc() local 221 fwspec.fwnode = domain->parent->fwnode; in mvebu_sei_ap_alloc() 222 fwspec.param_count = 1; in mvebu_sei_ap_alloc() 223 fwspec.param[0] = hwirq + sei->caps->ap_range.first; in mvebu_sei_ap_alloc() 255 struct irq_fwspec fwspec; in mvebu_sei_cp_domain_alloc() local 273 fwspec.fwnode = domain->parent->fwnode; in mvebu_sei_cp_domain_alloc() 274 fwspec.param_count = 1; in mvebu_sei_cp_domain_alloc() [all …]
|
| A D | irq-imx-gpcv2.c | 141 struct irq_fwspec *fwspec, in imx_gpcv2_domain_translate() argument 145 if (is_of_node(fwspec->fwnode)) { in imx_gpcv2_domain_translate() 146 if (fwspec->param_count != 3) in imx_gpcv2_domain_translate() 150 if (fwspec->param[0] != 0) in imx_gpcv2_domain_translate() 153 *hwirq = fwspec->param[1]; in imx_gpcv2_domain_translate() 154 *type = fwspec->param[2]; in imx_gpcv2_domain_translate() 165 struct irq_fwspec *fwspec = data; in imx_gpcv2_domain_alloc() local 172 err = imx_gpcv2_domain_translate(domain, fwspec, &hwirq, &type); in imx_gpcv2_domain_alloc() 184 parent_fwspec = *fwspec; in imx_gpcv2_domain_alloc()
|
| A D | irq-meson-gpio.c | 458 struct irq_fwspec *fwspec, in meson_gpio_irq_domain_translate() argument 462 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in meson_gpio_irq_domain_translate() 463 *hwirq = fwspec->param[0]; in meson_gpio_irq_domain_translate() 464 *type = fwspec->param[1]; in meson_gpio_irq_domain_translate() 476 struct irq_fwspec fwspec; in meson_gpio_irq_allocate_gic_irq() local 478 fwspec.fwnode = domain->parent->fwnode; in meson_gpio_irq_allocate_gic_irq() 479 fwspec.param_count = 3; in meson_gpio_irq_allocate_gic_irq() 480 fwspec.param[0] = 0; /* SPI */ in meson_gpio_irq_allocate_gic_irq() 481 fwspec.param[1] = hwirq; in meson_gpio_irq_allocate_gic_irq() 482 fwspec.param[2] = meson_gpio_irq_type_output(type); in meson_gpio_irq_allocate_gic_irq() [all …]
|
| A D | irq-gic-v5.c | 577 struct irq_fwspec *fwspec, in gicv5_irq_domain_translate() argument 582 if (!is_of_node(fwspec->fwnode)) in gicv5_irq_domain_translate() 585 if (fwspec->param_count < 3) in gicv5_irq_domain_translate() 588 if (fwspec->param[0] != hwirq_type) in gicv5_irq_domain_translate() 591 *hwirq = fwspec->param[1]; in gicv5_irq_domain_translate() 613 struct irq_fwspec *fwspec, in gicv5_irq_ppi_domain_translate() argument 625 struct irq_fwspec *fwspec = arg; in gicv5_irq_ppi_domain_alloc() local 663 if (fwspec->fwnode != d->fwnode) in gicv5_irq_ppi_domain_select() 680 struct irq_fwspec *fwspec, in gicv5_irq_spi_domain_translate() argument 693 struct irq_fwspec *fwspec = arg; in gicv5_irq_spi_domain_alloc() local [all …]
|
| A D | irq-mvebu-odmi.c | 85 struct irq_fwspec fwspec; in odmi_irq_domain_alloc() local 103 fwspec.fwnode = domain->parent->fwnode; in odmi_irq_domain_alloc() 104 fwspec.param_count = 3; in odmi_irq_domain_alloc() 105 fwspec.param[0] = GIC_SPI; in odmi_irq_domain_alloc() 106 fwspec.param[1] = odmi->spi_base - 32 + odmin; in odmi_irq_domain_alloc() 107 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in odmi_irq_domain_alloc() 109 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in odmi_irq_domain_alloc()
|
| A D | irq-gic-v3.c | 1643 if (fwspec->param_count == 1 && fwspec->param[0] < 16) { in gic_irq_domain_translate() 1644 *hwirq = fwspec->param[0]; in gic_irq_domain_translate() 1650 if (fwspec->param_count < 3) in gic_irq_domain_translate() 1653 switch (fwspec->param[0]) { in gic_irq_domain_translate() 1667 *hwirq = fwspec->param[1]; in gic_irq_domain_translate() 1670 *hwirq = fwspec->param[1]; in gic_irq_domain_translate() 1697 fwspec->param[0]); in gic_irq_domain_translate() 1701 *hwirq = fwspec->param[0]; in gic_irq_domain_translate() 1702 *type = fwspec->param[1]; in gic_irq_domain_translate() 1755 if (fwspec->param_count < 4 || !fwspec->param[3]) in fwspec_is_partitioned_ppi() [all …]
|
| A D | irq-mvebu-icu.c | 67 static int mvebu_icu_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in mvebu_icu_translate() argument 76 if (WARN_ON(fwspec->param_count != param_count)) { in mvebu_icu_translate() 78 fwspec->param_count); in mvebu_icu_translate() 83 *hwirq = fwspec->param[1]; in mvebu_icu_translate() 84 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_translate() 85 if (fwspec->param[0] != ICU_GRP_NSR) { in mvebu_icu_translate() 87 fwspec->param[0]); in mvebu_icu_translate() 91 *hwirq = fwspec->param[0]; in mvebu_icu_translate() 92 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_translate()
|
| A D | irq-alpine-msi.c | 83 struct irq_fwspec fwspec; in alpine_msix_gic_domain_alloc() local 90 fwspec.fwnode = domain->parent->fwnode; in alpine_msix_gic_domain_alloc() 91 fwspec.param_count = 3; in alpine_msix_gic_domain_alloc() 92 fwspec.param[0] = 0; in alpine_msix_gic_domain_alloc() 93 fwspec.param[1] = sgi; in alpine_msix_gic_domain_alloc() 94 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in alpine_msix_gic_domain_alloc() 96 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in alpine_msix_gic_domain_alloc()
|
| A D | irq-gic-v2m.c | 113 struct irq_fwspec fwspec; in gicv2m_irq_gic_domain_alloc() local 118 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc() 119 fwspec.param_count = 3; in gicv2m_irq_gic_domain_alloc() 120 fwspec.param[0] = 0; in gicv2m_irq_gic_domain_alloc() 121 fwspec.param[1] = hwirq - 32; in gicv2m_irq_gic_domain_alloc() 122 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc() 124 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc() 125 fwspec.param_count = 2; in gicv2m_irq_gic_domain_alloc() 126 fwspec.param[0] = hwirq; in gicv2m_irq_gic_domain_alloc() 127 fwspec.param[1] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc() [all …]
|
| A D | irq-owl-sirq.c | 212 struct irq_fwspec *fwspec, in owl_sirq_domain_translate() argument 216 if (!is_of_node(fwspec->fwnode)) in owl_sirq_domain_translate() 219 if (fwspec->param_count != 2 || fwspec->param[0] >= NUM_SIRQ) in owl_sirq_domain_translate() 222 *hwirq = fwspec->param[0]; in owl_sirq_domain_translate() 223 *type = fwspec->param[1]; in owl_sirq_domain_translate() 232 struct irq_fwspec *fwspec = data; in owl_sirq_domain_alloc() local 241 ret = owl_sirq_domain_translate(domain, fwspec, &hwirq, &type); in owl_sirq_domain_alloc()
|
| /drivers/gpio/ |
| A D | gpio-xgene-sb.c | 137 struct irq_fwspec fwspec; in xgene_gpio_sb_to_irq() local 143 fwspec.fwnode = gc->parent->fwnode; in xgene_gpio_sb_to_irq() 144 fwspec.param_count = 2; in xgene_gpio_sb_to_irq() 146 fwspec.param[1] = IRQ_TYPE_EDGE_RISING; in xgene_gpio_sb_to_irq() 183 struct irq_fwspec *fwspec, in xgene_gpio_sb_domain_translate() argument 189 if ((fwspec->param_count != 2) || in xgene_gpio_sb_domain_translate() 190 (fwspec->param[0] >= priv->nirq)) in xgene_gpio_sb_domain_translate() 192 *hwirq = fwspec->param[0]; in xgene_gpio_sb_domain_translate() 193 *type = fwspec->param[1]; in xgene_gpio_sb_domain_translate() 201 struct irq_fwspec *fwspec = data; in xgene_gpio_sb_domain_alloc() local [all …]
|
| A D | gpio-visconti.c | 113 struct irq_fwspec *fwspec = &gfwspec->fwspec; in visconti_gpio_populate_parent_fwspec() local 115 fwspec->fwnode = chip->irq.parent_domain->fwnode; in visconti_gpio_populate_parent_fwspec() 116 fwspec->param_count = 3; in visconti_gpio_populate_parent_fwspec() 117 fwspec->param[0] = 0; in visconti_gpio_populate_parent_fwspec() 118 fwspec->param[1] = parent_hwirq; in visconti_gpio_populate_parent_fwspec() 119 fwspec->param[2] = parent_type; in visconti_gpio_populate_parent_fwspec()
|
| /drivers/iommu/arm/arm-smmu/ |
| A D | qcom_iommu.c | 72 struct iommu_fwspec *fwspec; member 117 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_sync() local 120 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_sync() 136 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_context() local 139 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_inv_context() 151 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_range_nosync() local 156 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_inv_range_nosync() 221 struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); in qcom_iommu_init_domain() local 240 qcom_domain->fwspec = fwspec; in qcom_iommu_init_domain() 252 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_init_domain() [all …]
|