Lines Matching full:irq
41 int irq, hwirq; in hsta_setup_msi_irqs() local
51 irq = msi_bitmap_alloc_hwirqs(&ppc4xx_hsta_msi.bmp, 1); in hsta_setup_msi_irqs()
52 if (irq < 0) { in hsta_setup_msi_irqs()
55 return irq; in hsta_setup_msi_irqs()
58 hwirq = ppc4xx_hsta_msi.irq_map[irq]; in hsta_setup_msi_irqs()
60 pr_err("%s: Failed mapping irq %d\n", __func__, irq); in hsta_setup_msi_irqs()
68 addr = ppc4xx_hsta_msi.address + irq*0x10; in hsta_setup_msi_irqs()
75 pr_debug("%s: Setup irq %d (0x%0llx)\n", __func__, hwirq, in hsta_setup_msi_irqs()
82 msi_bitmap_free_hwirqs(&ppc4xx_hsta_msi.bmp, irq, 1); in hsta_setup_msi_irqs()
93 int irq; in hsta_find_hwirq_offset() local
96 for (irq = 0; irq < ppc4xx_hsta_msi.irq_count; irq++) in hsta_find_hwirq_offset()
97 if (ppc4xx_hsta_msi.irq_map[irq] == hwirq) in hsta_find_hwirq_offset()
98 return irq; in hsta_find_hwirq_offset()
106 int irq; in hsta_teardown_msi_irqs() local
109 if (!entry->irq) in hsta_teardown_msi_irqs()
112 irq = hsta_find_hwirq_offset(entry->irq); in hsta_teardown_msi_irqs()
114 /* entry->irq should always be in irq_map */ in hsta_teardown_msi_irqs()
115 BUG_ON(irq < 0); in hsta_teardown_msi_irqs()
116 irq_set_msi_desc(entry->irq, NULL); in hsta_teardown_msi_irqs()
117 msi_bitmap_free_hwirqs(&ppc4xx_hsta_msi.bmp, irq, 1); in hsta_teardown_msi_irqs()
118 pr_debug("%s: Teardown IRQ %u (index %u)\n", __func__, in hsta_teardown_msi_irqs()
119 entry->irq, irq); in hsta_teardown_msi_irqs()
127 int irq, ret, irq_count; in hsta_msi_probe() local
138 dev_err(dev, "Unable to find IRQ range\n"); in hsta_msi_probe()
162 /* Setup a mapping from irq offsets to hardware irq numbers */ in hsta_msi_probe()
163 for (irq = 0; irq < irq_count; irq++) { in hsta_msi_probe()
164 ppc4xx_hsta_msi.irq_map[irq] = in hsta_msi_probe()
165 irq_of_parse_and_map(dev->of_node, irq); in hsta_msi_probe()
166 if (!ppc4xx_hsta_msi.irq_map[irq]) { in hsta_msi_probe()
167 dev_err(dev, "Unable to map IRQ\n"); in hsta_msi_probe()