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: Sekhar Nori <nsekhar@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
This commit is contained in:
parent
077639f443
commit
2d3f595016
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue