/kernel/linux/linux-5.10/drivers/acpi/ |
D | irq.c | 54 struct irq_fwspec fwspec; in acpi_register_gsi() local 61 fwspec.fwnode = acpi_gsi_domain_id; in acpi_register_gsi() 62 fwspec.param[0] = gsi; in acpi_register_gsi() 63 fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity); in acpi_register_gsi() 64 fwspec.param_count = 2; in acpi_register_gsi() 66 return irq_create_fwspec_mapping(&fwspec); in acpi_register_gsi() 128 struct irq_fwspec *fwspec; member 154 ctx->fwspec->fwnode = fwnode; in acpi_irq_parse_one_match() 155 ctx->fwspec->param[0] = hwirq; in acpi_irq_parse_one_match() 156 ctx->fwspec->param[1] = acpi_dev_get_irq_type(triggering, polarity); in acpi_irq_parse_one_match() [all …]
|
/kernel/linux/linux-5.10/drivers/irqchip/ |
D | irq-crossbar.c | 77 struct irq_fwspec fwspec; in allocate_gic_irq() local 96 fwspec.fwnode = domain->parent->fwnode; in allocate_gic_irq() 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() 100 fwspec.param[2] = IRQ_TYPE_LEVEL_HIGH; in allocate_gic_irq() 102 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); 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() [all …]
|
D | irq-ixp4xx.c | 130 struct irq_fwspec *fwspec, in ixp4xx_irq_domain_translate() argument 135 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in ixp4xx_irq_domain_translate() 136 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate() 137 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate() 141 if (is_fwnode_irqchip(fwspec->fwnode)) { in ixp4xx_irq_domain_translate() 142 if (fwspec->param_count != 2) in ixp4xx_irq_domain_translate() 144 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate() 145 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate() 160 struct irq_fwspec *fwspec = data; in ixp4xx_irq_domain_alloc() local 164 ret = ixp4xx_irq_domain_translate(d, fwspec, &hwirq, &type); in ixp4xx_irq_domain_alloc() [all …]
|
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_node_to_fwnode(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() 158 fwspec.param[1] = p_hwirq - 32; /* SPI offset */ 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() [all …]
|
D | irq-mst-intc.c | 98 struct irq_fwspec *fwspec, in mst_intc_domain_translate() argument 104 if (is_of_node(fwspec->fwnode)) { in mst_intc_domain_translate() 105 if (fwspec->param_count != 3) in mst_intc_domain_translate() 109 if (fwspec->param[0] != 0) in mst_intc_domain_translate() 112 if (fwspec->param[1] >= cd->nr_irqs) in mst_intc_domain_translate() 115 *hwirq = fwspec->param[1]; in mst_intc_domain_translate() 116 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mst_intc_domain_translate() 128 struct irq_fwspec parent_fwspec, *fwspec = data; in mst_intc_domain_alloc() local 132 if (fwspec->param_count != 3) in mst_intc_domain_alloc() 136 if (fwspec->param[0]) in mst_intc_domain_alloc() [all …]
|
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() 152 *hwirq = fwspec->param[1] - info->spi_base; in exiu_domain_translate() 153 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in exiu_domain_translate() 155 if (fwspec->param_count != 2) in exiu_domain_translate() 157 *hwirq = fwspec->param[0]; in exiu_domain_translate() 158 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in exiu_domain_translate() 166 struct irq_fwspec *fwspec = data; in exiu_domain_alloc() local [all …]
|
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()
|
D | irq-mtk-sysirq.c | 71 struct irq_fwspec *fwspec, in mtk_sysirq_domain_translate() argument 75 if (is_of_node(fwspec->fwnode)) { in mtk_sysirq_domain_translate() 76 if (fwspec->param_count != 3) in mtk_sysirq_domain_translate() 80 if (fwspec->param[0] != 0) in mtk_sysirq_domain_translate() 83 *hwirq = fwspec->param[1]; in mtk_sysirq_domain_translate() 84 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_sysirq_domain_translate() 96 struct irq_fwspec *fwspec = arg; in mtk_sysirq_domain_alloc() local 97 struct irq_fwspec gic_fwspec = *fwspec; in mtk_sysirq_domain_alloc() 99 if (fwspec->param_count != 3) in mtk_sysirq_domain_alloc() 103 if (fwspec->param[0]) in mtk_sysirq_domain_alloc() [all …]
|
D | irq-mtk-cirq.c | 104 struct irq_fwspec *fwspec, in mtk_cirq_domain_translate() argument 108 if (is_of_node(fwspec->fwnode)) { in mtk_cirq_domain_translate() 109 if (fwspec->param_count != 3) in mtk_cirq_domain_translate() 113 if (fwspec->param[0] != 0) in mtk_cirq_domain_translate() 117 if (fwspec->param[1] < cirq_data->ext_irq_start || in mtk_cirq_domain_translate() 118 fwspec->param[1] > cirq_data->ext_irq_end) in mtk_cirq_domain_translate() 121 *hwirq = fwspec->param[1] - cirq_data->ext_irq_start; in mtk_cirq_domain_translate() 122 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_cirq_domain_translate() 135 struct irq_fwspec *fwspec = arg; in mtk_cirq_domain_alloc() local 136 struct irq_fwspec parent_fwspec = *fwspec; in mtk_cirq_domain_alloc() [all …]
|
D | irq-mbigen.c | 169 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() 200 struct irq_fwspec *fwspec = args; in mbigen_irq_domain_alloc() local [all …]
|
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 …]
|
D | irq-mvebu-icu.c | 151 mvebu_icu_irq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in mvebu_icu_irq_domain_translate() argument 159 if (WARN_ON(fwspec->param_count != param_count)) { in mvebu_icu_irq_domain_translate() 161 fwspec->param_count); in mvebu_icu_irq_domain_translate() 166 *hwirq = fwspec->param[1]; in mvebu_icu_irq_domain_translate() 167 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_irq_domain_translate() 168 if (fwspec->param[0] != ICU_GRP_NSR) { in mvebu_icu_irq_domain_translate() 170 fwspec->param[0]); in mvebu_icu_irq_domain_translate() 174 *hwirq = fwspec->param[0]; in mvebu_icu_irq_domain_translate() 175 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_irq_domain_translate() 201 struct irq_fwspec *fwspec = args; in mvebu_icu_irq_domain_alloc() local [all …]
|
D | irq-meson-gpio.c | 348 struct irq_fwspec *fwspec, in meson_gpio_irq_domain_translate() argument 352 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in meson_gpio_irq_domain_translate() 353 *hwirq = fwspec->param[0]; in meson_gpio_irq_domain_translate() 354 *type = fwspec->param[1]; in meson_gpio_irq_domain_translate() 366 struct irq_fwspec fwspec; in meson_gpio_irq_allocate_gic_irq() local 368 fwspec.fwnode = domain->parent->fwnode; in meson_gpio_irq_allocate_gic_irq() 369 fwspec.param_count = 3; in meson_gpio_irq_allocate_gic_irq() 370 fwspec.param[0] = 0; /* SPI */ in meson_gpio_irq_allocate_gic_irq() 371 fwspec.param[1] = hwirq; in meson_gpio_irq_allocate_gic_irq() 372 fwspec.param[2] = meson_gpio_irq_type_output(type); in meson_gpio_irq_allocate_gic_irq() [all …]
|
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()
|
D | irq-mvebu-sei.c | 171 struct irq_fwspec *fwspec = arg; in mvebu_sei_domain_alloc() local 174 irq_domain_set_hwirq_and_chip(domain, virq, fwspec->param[0], in mvebu_sei_domain_alloc() 198 struct irq_fwspec *fwspec, in mvebu_sei_ap_translate() argument 202 *hwirq = fwspec->param[0]; in mvebu_sei_ap_translate() 212 struct irq_fwspec fwspec; in mvebu_sei_ap_alloc() local 219 fwspec.fwnode = domain->parent->fwnode; in mvebu_sei_ap_alloc() 220 fwspec.param_count = 1; in mvebu_sei_ap_alloc() 221 fwspec.param[0] = hwirq + sei->caps->ap_range.first; in mvebu_sei_ap_alloc() 223 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in mvebu_sei_ap_alloc() 253 struct irq_fwspec fwspec; in mvebu_sei_cp_domain_alloc() local [all …]
|
D | irq-mvebu-odmi.c | 82 struct irq_fwspec fwspec; in odmi_irq_domain_alloc() local 100 fwspec.fwnode = domain->parent->fwnode; in odmi_irq_domain_alloc() 101 fwspec.param_count = 3; in odmi_irq_domain_alloc() 102 fwspec.param[0] = GIC_SPI; in odmi_irq_domain_alloc() 103 fwspec.param[1] = odmi->spi_base - 32 + odmin; in odmi_irq_domain_alloc() 104 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in odmi_irq_domain_alloc() 106 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in odmi_irq_domain_alloc()
|
D | qcom-pdc.c | 249 static int qcom_pdc_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in qcom_pdc_translate() argument 252 if (is_of_node(fwspec->fwnode)) { in qcom_pdc_translate() 253 if (fwspec->param_count != 2) in qcom_pdc_translate() 256 *hwirq = fwspec->param[0]; in qcom_pdc_translate() 257 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in qcom_pdc_translate() 267 struct irq_fwspec *fwspec = data; in qcom_pdc_alloc() local 273 ret = qcom_pdc_translate(domain, fwspec, &hwirq, &type); in qcom_pdc_alloc() 311 struct irq_fwspec *fwspec = data; in qcom_pdc_gpio_alloc() local 317 ret = qcom_pdc_translate(domain, fwspec, &hwirq, &type); in qcom_pdc_gpio_alloc() 350 struct irq_fwspec *fwspec, in qcom_pdc_gpio_domain_select() argument
|
D | irq-alpine-msi.c | 122 struct irq_fwspec fwspec; in alpine_msix_gic_domain_alloc() local 129 fwspec.fwnode = domain->parent->fwnode; in alpine_msix_gic_domain_alloc() 130 fwspec.param_count = 3; in alpine_msix_gic_domain_alloc() 131 fwspec.param[0] = 0; in alpine_msix_gic_domain_alloc() 132 fwspec.param[1] = sgi; in alpine_msix_gic_domain_alloc() 133 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in alpine_msix_gic_domain_alloc() 135 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in alpine_msix_gic_domain_alloc()
|
D | irq-mvebu-gicp.c | 84 struct irq_fwspec fwspec; in gicp_irq_domain_alloc() local 97 fwspec.fwnode = domain->parent->fwnode; in gicp_irq_domain_alloc() 98 fwspec.param_count = 3; in gicp_irq_domain_alloc() 99 fwspec.param[0] = GIC_SPI; in gicp_irq_domain_alloc() 100 fwspec.param[1] = gicp_idx_to_spi(gicp, hwirq) - 32; in gicp_irq_domain_alloc() 105 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in gicp_irq_domain_alloc() 107 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in gicp_irq_domain_alloc()
|
/kernel/linux/linux-5.10/drivers/gpio/ |
D | gpio-xgene-sb.c | 116 struct irq_fwspec fwspec; in xgene_gpio_sb_to_irq() local 122 fwspec.fwnode = gc->parent->fwnode; in xgene_gpio_sb_to_irq() 123 fwspec.param_count = 2; in xgene_gpio_sb_to_irq() 124 fwspec.param[0] = GPIO_TO_HWIRQ(priv, gpio); in xgene_gpio_sb_to_irq() 125 fwspec.param[1] = IRQ_TYPE_EDGE_RISING; in xgene_gpio_sb_to_irq() 126 return irq_create_fwspec_mapping(&fwspec); in xgene_gpio_sb_to_irq() 162 struct irq_fwspec *fwspec, in xgene_gpio_sb_domain_translate() argument 168 if ((fwspec->param_count != 2) || in xgene_gpio_sb_domain_translate() 169 (fwspec->param[0] >= priv->nirq)) in xgene_gpio_sb_domain_translate() 171 *hwirq = fwspec->param[0]; in xgene_gpio_sb_domain_translate() [all …]
|
/kernel/linux/linux-5.10/arch/arm/mach-imx/ |
D | gpc.c | 173 struct irq_fwspec *fwspec, in imx_gpc_domain_translate() argument 177 if (is_of_node(fwspec->fwnode)) { in imx_gpc_domain_translate() 178 if (fwspec->param_count != 3) in imx_gpc_domain_translate() 182 if (fwspec->param[0] != 0) in imx_gpc_domain_translate() 185 *hwirq = fwspec->param[1]; in imx_gpc_domain_translate() 186 *type = fwspec->param[2]; in imx_gpc_domain_translate() 197 struct irq_fwspec *fwspec = data; in imx_gpc_domain_alloc() local 202 if (fwspec->param_count != 3) in imx_gpc_domain_alloc() 204 if (fwspec->param[0] != 0) in imx_gpc_domain_alloc() 207 hwirq = fwspec->param[1]; in imx_gpc_domain_alloc() [all …]
|
/kernel/linux/linux-5.10/drivers/iommu/ |
D | of_iommu.c | 183 struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); in of_iommu_configure() local 189 if (fwspec) { in of_iommu_configure() 190 if (fwspec->ops) in of_iommu_configure() 191 return fwspec->ops; in of_iommu_configure() 214 fwspec = dev_iommu_fwspec_get(dev); in of_iommu_configure() 215 if (!err && fwspec) in of_iommu_configure() 217 &fwspec->num_pasid_bits); in of_iommu_configure() 228 fwspec = dev_iommu_fwspec_get(dev); in of_iommu_configure() 229 ops = fwspec->ops; in of_iommu_configure()
|
/kernel/linux/linux-5.10/drivers/iommu/arm/arm-smmu/ |
D | qcom_iommu.c | 74 struct iommu_fwspec *fwspec; member 86 struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); in to_iommu() local 88 if (!fwspec || fwspec->ops != &qcom_iommu_ops) in to_iommu() 129 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_sync() local 132 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_sync() 133 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_sync() 148 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_context() local 151 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_inv_context() 152 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_inv_context() 163 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_range_nosync() local [all …]
|
/kernel/linux/linux-5.10/kernel/irq/ |
D | irqdomain.c | 370 struct irq_domain *irq_find_matching_fwspec(struct irq_fwspec *fwspec, in irq_find_matching_fwspec() argument 374 struct fwnode_handle *fwnode = fwspec->fwnode; in irq_find_matching_fwspec() 388 if (h->ops->select && fwspec->param_count) in irq_find_matching_fwspec() 389 rc = h->ops->select(h, fwspec, bus_token); in irq_find_matching_fwspec() 720 struct irq_fwspec *fwspec, in irq_domain_translate() argument 725 return d->ops->translate(d, fwspec, hwirq, type); in irq_domain_translate() 728 return d->ops->xlate(d, to_of_node(fwspec->fwnode), in irq_domain_translate() 729 fwspec->param, fwspec->param_count, in irq_domain_translate() 733 *hwirq = fwspec->param[0]; in irq_domain_translate() 739 struct irq_fwspec *fwspec) in of_phandle_args_to_fwspec() argument [all …]
|
/kernel/linux/linux-5.10/arch/arm/mach-exynos/ |
D | suspend.c | 137 struct irq_fwspec *fwspec, in exynos_pmu_domain_translate() argument 141 if (is_of_node(fwspec->fwnode)) { in exynos_pmu_domain_translate() 142 if (fwspec->param_count != 3) in exynos_pmu_domain_translate() 146 if (fwspec->param[0] != 0) in exynos_pmu_domain_translate() 149 *hwirq = fwspec->param[1]; in exynos_pmu_domain_translate() 150 *type = fwspec->param[2]; in exynos_pmu_domain_translate() 161 struct irq_fwspec *fwspec = data; in exynos_pmu_domain_alloc() local 166 if (fwspec->param_count != 3) in exynos_pmu_domain_alloc() 168 if (fwspec->param[0] != 0) in exynos_pmu_domain_alloc() 171 hwirq = fwspec->param[1]; in exynos_pmu_domain_alloc() [all …]
|