Lines Matching defs:hwirq
146 static inline u32 hwirq_to_group(struct iproc_msi *msi, unsigned long hwirq)
148 return (hwirq % msi->nr_irqs);
152 unsigned long hwirq)
155 return hwirq_to_group(msi, hwirq) * MSI_MEM_REGION_SIZE;
157 return hwirq_to_group(msi, hwirq) * sizeof(u32);
195 static inline int hwirq_to_cpu(struct iproc_msi *msi, unsigned long hwirq)
197 return (hwirq % msi->nr_cpus);
201 unsigned long hwirq)
203 return (hwirq - hwirq_to_cpu(msi, hwirq));
214 curr_cpu = hwirq_to_cpu(msi, data->hwirq);
219 data->hwirq = hwirq_to_canonical_hwirq(msi, data->hwirq) + target_cpu;
234 addr = msi->msi_addr + iproc_msi_addr_offset(msi, data->hwirq);
237 msg->data = data->hwirq << 5;
251 int hwirq, i;
262 hwirq = bitmap_find_free_region(msi->bitmap, msi->nr_msi_vecs,
267 if (hwirq < 0)
271 irq_domain_set_info(domain, virq + i, hwirq + i,
285 unsigned int hwirq;
289 hwirq = hwirq_to_canonical_hwirq(msi, data->hwirq);
290 bitmap_release_region(msi->bitmap, hwirq,
306 u32 hwirq;
311 hwirq = readl(msg);
312 hwirq = (hwirq >> 5) + (hwirq & 0x1f);
315 * Since we have multiple hwirq mapped to a single MSI vector,
316 * now we need to derive the hwirq at CPU0. It can then be used to
319 return hwirq_to_canonical_hwirq(msi, hwirq);
328 unsigned long hwirq;
364 hwirq = decode_msi_hwirq(msi, eq, head);
365 virq = irq_find_mapping(msi->inner_domain, hwirq);