提交 2d3f5950 编写于 作者: S Sekhar Nori 提交者: Kevin Hilman

davinci: cp_intc: provide set_wake function

There is nothing special to be done for interrupts
which can wakeup the device from sleep on CP-INTC,
but not having a set_wake implemented prevents use
of common drivers which expect this function to be
implemented for all wakeup interrupt sources.

This patch fixes the issue encountered when using the
omap-rtc driver on DA850. On DA850 the RTC alarm
interrupt is used to wake up the SoC from deep sleep
mode. Without this patch, the disable_irq_wake throws
an unbalanced wake disable warning while resuming
because the previous enable call fails for lack of
set_wake implementation.
Signed-off-by: NSekhar Nori <nsekhar@ti.com>
Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
上级 077639f4
...@@ -81,12 +81,23 @@ static int cp_intc_set_irq_type(unsigned int irq, unsigned int flow_type) ...@@ -81,12 +81,23 @@ static int cp_intc_set_irq_type(unsigned int irq, unsigned int flow_type)
return 0; return 0;
} }
/*
* Faking this allows us to to work with suspend functions of
* generic drivers which call {enable|disable}_irq_wake for
* wake up interrupt sources (eg RTC on DA850).
*/
static int cp_intc_set_wake(unsigned int irq, unsigned int on)
{
return 0;
}
static struct irq_chip cp_intc_irq_chip = { static struct irq_chip cp_intc_irq_chip = {
.name = "cp_intc", .name = "cp_intc",
.ack = cp_intc_ack_irq, .ack = cp_intc_ack_irq,
.mask = cp_intc_mask_irq, .mask = cp_intc_mask_irq,
.unmask = cp_intc_unmask_irq, .unmask = cp_intc_unmask_irq,
.set_type = cp_intc_set_irq_type, .set_type = cp_intc_set_irq_type,
.set_wake = cp_intc_set_wake,
}; };
void __init cp_intc_init(void __iomem *base, unsigned short num_irq, void __init cp_intc_init(void __iomem *base, unsigned short num_irq,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册