{
        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;
        }