|
@@ -715,6 +715,10 @@ unsigned int arch_dynirq_lower_bound(unsigned int from);
|
|
|
int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
|
|
|
struct module *owner, const struct cpumask *affinity);
|
|
|
|
|
|
+int __devm_irq_alloc_descs(struct device *dev, int irq, unsigned int from,
|
|
|
+ unsigned int cnt, int node, struct module *owner,
|
|
|
+ const struct cpumask *affinity);
|
|
|
+
|
|
|
/* use macros to avoid needing export.h for THIS_MODULE */
|
|
|
#define irq_alloc_descs(irq, from, cnt, node) \
|
|
|
__irq_alloc_descs(irq, from, cnt, node, THIS_MODULE, NULL)
|
|
@@ -731,6 +735,21 @@ int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
|
|
|
#define irq_alloc_descs_from(from, cnt, node) \
|
|
|
irq_alloc_descs(-1, from, cnt, node)
|
|
|
|
|
|
+#define devm_irq_alloc_descs(dev, irq, from, cnt, node) \
|
|
|
+ __devm_irq_alloc_descs(dev, irq, from, cnt, node, THIS_MODULE, NULL)
|
|
|
+
|
|
|
+#define devm_irq_alloc_desc(dev, node) \
|
|
|
+ devm_irq_alloc_descs(dev, -1, 0, 1, node)
|
|
|
+
|
|
|
+#define devm_irq_alloc_desc_at(dev, at, node) \
|
|
|
+ devm_irq_alloc_descs(dev, at, at, 1, node)
|
|
|
+
|
|
|
+#define devm_irq_alloc_desc_from(dev, from, node) \
|
|
|
+ devm_irq_alloc_descs(dev, -1, from, 1, node)
|
|
|
+
|
|
|
+#define devm_irq_alloc_descs_from(dev, from, cnt, node) \
|
|
|
+ devm_irq_alloc_descs(dev, -1, from, cnt, node)
|
|
|
+
|
|
|
void irq_free_descs(unsigned int irq, unsigned int cnt);
|
|
|
static inline void irq_free_desc(unsigned int irq)
|
|
|
{
|