]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/pci/fm801.c
Merge branch 'for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mason...
[karo-tx-linux.git] / sound / pci / fm801.c
index 9e870884c02cc7437f30b501597583e161482404..bade9b907b9267dd7741305cc74b3e03f226d3d4 100644 (file)
@@ -30,7 +30,7 @@
 #include <sound/initval.h>
 
 #ifdef CONFIG_SND_FM801_TEA575X_BOOL
-#include <media/tea575x.h>
+#include <media/drv-intf/tea575x.h>
 #endif
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>");
@@ -831,7 +831,7 @@ static void snd_fm801_tea575x_set_direction(struct snd_tea575x *tea, bool output
        fm801_writew(chip, GPIO_CTRL, reg);
 }
 
-static struct snd_tea575x_ops snd_fm801_tea_ops = {
+static const struct snd_tea575x_ops snd_fm801_tea_ops = {
        .set_pins = snd_fm801_tea575x_set_pins,
        .get_pins = snd_fm801_tea575x_get_pins,
        .set_direction = snd_fm801_tea575x_set_direction,
@@ -1394,6 +1394,9 @@ static int snd_fm801_suspend(struct device *dev)
 
        snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
 
+       for (i = 0; i < ARRAY_SIZE(saved_regs); i++)
+               chip->saved_regs[i] = fm801_ioread16(chip, saved_regs[i]);
+
        if (chip->tea575x_tuner & TUNER_ONLY) {
                /* FIXME: tea575x suspend */
        } else {
@@ -1402,8 +1405,6 @@ static int snd_fm801_suspend(struct device *dev)
                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]);
        return 0;
 }
 
@@ -1426,6 +1427,11 @@ static int snd_fm801_resume(struct device *dev)
        for (i = 0; i < ARRAY_SIZE(saved_regs); i++)
                fm801_iowrite16(chip, saved_regs[i], chip->saved_regs[i]);
 
+#ifdef CONFIG_SND_FM801_TEA575X_BOOL
+       if (!(chip->tea575x_tuner & TUNER_DISABLED))
+               snd_tea575x_set_freq(&chip->tea);
+#endif
+
        snd_power_change_state(card, SNDRV_CTL_POWER_D0);
        return 0;
 }