/linux-master/drivers/acpi/ |
H A D | irq.c | 59 struct irq_fwspec fwspec; local 62 fwspec.fwnode = acpi_get_gsi_domain_id(gsi); 63 if (WARN_ON(!fwspec.fwnode)) { 68 fwspec.param[0] = gsi; 69 fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity); 70 fwspec.param_count = 2; 72 irq = irq_create_fwspec_mapping(&fwspec); 139 * and fwspec where the result is returned. 145 struct irq_fwspec *fwspec; member in struct:acpi_irq_parse_one_ctx 173 ctx->fwspec 252 acpi_irq_parse_one(acpi_handle handle, unsigned int index, struct irq_fwspec *fwspec, unsigned long *flags) argument 278 struct irq_fwspec fwspec; local [all...] |
/linux-master/drivers/irqchip/ |
H A D | irq-crossbar.c | 77 struct irq_fwspec fwspec; local 96 fwspec.fwnode = domain->parent->fwnode; 97 fwspec.param_count = 3; 98 fwspec.param[0] = 0; /* SPI */ 99 fwspec.param[1] = i; 100 fwspec.param[2] = IRQ_TYPE_LEVEL_HIGH; 102 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); 114 struct irq_fwspec *fwspec = data; local 118 if (fwspec->param_count != 3) 120 if (fwspec 168 crossbar_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-ti-sci-intr.c | 51 * @fwspec: Pointer to IRQ specific firmware structure 58 struct irq_fwspec *fwspec, 64 if (fwspec->param_count != 1) 67 *hwirq = fwspec->param[0]; 139 struct irq_fwspec fwspec; local 152 fwspec.fwnode = of_node_to_fwnode(parent_node); 156 fwspec.param_count = 3; 157 fwspec.param[0] = 0; /* SPI */ 158 fwspec.param[1] = p_hwirq - 32; /* SPI offset */ 159 fwspec 57 ti_sci_intr_irq_domain_translate(struct irq_domain *domain, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument 198 struct irq_fwspec *fwspec = data; local [all...] |
H A D | irq-mst-intc.c | 177 struct irq_fwspec *fwspec, 183 if (is_of_node(fwspec->fwnode)) { 184 if (fwspec->param_count != 3) 188 if (fwspec->param[0] != 0) 191 if (fwspec->param[1] >= cd->nr_irqs) 194 *hwirq = fwspec->param[1]; 195 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; 207 struct irq_fwspec parent_fwspec, *fwspec = data; local 211 if (fwspec->param_count != 3) 215 if (fwspec 176 mst_intc_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-mbigen.c | 169 struct irq_fwspec *fwspec, 173 if (is_of_node(fwspec->fwnode) || is_acpi_device_node(fwspec->fwnode)) { 174 if (fwspec->param_count != 2) 177 if ((fwspec->param[0] > MAXIMUM_IRQ_PIN_NUM) || 178 (fwspec->param[0] < RESERVED_IRQ_PER_MBIGEN_CHIP)) 181 *hwirq = fwspec->param[0]; 184 if ((fwspec->param[1] == IRQ_TYPE_EDGE_RISING) || 185 (fwspec->param[1] == IRQ_TYPE_LEVEL_HIGH)) 186 *type = fwspec 168 mbigen_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument 200 struct irq_fwspec *fwspec = args; local [all...] |
H A D | irq-sni-exiu.c | 139 struct irq_fwspec *fwspec, 145 if (is_of_node(fwspec->fwnode)) { 146 if (fwspec->param_count != 3) 149 if (fwspec->param[0] != GIC_SPI) 152 *hwirq = fwspec->param[1] - info->spi_base; 153 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; 155 if (fwspec->param_count != 2) 157 *hwirq = fwspec->param[0]; 158 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; 166 struct irq_fwspec *fwspec local 138 exiu_domain_translate(struct irq_domain *domain, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-mtk-sysirq.c | 72 struct irq_fwspec *fwspec, 76 if (is_of_node(fwspec->fwnode)) { 77 if (fwspec->param_count != 3) 81 if (fwspec->param[0] != 0) 84 *hwirq = fwspec->param[1]; 85 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; 97 struct irq_fwspec *fwspec = arg; local 98 struct irq_fwspec gic_fwspec = *fwspec; 100 if (fwspec->param_count != 3) 104 if (fwspec 71 mtk_sysirq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-ixp4xx.c | 130 struct irq_fwspec *fwspec, 135 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { 136 *hwirq = fwspec->param[0]; 137 *type = fwspec->param[1]; 141 if (is_fwnode_irqchip(fwspec->fwnode)) { 142 if (fwspec->param_count != 2) 144 *hwirq = fwspec->param[0]; 145 *type = fwspec->param[1]; 160 struct irq_fwspec *fwspec local 129 ixp4xx_irq_domain_translate(struct irq_domain *domain, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-mtk-cirq.c | 145 struct irq_fwspec *fwspec, 149 if (is_of_node(fwspec->fwnode)) { 150 if (fwspec->param_count != 3) 154 if (fwspec->param[0] != 0) 158 if (fwspec->param[1] < cirq_data->ext_irq_start || 159 fwspec->param[1] > cirq_data->ext_irq_end) 162 *hwirq = fwspec->param[1] - cirq_data->ext_irq_start; 163 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; 176 struct irq_fwspec *fwspec = arg; local 177 struct irq_fwspec parent_fwspec = *fwspec; 144 mtk_cirq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-vf610-mscm-ir.c | 129 struct irq_fwspec *fwspec = arg; local 135 if (fwspec->param_count != 2) 138 hwirq = fwspec->param[0]; 148 parent_fwspec.param[0] = fwspec->param[0]; 152 parent_fwspec.param[1] = fwspec->param[0]; 153 parent_fwspec.param[2] = fwspec->param[1]; 161 struct irq_fwspec *fwspec, 165 if (WARN_ON(fwspec->param_count < 2)) 167 *hwirq = fwspec->param[0]; 168 *type = fwspec 160 vf610_mscm_ir_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-mvebu-icu.c | 151 mvebu_icu_irq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, argument 159 if (WARN_ON(fwspec->param_count != param_count)) { 161 fwspec->param_count); 166 *hwirq = fwspec->param[1]; 167 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; 168 if (fwspec->param[0] != ICU_GRP_NSR) { 170 fwspec->param[0]); 174 *hwirq = fwspec->param[0]; 175 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; 201 struct irq_fwspec *fwspec local [all...] |
H A D | irq-imx-gpcv2.c | 141 struct irq_fwspec *fwspec, 145 if (is_of_node(fwspec->fwnode)) { 146 if (fwspec->param_count != 3) 150 if (fwspec->param[0] != 0) 153 *hwirq = fwspec->param[1]; 154 *type = fwspec->param[2]; 165 struct irq_fwspec *fwspec = data; local 172 err = imx_gpcv2_domain_translate(domain, fwspec, &hwirq, &type); 184 parent_fwspec = *fwspec; 140 imx_gpcv2_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument
|
H A D | irq-tegra.c | 216 struct irq_fwspec *fwspec, 220 if (is_of_node(fwspec->fwnode)) { 221 if (fwspec->param_count != 3) 225 if (fwspec->param[0] != 0) 228 *hwirq = fwspec->param[1]; 229 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; 240 struct irq_fwspec *fwspec = data; local 246 if (fwspec->param_count != 3) 248 if (fwspec->param[0] != GIC_SPI) 251 hwirq = fwspec 215 tegra_ictlr_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-mvebu-sei.c | 171 struct irq_fwspec *fwspec = arg; local 174 irq_domain_set_hwirq_and_chip(domain, virq, fwspec->param[0], 198 struct irq_fwspec *fwspec, 202 *hwirq = fwspec->param[0]; 212 struct irq_fwspec fwspec; local 219 fwspec.fwnode = domain->parent->fwnode; 220 fwspec.param_count = 1; 221 fwspec.param[0] = hwirq + sei->caps->ap_range.first; 223 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); 253 struct irq_fwspec fwspec; local 197 mvebu_sei_ap_translate(struct irq_domain *domain, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-meson-gpio.c | 432 struct irq_fwspec *fwspec, 436 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { 437 *hwirq = fwspec->param[0]; 438 *type = fwspec->param[1]; 450 struct irq_fwspec fwspec; local 452 fwspec.fwnode = domain->parent->fwnode; 453 fwspec.param_count = 3; 454 fwspec.param[0] = 0; /* SPI */ 455 fwspec 431 meson_gpio_irq_domain_translate(struct irq_domain *domain, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument 466 struct irq_fwspec *fwspec = data; local [all...] |
H A D | irq-sun6i-r.c | 199 struct irq_fwspec *fwspec, 204 if (fwspec->param_count == 2 && fwspec->param[0] == 0) { 206 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; 211 if (fwspec->param_count < 3) 213 if (fwspec->param[0] != GIC_SPI) 216 *hwirq = fwspec->param[1]; 217 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; 226 struct irq_fwspec *fwspec = arg; local 232 ret = sun6i_r_intc_domain_translate(domain, fwspec, 198 sun6i_r_intc_domain_translate(struct irq_domain *domain, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
H A D | irq-alpine-msi.c | 122 struct irq_fwspec fwspec; local 129 fwspec.fwnode = domain->parent->fwnode; 130 fwspec.param_count = 3; 131 fwspec.param[0] = 0; 132 fwspec.param[1] = sgi; 133 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; 135 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec);
|
H A D | irq-mvebu-gicp.c | 84 struct irq_fwspec fwspec; local 97 fwspec.fwnode = domain->parent->fwnode; 98 fwspec.param_count = 3; 99 fwspec.param[0] = GIC_SPI; 100 fwspec.param[1] = gicp_idx_to_spi(gicp, hwirq) - 32; 105 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; 107 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec);
|
H A D | irq-mvebu-odmi.c | 82 struct irq_fwspec fwspec; local 100 fwspec.fwnode = domain->parent->fwnode; 101 fwspec.param_count = 3; 102 fwspec.param[0] = GIC_SPI; 103 fwspec.param[1] = odmi->spi_base - 32 + odmin; 104 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; 106 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec);
|
H A D | irq-renesas-rza1.c | 106 struct irq_fwspec *fwspec = arg; local 107 unsigned int hwirq = fwspec->param[0]; 126 struct irq_fwspec *fwspec, unsigned long *hwirq, 129 if (fwspec->param_count != 2 || fwspec->param[0] >= IRQC_NUM_IRQ) 132 *hwirq = fwspec->param[0]; 133 *type = fwspec->param[1]; 125 rza1_irqc_translate(struct irq_domain *domain, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument
|
/linux-master/arch/x86/include/asm/ |
H A D | irqdomain.h | 13 extern int x86_fwspec_is_ioapic(struct irq_fwspec *fwspec); 14 extern int x86_fwspec_is_hpet(struct irq_fwspec *fwspec);
|
/linux-master/drivers/gpio/ |
H A D | gpio-xgene-sb.c | 115 struct irq_fwspec fwspec; local 121 fwspec.fwnode = gc->parent->fwnode; 122 fwspec.param_count = 2; 123 fwspec.param[0] = GPIO_TO_HWIRQ(priv, gpio); 124 fwspec.param[1] = IRQ_TYPE_EDGE_RISING; 125 return irq_create_fwspec_mapping(&fwspec); 161 struct irq_fwspec *fwspec, 167 if ((fwspec->param_count != 2) || 168 (fwspec->param[0] >= priv->nirq)) 170 *hwirq = fwspec 160 xgene_gpio_sb_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument 179 struct irq_fwspec *fwspec = data; local [all...] |
H A D | gpio-visconti.c | 112 struct irq_fwspec *fwspec = &gfwspec->fwspec; local 114 fwspec->fwnode = chip->irq.parent_domain->fwnode; 115 fwspec->param_count = 3; 116 fwspec->param[0] = 0; 117 fwspec->param[1] = parent_hwirq; 118 fwspec->param[2] = parent_type;
|
/linux-master/arch/arm/mach-imx/ |
H A D | gpc.c | 173 struct irq_fwspec *fwspec, 177 if (is_of_node(fwspec->fwnode)) { 178 if (fwspec->param_count != 3) 182 if (fwspec->param[0] != 0) 185 *hwirq = fwspec->param[1]; 186 *type = fwspec->param[2]; 197 struct irq_fwspec *fwspec = data; local 202 if (fwspec->param_count != 3) 204 if (fwspec->param[0] != 0) 207 hwirq = fwspec 172 imx_gpc_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *hwirq, unsigned int *type) argument [all...] |
/linux-master/kernel/irq/ |
H A D | irqdomain.c | 430 * irq_find_matching_fwspec() - Locates a domain for a given fwspec 431 * @fwspec: FW specifier for an interrupt 434 struct irq_domain *irq_find_matching_fwspec(struct irq_fwspec *fwspec, argument 438 struct fwnode_handle *fwnode = fwspec->fwnode; 453 rc = h->ops->select(h, fwspec, bus_token); 762 struct irq_fwspec *fwspec, 767 return d->ops->translate(d, fwspec, hwirq, type); 770 return d->ops->xlate(d, to_of_node(fwspec->fwnode), 771 fwspec->param, fwspec 761 irq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, irq_hw_number_t *hwirq, unsigned int *type) argument 779 of_phandle_args_to_fwspec(struct device_node *np, const u32 *args, unsigned int count, struct irq_fwspec *fwspec) argument 792 irq_create_fwspec_mapping(struct irq_fwspec *fwspec) argument 897 struct irq_fwspec fwspec; local 1011 struct irq_fwspec fwspec; local 1054 irq_domain_translate_onecell(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *out_hwirq, unsigned int *out_type) argument 1075 irq_domain_translate_twocell(struct irq_domain *d, struct irq_fwspec *fwspec, unsigned long *out_hwirq, unsigned int *out_type) argument [all...] |