Skip to content

Commit

Permalink
ALSA: hda - Add snd_hda_gen_free() and snd_hda_gen_check_power_status()
Browse files Browse the repository at this point in the history
Just to remove duplicated codes.
Also fixed EXPORT_SYMBOL() in hda_generic.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Jan 12, 2013
1 parent 76a19c6 commit fce52a3
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 26 deletions.
33 changes: 18 additions & 15 deletions sound/pci/hda/hda_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
};

Expand All @@ -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);
5 changes: 5 additions & 0 deletions sound/pci/hda/hda_generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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 */
12 changes: 1 addition & 11 deletions sound/pci/hda/patch_realtek.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
};
Expand Down

0 comments on commit fce52a3

Please sign in to comment.