ALSA: fm801: no need to suspend absent codec
[cascardo/linux.git] / sound / pci / fm801.c
index 294fc13..9e87088 100644 (file)
@@ -1393,12 +1393,17 @@ static int snd_fm801_suspend(struct device *dev)
        int i;
 
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
-       snd_pcm_suspend_all(chip->pcm);
-       snd_ac97_suspend(chip->ac97);
-       snd_ac97_suspend(chip->ac97_sec);
+
+       if (chip->tea575x_tuner & TUNER_ONLY) {
+               /* FIXME: tea575x suspend */
+       } else {
+               snd_pcm_suspend_all(chip->pcm);
+               snd_ac97_suspend(chip->ac97);
+               snd_ac97_suspend(chip->ac97_sec);
+       }
+
        for (i = 0; i < ARRAY_SIZE(saved_regs); i++)
                chip->saved_regs[i] = fm801_ioread16(chip, saved_regs[i]);
-       /* FIXME: tea575x suspend */
        return 0;
 }
 
@@ -1414,9 +1419,10 @@ static int snd_fm801_resume(struct device *dev)
                reset_codec(chip);
                snd_fm801_chip_multichannel_init(chip);
                snd_fm801_chip_init(chip);
+               snd_ac97_resume(chip->ac97);
+               snd_ac97_resume(chip->ac97_sec);
        }
-       snd_ac97_resume(chip->ac97);
-       snd_ac97_resume(chip->ac97_sec);
+
        for (i = 0; i < ARRAY_SIZE(saved_regs); i++)
                fm801_iowrite16(chip, saved_regs[i], chip->saved_regs[i]);