Skip to content
Snippets Groups Projects
Commit edf76f83 authored by Jonathan Cameron's avatar Jonathan Cameron Committed by Thomas Gleixner
Browse files

irq: Export functions to allow modular irq drivers


Export handle_simple_irq, irq_modify_status, irq_alloc_descs,
irq_free_descs and generic_handle_irq to allow their usage in
modules. First user is IIO, which wants to be built modular, but needs
to be able to create irq chips, allocate and configure interrupt
descriptors and handle demultiplexing interrupts.

[ tglx: Moved the uninlinig of generic_handle_irq to a separate patch ]

Signed-off-by: default avatarJonathan Cameron <jic23@cam.ac.uk>
Link: http://lkml.kernel.org/r/%3C1305711544-505-1-git-send-email-jic23%40cam.ac.uk%3E


Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent fe12bc2c
No related branches found
No related tags found
No related merge requests found
...@@ -310,6 +310,7 @@ handle_simple_irq(unsigned int irq, struct irq_desc *desc) ...@@ -310,6 +310,7 @@ handle_simple_irq(unsigned int irq, struct irq_desc *desc)
out_unlock: out_unlock:
raw_spin_unlock(&desc->lock); raw_spin_unlock(&desc->lock);
} }
EXPORT_SYMBOL_GPL(handle_simple_irq);
/** /**
* handle_level_irq - Level type irq handler * handle_level_irq - Level type irq handler
...@@ -613,6 +614,7 @@ void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set) ...@@ -613,6 +614,7 @@ void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set)
irq_put_desc_unlock(desc, flags); irq_put_desc_unlock(desc, flags);
} }
EXPORT_SYMBOL_GPL(irq_modify_status);
/** /**
* irq_cpu_online - Invoke all irq_cpu_online functions. * irq_cpu_online - Invoke all irq_cpu_online functions.
......
...@@ -304,6 +304,7 @@ int generic_handle_irq(unsigned int irq) ...@@ -304,6 +304,7 @@ int generic_handle_irq(unsigned int irq)
generic_handle_irq_desc(irq, desc); generic_handle_irq_desc(irq, desc);
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(generic_handle_irq);
/* Dynamic interrupt handling */ /* Dynamic interrupt handling */
...@@ -326,6 +327,7 @@ void irq_free_descs(unsigned int from, unsigned int cnt) ...@@ -326,6 +327,7 @@ void irq_free_descs(unsigned int from, unsigned int cnt)
bitmap_clear(allocated_irqs, from, cnt); bitmap_clear(allocated_irqs, from, cnt);
mutex_unlock(&sparse_irq_lock); mutex_unlock(&sparse_irq_lock);
} }
EXPORT_SYMBOL_GPL(irq_free_descs);
/** /**
* irq_alloc_descs - allocate and initialize a range of irq descriptors * irq_alloc_descs - allocate and initialize a range of irq descriptors
...@@ -366,6 +368,7 @@ err: ...@@ -366,6 +368,7 @@ err:
mutex_unlock(&sparse_irq_lock); mutex_unlock(&sparse_irq_lock);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(irq_alloc_descs);
/** /**
* irq_reserve_irqs - mark irqs allocated * irq_reserve_irqs - mark irqs allocated
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment