aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArve Hjønnevåg <arve@android.com>2010-08-27 18:30:58 -0700
committerArve Hjønnevåg <arve@android.com>2011-11-17 17:46:54 -0800
commitd339df65288132ebb241d49f16b32d3f174db7ba (patch)
treeafb994eb19844443620dc4e224ba924c1e01bc5d
parenta03d07e97bc37694c48149dae4675aec5814f0cc (diff)
downloadkernel_samsung_crespo-d339df65288132ebb241d49f16b32d3f174db7ba.tar.gz
kernel_samsung_crespo-d339df65288132ebb241d49f16b32d3f174db7ba.tar.bz2
kernel_samsung_crespo-d339df65288132ebb241d49f16b32d3f174db7ba.zip
ARM: VIC: Implement retrigger
Change-Id: I563a1a3282bcbf696a8eb97590d6a1d98c381c21 Signed-off-by: Arve Hjønnevåg <arve@android.com>
-rw-r--r--arch/arm/common/vic.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
index 7aa4262ada7..b18fa848d0f 100644
--- a/arch/arm/common/vic.c
+++ b/arch/arm/common/vic.c
@@ -208,6 +208,14 @@ static void vic_unmask_irq(struct irq_data *d)
writel(1 << irq, base + VIC_INT_ENABLE);
}
+static int vic_retrigger_irq(struct irq_data *d)
+{
+ void __iomem *base = irq_data_get_irq_chip_data(d);
+ unsigned int irq = d->irq & 31;
+ writel(1 << irq, base + VIC_INT_SOFT);
+ return 1;
+}
+
#if defined(CONFIG_PM)
static struct vic_device *vic_from_irq(unsigned int irq)
{
@@ -251,6 +259,7 @@ static struct irq_chip vic_chip = {
.irq_ack = vic_ack_irq,
.irq_mask = vic_mask_irq,
.irq_unmask = vic_unmask_irq,
+ .irq_retrigger = vic_retrigger_irq,
.irq_set_wake = vic_set_wake,
};