Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d3f5950 authored by Sekhar Nori's avatar Sekhar Nori Committed by Kevin Hilman
Browse files

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: default avatarSekhar Nori <nsekhar@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent 077639f4
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -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,