|
@@ -89,6 +89,17 @@ static int crossbar_domain_map(struct irq_domain *d, unsigned int irq,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * crossbar_domain_unmap - unmap a crossbar<->irq connection
|
|
|
|
+ * @d: domain of irq to unmap
|
|
|
|
+ * @irq: virq number
|
|
|
|
+ *
|
|
|
|
+ * We do not maintain a use count of total number of map/unmap
|
|
|
|
+ * calls for a particular irq to find out if a irq can be really
|
|
|
|
+ * unmapped. This is because unmap is called during irq_dispose_mapping(irq),
|
|
|
|
+ * after which irq is anyways unusable. So an explicit map has to be called
|
|
|
|
+ * after that.
|
|
|
|
+ */
|
|
static void crossbar_domain_unmap(struct irq_domain *d, unsigned int irq)
|
|
static void crossbar_domain_unmap(struct irq_domain *d, unsigned int irq)
|
|
{
|
|
{
|
|
irq_hw_number_t hw = irq_get_irq_data(irq)->hwirq;
|
|
irq_hw_number_t hw = irq_get_irq_data(irq)->hwirq;
|