Lines Matching full:hwirq

61 	u32 reg_idx = SEI_IRQ_REG_IDX(d->hwirq);  in mvebu_sei_ack_irq()
63 writel_relaxed(BIT(SEI_IRQ_REG_BIT(d->hwirq)), in mvebu_sei_ack_irq()
70 u32 reg, reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_mask_irq()
76 reg |= BIT(SEI_IRQ_REG_BIT(d->hwirq)); in mvebu_sei_mask_irq()
84 u32 reg, reg_idx = SEI_IRQ_REG_IDX(d->hwirq); in mvebu_sei_unmask_irq()
90 reg &= ~BIT(SEI_IRQ_REG_BIT(d->hwirq)); in mvebu_sei_unmask_irq()
146 msg->data = data->hwirq + sei->caps->cp_range.first; in mvebu_sei_cp_compose_msi_msg()
201 unsigned long *hwirq, in mvebu_sei_ap_translate() argument
204 *hwirq = fwspec->param[0]; in mvebu_sei_ap_translate()
215 unsigned long hwirq; in mvebu_sei_ap_alloc() local
219 mvebu_sei_ap_translate(domain, arg, &hwirq, &type); in mvebu_sei_ap_alloc()
223 fwspec.param[0] = hwirq + sei->caps->ap_range.first; in mvebu_sei_ap_alloc()
229 irq_domain_set_info(domain, virq, hwirq, in mvebu_sei_ap_alloc()
243 static void mvebu_sei_cp_release_irq(struct mvebu_sei *sei, unsigned long hwirq) in mvebu_sei_cp_release_irq() argument
246 clear_bit(hwirq, sei->cp_msi_bitmap); in mvebu_sei_cp_release_irq()
256 unsigned long hwirq; in mvebu_sei_cp_domain_alloc() local
264 hwirq = find_first_zero_bit(sei->cp_msi_bitmap, in mvebu_sei_cp_domain_alloc()
266 if (hwirq < sei->caps->cp_range.size) in mvebu_sei_cp_domain_alloc()
267 set_bit(hwirq, sei->cp_msi_bitmap); in mvebu_sei_cp_domain_alloc()
270 if (hwirq == sei->caps->cp_range.size) in mvebu_sei_cp_domain_alloc()
275 fwspec.param[0] = hwirq + sei->caps->cp_range.first; in mvebu_sei_cp_domain_alloc()
281 irq_domain_set_info(domain, virq, hwirq, in mvebu_sei_cp_domain_alloc()
288 mvebu_sei_cp_release_irq(sei, hwirq); in mvebu_sei_cp_domain_alloc()
298 if (nr_irqs != 1 || d->hwirq >= sei->caps->cp_range.size) { in mvebu_sei_cp_domain_free()
299 dev_err(sei->dev, "Invalid hwirq %lu\n", d->hwirq); in mvebu_sei_cp_domain_free()
303 mvebu_sei_cp_release_irq(sei, d->hwirq); in mvebu_sei_cp_domain_free()
327 unsigned long hwirq; in mvebu_sei_handle_cascade_irq() local
330 hwirq = idx * SEI_IRQ_COUNT_PER_REG + bit; in mvebu_sei_handle_cascade_irq()
331 err = generic_handle_domain_irq(sei->sei_domain, hwirq); in mvebu_sei_handle_cascade_irq()
333 dev_warn(sei->dev, "Spurious IRQ detected (hwirq %lu)\n", hwirq); in mvebu_sei_handle_cascade_irq()