diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index fad825677e7c..01cc58a247c1 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -828,11 +828,32 @@ static void stac92xx_free(struct hda_codec *codec) | |||
828 | kfree(spec); | 828 | kfree(spec); |
829 | } | 829 | } |
830 | 830 | ||
831 | #ifdef CONFIG_PM | ||
832 | static int stac92xx_resume(struct hda_codec *codec) | ||
833 | { | ||
834 | struct sigmatel_spec *spec = codec->spec; | ||
835 | int i; | ||
836 | |||
837 | stac92xx_init(codec); | ||
838 | for (i = 0; i < spec->num_mixers; i++) | ||
839 | snd_hda_resume_ctls(codec, spec->mixers[i]); | ||
840 | if (spec->multiout.dig_out_nid) | ||
841 | snd_hda_resume_spdif_out(codec); | ||
842 | if (spec->dig_in_nid) | ||
843 | snd_hda_resume_spdif_in(codec); | ||
844 | |||
845 | return 0; | ||
846 | } | ||
847 | #endif | ||
848 | |||
831 | static struct hda_codec_ops stac92xx_patch_ops = { | 849 | static struct hda_codec_ops stac92xx_patch_ops = { |
832 | .build_controls = stac92xx_build_controls, | 850 | .build_controls = stac92xx_build_controls, |
833 | .build_pcms = stac92xx_build_pcms, | 851 | .build_pcms = stac92xx_build_pcms, |
834 | .init = stac92xx_init, | 852 | .init = stac92xx_init, |
835 | .free = stac92xx_free, | 853 | .free = stac92xx_free, |
854 | #ifdef CONFIG_PM | ||
855 | .resume = stac92xx_resume, | ||
856 | #endif | ||
836 | }; | 857 | }; |
837 | 858 | ||
838 | static int patch_stac9200(struct hda_codec *codec) | 859 | static int patch_stac9200(struct hda_codec *codec) |