ASoC: arizona: Set compressed IRQ to a wake source
The current code is not setting the compressed IRQ as a wake source. Normally this doesn't cause any issues as the CODEC IRQ is set as a wake source by the jack detection code and the CODEC only produces a single IRQ line. However if the system is not using jack detection the compressed audio IRQ should still function as a wake source, as such directly set the compressed audio IRQ as a wake source. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6e56e5d041
commit
1b31de922e
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -2455,6 +2455,12 @@ static int wm5110_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);
|
||||
|
@ -2478,6 +2484,7 @@ static int wm5110_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, wm5110);
|
||||
|
||||
return ret;
|
||||
|
@ -2496,6 +2503,7 @@ static int wm5110_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, wm5110);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue