|
@@ -1283,6 +1283,12 @@ static int cs47l24_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);
|
|
@@ -1306,6 +1312,7 @@ static int cs47l24_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, cs47l24);
|
|
|
|
|
|
return ret;
|
|
@@ -1323,6 +1330,7 @@ static int cs47l24_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, cs47l24);
|
|
|
|
|
|
return 0;
|