ASoC: arizona: Set compressed IRQ to a wake source
[sfrench/cifs-2.6.git] / sound / soc / codecs / wm5102.c
index 1ac83388d1b824747f99a8bed7f5e9a85f272ee2..a01a0c0e01ebda73b22a0abe311a7e72ee2f4da9 100644 (file)
@@ -2094,6 +2094,12 @@ static int wm5102_probe(struct platform_device *pdev)
                return ret;
        }
 
+       ret = arizona_set_irq_wake(arizona, ARIZONA_IRQ_DSP_IRQ1, 1);
+       if (ret != 0)
+               dev_warn(&pdev->dev,
+                        "Failed to set compressed IRQ as a wake source: %d\n",
+                        ret);
+
        arizona_init_common(arizona);
 
        ret = arizona_init_vol_limit(arizona);
@@ -2117,6 +2123,7 @@ static int wm5102_probe(struct platform_device *pdev)
 err_spk_irqs:
        arizona_free_spk_irqs(arizona);
 err_dsp_irq:
+       arizona_set_irq_wake(arizona, ARIZONA_IRQ_DSP_IRQ1, 0);
        arizona_free_irq(arizona, ARIZONA_IRQ_DSP_IRQ1, wm5102);
 
        return ret;
@@ -2133,6 +2140,7 @@ static int wm5102_remove(struct platform_device *pdev)
 
        arizona_free_spk_irqs(arizona);
 
+       arizona_set_irq_wake(arizona, ARIZONA_IRQ_DSP_IRQ1, 0);
        arizona_free_irq(arizona, ARIZONA_IRQ_DSP_IRQ1, wm5102);
 
        return 0;