aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/wm8994-irq.c
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-09-12 11:14:33 -0400
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-09-12 11:14:33 -0400
commit25a765b7f05cb8460fa01b54568894b20e184862 (patch)
tree0b56db57b4d9f912393ab303c269e0fe6cdf8635 /drivers/mfd/wm8994-irq.c
parent9d2be9287107695708e6aae5105a8a518a6cb4d0 (diff)
parent64282278989d5b0398dcb3ba7904cb00c621dc35 (diff)
Merge branch 'x86/platform' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into stable/for-linus-3.7
* 'x86/platform' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (9690 commits) x86: Document x86_init.paging.pagetable_init() x86: xen: Cleanup and remove x86_init.paging.pagetable_setup_done() x86: Move paging_init() call to x86_init.paging.pagetable_init() x86: Rename pagetable_setup_start() to pagetable_init() x86: Remove base argument from x86_init.paging.pagetable_setup_start Linux 3.6-rc5 HID: tpkbd: work even if the new Lenovo Keyboard driver is not configured Remove user-triggerable BUG from mpol_to_str xen/pciback: Fix proper FLR steps. uml: fix compile error in deliver_alarm() dj: memory scribble in logi_dj Fix order of arguments to compat_put_time[spec|val] xen: Use correct masking in xen_swiotlb_alloc_coherent. xen: fix logical error in tlb flushing xen/p2m: Fix one-off error in checking the P2M tree directory. powerpc: Don't use __put_user() in patch_instruction powerpc: Make sure IPI handlers see data written by IPI senders powerpc: Restore correct DSCR in context switch powerpc: Fix DSCR inheritance in copy_thread() powerpc: Keep thread.dscr and thread.dscr_inherit in sync ...
Diffstat (limited to 'drivers/mfd/wm8994-irq.c')
-rw-r--r--drivers/mfd/wm8994-irq.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/mfd/wm8994-irq.c b/drivers/mfd/wm8994-irq.c
index f1837f669755..0aac4aff17a5 100644
--- a/drivers/mfd/wm8994-irq.c
+++ b/drivers/mfd/wm8994-irq.c
@@ -21,6 +21,7 @@
21#include <linux/regmap.h> 21#include <linux/regmap.h>
22 22
23#include <linux/mfd/wm8994/core.h> 23#include <linux/mfd/wm8994/core.h>
24#include <linux/mfd/wm8994/pdata.h>
24#include <linux/mfd/wm8994/registers.h> 25#include <linux/mfd/wm8994/registers.h>
25 26
26#include <linux/delay.h> 27#include <linux/delay.h>
@@ -139,6 +140,8 @@ static struct regmap_irq_chip wm8994_irq_chip = {
139int wm8994_irq_init(struct wm8994 *wm8994) 140int wm8994_irq_init(struct wm8994 *wm8994)
140{ 141{
141 int ret; 142 int ret;
143 unsigned long irqflags;
144 struct wm8994_pdata *pdata = wm8994->dev->platform_data;
142 145
143 if (!wm8994->irq) { 146 if (!wm8994->irq) {
144 dev_warn(wm8994->dev, 147 dev_warn(wm8994->dev,
@@ -147,8 +150,13 @@ int wm8994_irq_init(struct wm8994 *wm8994)
147 return 0; 150 return 0;
148 } 151 }
149 152
153 /* select user or default irq flags */
154 irqflags = IRQF_TRIGGER_HIGH | IRQF_ONESHOT;
155 if (pdata->irq_flags)
156 irqflags = pdata->irq_flags;
157
150 ret = regmap_add_irq_chip(wm8994->regmap, wm8994->irq, 158 ret = regmap_add_irq_chip(wm8994->regmap, wm8994->irq,
151 IRQF_TRIGGER_HIGH | IRQF_ONESHOT, 159 irqflags,
152 wm8994->irq_base, &wm8994_irq_chip, 160 wm8994->irq_base, &wm8994_irq_chip,
153 &wm8994->irq_data); 161 &wm8994->irq_data);
154 if (ret != 0) { 162 if (ret != 0) {