mfd: Flag WM831x /IRQ as a wake source
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 5 Jan 2011 17:56:01 +0000 (17:56 +0000)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 14 Jan 2011 11:38:17 +0000 (12:38 +0100)
The WM831x can generate wake events, some unconditionally, so flag
the primary IRQ as a wake source in order to help the CPU treat the
/IRQ signal appropriately.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/wm831x-irq.c

index ee88f6a05cec86e2c9b91dbe2fd85ffb71bdac29..f7192d438aabf17f209ec9959aaa7f7db98078d4 100644 (file)
@@ -517,6 +517,17 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
                return 0;
        }
 
+       /* Try to flag /IRQ as a wake source; there are a number of
+        * unconditional wake sources in the PMIC so this isn't
+        * conditional but we don't actually care *too* much if it
+        * fails.
+        */
+       ret = enable_irq_wake(irq);
+       if (ret != 0) {
+               dev_warn(wm831x->dev, "Can't enable IRQ as wake source: %d\n",
+                        ret);
+       }
+
        wm831x->irq = irq;
        wm831x->irq_base = pdata->irq_base;