|
@@ -472,6 +472,22 @@ static irqreturn_t ab8500_hierarchical_irq(int irq, void *dev)
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * ab8500_irq_get_virq(): Map an interrupt on a chip to a virtual IRQ
|
|
|
+ *
|
|
|
+ * @ab8500: ab8500_irq controller to operate on.
|
|
|
+ * @irq: index of the interrupt requested in the chip IRQs
|
|
|
+ *
|
|
|
+ * Useful for drivers to request their own IRQs.
|
|
|
+ */
|
|
|
+static int ab8500_irq_get_virq(struct ab8500 *ab8500, int irq)
|
|
|
+{
|
|
|
+ if (!ab8500)
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ return irq_create_mapping(ab8500->domain, irq);
|
|
|
+}
|
|
|
+
|
|
|
static irqreturn_t ab8500_irq(int irq, void *dev)
|
|
|
{
|
|
|
struct ab8500 *ab8500 = dev;
|
|
@@ -511,23 +527,6 @@ static irqreturn_t ab8500_irq(int irq, void *dev)
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * ab8500_irq_get_virq(): Map an interrupt on a chip to a virtual IRQ
|
|
|
- *
|
|
|
- * @ab8500: ab8500_irq controller to operate on.
|
|
|
- * @irq: index of the interrupt requested in the chip IRQs
|
|
|
- *
|
|
|
- * Useful for drivers to request their own IRQs.
|
|
|
- */
|
|
|
-int ab8500_irq_get_virq(struct ab8500 *ab8500, int irq)
|
|
|
-{
|
|
|
- if (!ab8500)
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- return irq_create_mapping(ab8500->domain, irq);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL_GPL(ab8500_irq_get_virq);
|
|
|
-
|
|
|
static int ab8500_irq_map(struct irq_domain *d, unsigned int virq,
|
|
|
irq_hw_number_t hwirq)
|
|
|
{
|