Skip to content

Commit

Permalink
ALSA: hda - Export snd_hda_gen_add_kctl()
Browse files Browse the repository at this point in the history
It may be used in other codec drivers, so let it free.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Jan 12, 2013
1 parent 731dc30 commit 12c93df
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
19 changes: 10 additions & 9 deletions sound/pci/hda/hda_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ int snd_hda_gen_spec_init(struct hda_gen_spec *spec)
}
EXPORT_SYMBOL_HDA(snd_hda_gen_spec_init);

static struct snd_kcontrol_new *
add_kctl(struct hda_gen_spec *spec, const char *name,
const struct snd_kcontrol_new *temp)
struct snd_kcontrol_new *
snd_hda_gen_add_kctl(struct hda_gen_spec *spec, const char *name,
const struct snd_kcontrol_new *temp)
{
struct snd_kcontrol_new *knew = snd_array_new(&spec->kctls);
if (!knew)
Expand All @@ -59,6 +59,7 @@ add_kctl(struct hda_gen_spec *spec, const char *name,
return NULL;
return knew;
}
EXPORT_SYMBOL_HDA(snd_hda_gen_add_kctl);

static void free_kctls(struct hda_gen_spec *spec)
{
Expand Down Expand Up @@ -548,7 +549,7 @@ static int add_control(struct hda_gen_spec *spec, int type, const char *name,
{
struct snd_kcontrol_new *knew;

knew = add_kctl(spec, name, &control_templates[type]);
knew = snd_hda_gen_add_kctl(spec, name, &control_templates[type]);
if (!knew)
return -ENOMEM;
knew->index = cidx;
Expand Down Expand Up @@ -1527,7 +1528,7 @@ static int create_multi_channel_mode(struct hda_codec *codec)
struct hda_gen_spec *spec = codec->spec;

if (spec->multi_ios > 0) {
if (!add_kctl(spec, NULL, &channel_mode_enum))
if (!snd_hda_gen_add_kctl(spec, NULL, &channel_mode_enum))
return -ENOMEM;
}
return 0;
Expand Down Expand Up @@ -2086,15 +2087,15 @@ static int create_bind_cap_vol_ctl(struct hda_codec *codec, int idx,
struct snd_kcontrol_new *knew;

if (vol_ctl) {
knew = add_kctl(spec, NULL, &cap_vol_temp);
knew = snd_hda_gen_add_kctl(spec, NULL, &cap_vol_temp);
if (!knew)
return -ENOMEM;
knew->index = idx;
knew->private_value = vol_ctl;
knew->subdevice = HDA_SUBDEV_AMP_FLAG;
}
if (sw_ctl) {
knew = add_kctl(spec, NULL, &cap_sw_temp);
knew = snd_hda_gen_add_kctl(spec, NULL, &cap_sw_temp);
if (!knew)
return -ENOMEM;
knew->index = idx;
Expand Down Expand Up @@ -2171,7 +2172,7 @@ static int create_capture_mixers(struct hda_codec *codec)

if (!spec->auto_mic && imux->num_items > 1) {
struct snd_kcontrol_new *knew;
knew = add_kctl(spec, NULL, &cap_src_temp);
knew = snd_hda_gen_add_kctl(spec, NULL, &cap_src_temp);
if (!knew)
return -ENOMEM;
knew->count = nums;
Expand Down Expand Up @@ -2592,7 +2593,7 @@ static int add_automute_mode_enum(struct hda_codec *codec)
{
struct hda_gen_spec *spec = codec->spec;

if (!add_kctl(spec, NULL, &automute_mode_enum))
if (!snd_hda_gen_add_kctl(spec, NULL, &automute_mode_enum))
return -ENOMEM;
return 0;
}
Expand Down
4 changes: 4 additions & 0 deletions sound/pci/hda/hda_generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,10 @@ snd_hda_add_new_path(struct hda_codec *codec, hda_nid_t from_nid,
void snd_hda_activate_path(struct hda_codec *codec, struct nid_path *path,
bool enable, bool add_aamix);

struct snd_kcontrol_new *
snd_hda_gen_add_kctl(struct hda_gen_spec *spec, const char *name,
const struct snd_kcontrol_new *temp);

int snd_hda_gen_parse_auto_config(struct hda_codec *codec,
const hda_nid_t *ignore_nids);
int snd_hda_gen_build_controls(struct hda_codec *codec);
Expand Down

0 comments on commit 12c93df

Please sign in to comment.