Lines Matching defs:combiner

8  * An interrupt combiner in this block combines a set of interrupts by
13 * of the given combiner. Thus, each combiner can be described as a set
31 struct combiner {
49 struct combiner *combiner = irq_desc_get_handler_data(desc);
55 for (reg = 0; reg < combiner->nregs; reg++) {
60 bit = readl_relaxed(combiner->regs[reg].addr);
61 status = bit & combiner->regs[reg].enabled;
65 combiner->regs[reg].enabled,
66 combiner->regs[reg].addr);
72 generic_handle_domain_irq(combiner->domain, hwirq);
81 struct combiner *combiner = irq_data_get_irq_chip_data(data);
82 struct combiner_reg *reg = combiner->regs + data->hwirq / REG_SIZE;
89 struct combiner *combiner = irq_data_get_irq_chip_data(data);
90 struct combiner_reg *reg = combiner->regs + data->hwirq / REG_SIZE;
98 .name = "qcom-irq-combiner"
118 struct combiner *combiner = d->host_data;
122 (fws->param[0] >= combiner->nirqs) ||
168 struct combiner *combiner;
199 ctx->combiner->regs[ctx->combiner->nregs].addr = vaddr;
200 ctx->combiner->nirqs += reg->bit_width;
201 ctx->combiner->nregs++;
205 static int get_registers(struct platform_device *pdev, struct combiner *comb)
215 ctx.combiner = comb;
227 struct combiner *combiner;
237 combiner = devm_kzalloc(&pdev->dev, struct_size(combiner, regs, nregs),
239 if (!combiner)
242 err = get_registers(pdev, combiner);
246 combiner->parent_irq = platform_get_irq(pdev, 0);
247 if (combiner->parent_irq <= 0)
250 combiner->domain = irq_domain_create_linear(pdev->dev.fwnode, combiner->nirqs,
251 &domain_ops, combiner);
252 if (!combiner->domain)
256 irq_set_chained_handler_and_data(combiner->parent_irq,
257 combiner_handle_irq, combiner);
260 combiner->parent_irq, combiner->nirqs, combiner->regs[0].addr);
271 .name = "qcom-irq-combiner",