ALSA: hda - Add snd_hda_gen_free() and snd_hda_gen_check_power_status()
authorTakashi Iwai <tiwai@suse.de>
Mon, 7 Jan 2013 11:42:48 +0000 (12:42 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sat, 12 Jan 2013 07:43:56 +0000 (08:43 +0100)
Just to remove duplicated codes.
Also fixed EXPORT_SYMBOL() in hda_generic.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_generic.c
sound/pci/hda/hda_generic.h
sound/pci/hda/patch_realtek.c

index 28ad5e98b341941db069406e205fbc7637fec2eb..1fb31975ee38f417a2a8f178c1579f6634061953 100644 (file)
@@ -3939,36 +3939,39 @@ int snd_hda_gen_init(struct hda_codec *codec)
        hda_call_check_power_status(codec, 0x01);
        return 0;
 }
-EXPORT_SYMBOL(snd_hda_gen_init);
+EXPORT_SYMBOL_HDA(snd_hda_gen_init);
 
 
-/*
- * the generic codec support
- */
+void snd_hda_gen_free(struct hda_codec *codec)
+{
+       snd_hda_gen_spec_free(codec->spec);
+       kfree(codec->spec);
+       codec->spec = NULL;
+}
+EXPORT_SYMBOL_HDA(snd_hda_gen_free);
 
 #ifdef CONFIG_PM
-static int generic_check_power_status(struct hda_codec *codec, hda_nid_t nid)
+int snd_hda_gen_check_power_status(struct hda_codec *codec, hda_nid_t nid)
 {
        struct hda_gen_spec *spec = codec->spec;
        return snd_hda_check_amp_list_power(codec, &spec->loopback, nid);
 }
+EXPORT_SYMBOL_HDA(snd_hda_gen_check_power_status);
 #endif
 
-static void generic_free(struct hda_codec *codec)
-{
-       snd_hda_gen_spec_free(codec->spec);
-       kfree(codec->spec);
-       codec->spec = NULL;
-}
+
+/*
+ * the generic codec support
+ */
 
 static const struct hda_codec_ops generic_patch_ops = {
        .build_controls = snd_hda_gen_build_controls,
        .build_pcms = snd_hda_gen_build_pcms,
        .init = snd_hda_gen_init,
-       .free = generic_free,
+       .free = snd_hda_gen_free,
        .unsol_event = snd_hda_jack_unsol_event,
 #ifdef CONFIG_PM
-       .check_power_status = generic_check_power_status,
+       .check_power_status = snd_hda_gen_check_power_status,
 #endif
 };
 
@@ -3995,7 +3998,7 @@ int snd_hda_parse_generic_codec(struct hda_codec *codec)
        return 0;
 
 error:
-       generic_free(codec);
+       snd_hda_gen_free(codec);
        return err;
 }
-EXPORT_SYMBOL(snd_hda_parse_generic_codec);
+EXPORT_SYMBOL_HDA(snd_hda_parse_generic_codec);
index 7e84c22f98b8948f7e7dd3c45304cdee491832fb..00a1eab2c0b266ecd06d1360e5f7c3c81434ddb4 100644 (file)
@@ -218,6 +218,7 @@ int snd_hda_gen_spec_init(struct hda_gen_spec *spec);
 void snd_hda_gen_spec_free(struct hda_gen_spec *spec);
 
 int snd_hda_gen_init(struct hda_codec *codec);
+void snd_hda_gen_free(struct hda_codec *codec);
 
 struct nid_path *snd_hda_get_nid_path(struct hda_codec *codec,
                                      hda_nid_t from_nid, hda_nid_t to_nid);
@@ -257,4 +258,8 @@ void snd_hda_gen_mic_autoswitch(struct hda_codec *codec,
                                struct hda_jack_tbl *jack);
 void snd_hda_gen_update_outputs(struct hda_codec *codec);
 
+#ifdef CONFIG_PM
+int snd_hda_gen_check_power_status(struct hda_codec *codec, hda_nid_t nid);
+#endif
+
 #endif /* __SOUND_HDA_GENERIC_H */
index fee21625e509c885b412981bf15e499f2feffdff..bcb258bca99dcbbb940d280c3ca9ba0a1c4df001 100644 (file)
@@ -808,14 +808,6 @@ static int alc_init(struct hda_codec *codec)
        return 0;
 }
 
-#ifdef CONFIG_PM
-static int alc_check_power_status(struct hda_codec *codec, hda_nid_t nid)
-{
-       struct alc_spec *spec = codec->spec;
-       return snd_hda_check_amp_list_power(codec, &spec->gen.loopback, nid);
-}
-#endif
-
 static inline void alc_shutup(struct hda_codec *codec)
 {
        struct alc_spec *spec = codec->spec;
@@ -876,10 +868,8 @@ static const struct hda_codec_ops alc_patch_ops = {
        .unsol_event = snd_hda_jack_unsol_event,
 #ifdef CONFIG_PM
        .resume = alc_resume,
-#endif
-#ifdef CONFIG_PM
        .suspend = alc_suspend,
-       .check_power_status = alc_check_power_status,
+       .check_power_status = snd_hda_gen_check_power_status,
 #endif
        .reboot_notify = alc_shutup,
 };