From 475bf41bd1ed208f920cf2267e704fc5c731e60c Mon Sep 17 00:00:00 2001 From: Tomasz Figa Date: Fri, 21 Sep 2012 07:33:55 +0900 Subject: [PATCH] --- yaml --- r: 327024 b: refs/heads/master c: de59049bd651c1f6b05869a4292f4c8017bdeff9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/pinctrl/pinctrl-exynos.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f3613815aa26..49be197e0696 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3da23f27a0f6a5e44a01813a1c0a662011e5c221 +refs/heads/master: de59049bd651c1f6b05869a4292f4c8017bdeff9 diff --git a/trunk/drivers/pinctrl/pinctrl-exynos.c b/trunk/drivers/pinctrl/pinctrl-exynos.c index 46cd637f4804..56489714cd70 100644 --- a/trunk/drivers/pinctrl/pinctrl-exynos.c +++ b/trunk/drivers/pinctrl/pinctrl-exynos.c @@ -395,12 +395,15 @@ static void exynos_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc) struct exynos_weint_data *eintd = irq_get_handler_data(irq); struct samsung_pinctrl_drv_data *d = eintd->domain->host_data; unsigned long pend; + unsigned long mask; chained_irq_enter(chip, desc); pend = readl(d->virt_base + d->ctrl->weint_pend + 0x8); - exynos_irq_demux_eint(16, pend, eintd->domain); + mask = readl(d->virt_base + d->ctrl->weint_mask + 0x8); + exynos_irq_demux_eint(16, pend & ~mask, eintd->domain); pend = readl(d->virt_base + d->ctrl->weint_pend + 0xC); - exynos_irq_demux_eint(24, pend, eintd->domain); + mask = readl(d->virt_base + d->ctrl->weint_mask + 0xC); + exynos_irq_demux_eint(24, pend & ~mask, eintd->domain); chained_irq_exit(chip, desc); }