mirror of https://gitee.com/openkylin/linux.git
avr32: allow system timer to share interrupt to make OProfile work
The following patch allows the avr32_comparator interrupt to be shared. This is necessary as the avr32 oprofile driver shares the irq group 0 with the timer. To make OProfile actually work on AVR32, a small patch for oprofiled is also needed (posted to the oprofile mailing list). Signed-off-by: Nikolaus Voss <n.voss@weinmann.de> [haavard.skinnemoen@atmel.com: set IRQF_SHARED unconditionally] Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
This commit is contained in:
parent
db6ea2c17c
commit
56d3eef2b4
|
@ -43,6 +43,9 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
|
|||
{
|
||||
struct clock_event_device *evdev = dev_id;
|
||||
|
||||
if (unlikely(!(intc_get_pending(0) & 1)))
|
||||
return IRQ_NONE;
|
||||
|
||||
/*
|
||||
* Disable the interrupt until the clockevent subsystem
|
||||
* reprograms it.
|
||||
|
@ -55,7 +58,8 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
|
|||
|
||||
static struct irqaction timer_irqaction = {
|
||||
.handler = timer_interrupt,
|
||||
.flags = IRQF_TIMER | IRQF_DISABLED,
|
||||
/* Oprofile uses the same irq as the timer, so allow it to be shared */
|
||||
.flags = IRQF_TIMER | IRQF_DISABLED | IRQF_SHARED,
|
||||
.name = "avr32_comparator",
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue