Lines Matching refs:mpic
9 #include <asm/mpic.h>
15 #include <sysdev/mpic.h>
17 void mpic_msi_reserve_hwirq(struct mpic *mpic, irq_hw_number_t hwirq)
19 /* The mpic calls this even when there is no allocator setup */
20 if (!mpic->msi_bitmap.bitmap)
23 msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, hwirq);
27 static int mpic_msi_reserve_u3_hwirqs(struct mpic *mpic)
30 const struct irq_domain_ops *ops = mpic->irqhost->ops;
35 pr_debug("mpic: found U3, guessing msi allocator setup\n");
44 msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, i);
47 msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, i);
50 msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, i);
52 for (i = 124; i < mpic->num_sources; i++)
53 msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, i);
58 pr_debug("mpic: mapping hwirqs for %pOF\n", np);
62 ops->xlate(mpic->irqhost, NULL, oirq.args,
64 msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, hwirq);
71 static int mpic_msi_reserve_u3_hwirqs(struct mpic *mpic)
77 int mpic_msi_init_allocator(struct mpic *mpic)
81 rc = msi_bitmap_alloc(&mpic->msi_bitmap, mpic->num_sources,
82 irq_domain_get_of_node(mpic->irqhost));
86 rc = msi_bitmap_reserve_dt_hwirqs(&mpic->msi_bitmap);
88 if (mpic->flags & MPIC_U3_HT_IRQS)
89 rc = mpic_msi_reserve_u3_hwirqs(mpic);
92 msi_bitmap_free(&mpic->msi_bitmap);