ALSA: fm801: no need to suspend absent codec
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 21 Dec 2015 17:09:54 +0000 (19:09 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 21 Dec 2015 18:53:51 +0000 (19:53 +0100)
In case of tuner only card there is no need to take care of the codec which is
anyway absent.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/fm801.c

index 294fc131aee05efc7ad297d8a9e3dbc43ee2f786..9e870884c02cc7437f30b501597583e161482404 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]);