{
struct cs47l24_priv *priv = data;
struct arizona *arizona = priv->core.arizona;
- --- int ret;
+ +++ int serviced = 0;
+ +++ int i, ret;
+++
- ret = wm_adsp_compr_handle_irq(&priv->core.adsp[2]);
- if (ret == -ENODEV) {
+ +++ for (i = 1; i <= 2; ++i) {
+ +++ ret = wm_adsp_compr_handle_irq(&priv->core.adsp[i]);
+ +++ if (ret != -ENODEV)
+ +++ serviced++;
+ +++ }
+
--- ret = wm_adsp_compr_handle_irq(&priv->core.adsp[2]);
--- if (ret == -ENODEV) {
+ +++ if (!serviced) {
dev_err(arizona->dev, "Spurious compressed data IRQ\n");
return IRQ_NONE;
}