genirq: percpu: allow interrupt type to be set at enable time
The commit 1e7c5fd breaks the build which gets fixed in the next commit 32cffdd. commit 1e7c5fd29487ee88cb3abac945bafa60ae026146 Author: Marc Zyngier <marc.zyngier@arm.com> Date: Fri Sep 30 10:48:47 2011 +0100 genirq: percpu: allow interrupt type to be set at enable time As request_percpu_irq() doesn't allow for a percpu interrupt to have its type configured (it is generally impossible to configure it on all CPUs at once), add a 'type' argument to enable_percpu_irq(). This allows some low-level, board specific init code to be switched to a generic API. [ tglx: Added WARN_ON argument ] Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Cc: Abhijeet Dharmapurikar <adharmap@codeaurora.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> commit 32cffdde4a3ee6c2d9e0f0a94edecf1a9ce7586b Author: Thomas Gleixner <tglx@linutronix.de> Date: Tue Oct 4 18:43:57 2011 +0200 genirq: Fix fatfinered fixup really Putting the argument inside the quote does not really help. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Change-Id: I1c9e58dd8788b5515f183ec169975d48a329b339 [tsoni@codeaurora.org: Fixup MSM build failure] Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
This commit is contained in:
@@ -223,7 +223,7 @@ extern void disable_irq_nosync(unsigned int irq);
|
|||||||
extern void disable_irq(unsigned int irq);
|
extern void disable_irq(unsigned int irq);
|
||||||
extern void disable_percpu_irq(unsigned int irq);
|
extern void disable_percpu_irq(unsigned int irq);
|
||||||
extern void enable_irq(unsigned int irq);
|
extern void enable_irq(unsigned int irq);
|
||||||
extern void enable_percpu_irq(unsigned int irq);
|
extern void enable_percpu_irq(unsigned int irq, unsigned int type);
|
||||||
|
|
||||||
/* The following three functions are for the core kernel use only. */
|
/* The following three functions are for the core kernel use only. */
|
||||||
#ifdef CONFIG_GENERIC_HARDIRQS
|
#ifdef CONFIG_GENERIC_HARDIRQS
|
||||||
|
|||||||
@@ -1462,7 +1462,7 @@ void irq_set_pending(unsigned int irq)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(irq_set_pending);
|
EXPORT_SYMBOL_GPL(irq_set_pending);
|
||||||
|
|
||||||
void enable_percpu_irq(unsigned int irq)
|
void enable_percpu_irq(unsigned int irq, unsigned int type)
|
||||||
{
|
{
|
||||||
unsigned int cpu = smp_processor_id();
|
unsigned int cpu = smp_processor_id();
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
@@ -1471,7 +1471,20 @@ void enable_percpu_irq(unsigned int irq)
|
|||||||
if (!desc)
|
if (!desc)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
type &= IRQ_TYPE_SENSE_MASK;
|
||||||
|
if (type != IRQ_TYPE_NONE) {
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = __irq_set_trigger(desc, irq, type);
|
||||||
|
|
||||||
|
if (ret) {
|
||||||
|
WARN(1, "failed to set type for IRQ%d\n", irq);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
irq_percpu_enable(desc, cpu);
|
irq_percpu_enable(desc, cpu);
|
||||||
|
out:
|
||||||
irq_put_desc_unlock(desc, flags);
|
irq_put_desc_unlock(desc, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user