Loading sound/pci/hda/patch_sigmatel.c +0 −132 Original line number Diff line number Diff line Loading @@ -228,7 +228,6 @@ struct sigmatel_spec { /* playback */ struct hda_input_mux *mono_mux; struct hda_input_mux *amp_mux; unsigned int cur_mmux; struct hda_multi_out multiout; hda_nid_t dac_nids[5]; Loading Loading @@ -281,7 +280,6 @@ struct sigmatel_spec { unsigned int cur_smux[2]; unsigned int cur_amux; hda_nid_t *amp_nids; unsigned int num_amps; unsigned int powerdown_adcs; /* i/o switches */ Loading @@ -300,7 +298,6 @@ struct sigmatel_spec { struct hda_input_mux private_dimux; struct hda_input_mux private_imux; struct hda_input_mux private_smux; struct hda_input_mux private_amp_mux; struct hda_input_mux private_mono_mux; }; Loading Loading @@ -590,34 +587,6 @@ static hda_nid_t stac9205_pin_nids[12] = { 0x21, 0x22, }; #define stac92xx_amp_volume_info snd_hda_mixer_amp_volume_info static int stac92xx_amp_volume_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; hda_nid_t nid = spec->amp_nids[spec->cur_amux]; kcontrol->private_value ^= get_amp_nid(kcontrol); kcontrol->private_value |= nid; return snd_hda_mixer_amp_volume_get(kcontrol, ucontrol); } static int stac92xx_amp_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; hda_nid_t nid = spec->amp_nids[spec->cur_amux]; kcontrol->private_value ^= get_amp_nid(kcontrol); kcontrol->private_value |= nid; return snd_hda_mixer_amp_volume_put(kcontrol, ucontrol); } static int stac92xx_dmux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { Loading Loading @@ -813,41 +782,6 @@ static int stac92xx_mono_mux_enum_put(struct snd_kcontrol *kcontrol, spec->mono_nid, &spec->cur_mmux); } static int stac92xx_amp_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; return snd_hda_input_mux_info(spec->amp_mux, uinfo); } static int stac92xx_amp_mux_enum_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; ucontrol->value.enumerated.item[0] = spec->cur_amux; return 0; } static int stac92xx_amp_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; struct snd_kcontrol *ctl = snd_hda_find_mixer_ctl(codec, "Amp Capture Volume"); if (!ctl) return -EINVAL; snd_ctl_notify(codec->bus->card, SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO, &ctl->id); return snd_hda_input_mux_put(codec, spec->amp_mux, ucontrol, 0, &spec->cur_amux); } #define stac92xx_aloopback_info snd_ctl_boolean_mono_info static int stac92xx_aloopback_get(struct snd_kcontrol *kcontrol, Loading Loading @@ -1002,31 +936,6 @@ static struct hda_verb stac9205_core_init[] = { .put = stac92xx_mono_mux_enum_put, \ } #define STAC_AMP_MUX \ { \ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ .name = "Amp Selector Capture Switch", \ .count = 1, \ .info = stac92xx_amp_mux_enum_info, \ .get = stac92xx_amp_mux_enum_get, \ .put = stac92xx_amp_mux_enum_put, \ } #define STAC_AMP_VOL(xname, nid, chs, idx, dir) \ { \ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ .name = xname, \ .index = 0, \ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | \ SNDRV_CTL_ELEM_ACCESS_TLV_READ | \ SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK, \ .info = stac92xx_amp_volume_info, \ .get = stac92xx_amp_volume_get, \ .put = stac92xx_amp_volume_put, \ .tlv = { .c = snd_hda_mixer_amp_tlv }, \ .private_value = HDA_COMPOSE_AMP_VAL(nid, chs, idx, dir) \ } #define STAC_ANALOG_LOOPBACK(verb_read, verb_write, cnt) \ { \ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ Loading Loading @@ -2698,8 +2607,6 @@ enum { STAC_CTL_WIDGET_VOL, STAC_CTL_WIDGET_MUTE, STAC_CTL_WIDGET_MONO_MUX, STAC_CTL_WIDGET_AMP_MUX, STAC_CTL_WIDGET_AMP_VOL, STAC_CTL_WIDGET_HP_SWITCH, STAC_CTL_WIDGET_IO_SWITCH, STAC_CTL_WIDGET_CLFE_SWITCH, Loading @@ -2710,8 +2617,6 @@ static struct snd_kcontrol_new stac92xx_control_templates[] = { HDA_CODEC_VOLUME(NULL, 0, 0, 0), HDA_CODEC_MUTE(NULL, 0, 0, 0), STAC_MONO_MUX, STAC_AMP_MUX, STAC_AMP_VOL(NULL, 0, 0, 0, 0), STAC_CODEC_HP_SWITCH(NULL), STAC_CODEC_IO_SWITCH(NULL, 0), STAC_CODEC_CLFE_SWITCH(NULL, 0), Loading Loading @@ -3268,37 +3173,6 @@ static int stac92xx_auto_create_mono_output_ctls(struct hda_codec *codec) "Mono Mux", spec->mono_nid); } /* labels for amp mux outputs */ static const char *stac92xx_amp_labels[3] = { "Front Microphone", "Microphone", "Line In", }; /* create amp out controls mux on capable codecs */ static int stac92xx_auto_create_amp_output_ctls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; struct hda_input_mux *amp_mux = &spec->private_amp_mux; int i, err; for (i = 0; i < spec->num_amps; i++) { amp_mux->items[amp_mux->num_items].label = stac92xx_amp_labels[i]; amp_mux->items[amp_mux->num_items].index = i; amp_mux->num_items++; } if (spec->num_amps > 1) { err = stac92xx_add_control(spec, STAC_CTL_WIDGET_AMP_MUX, "Amp Selector Capture Switch", 0); if (err < 0) return err; } return stac92xx_add_control(spec, STAC_CTL_WIDGET_AMP_VOL, "Amp Capture Volume", HDA_COMPOSE_AMP_VAL(spec->amp_nids[0], 3, 0, HDA_INPUT)); } /* create PC beep volume controls */ static int stac92xx_auto_create_beep_ctls(struct hda_codec *codec, hda_nid_t nid) Loading Loading @@ -3869,11 +3743,6 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out if (err < 0) return err; } if (spec->num_amps > 0) { err = stac92xx_auto_create_amp_output_ctls(codec); if (err < 0) return err; } if (spec->num_dmics > 0 && !spec->dinput_mux) if ((err = stac92xx_auto_create_dmic_input_ctls(codec, &spec->autocfg)) < 0) Loading Loading @@ -3910,7 +3779,6 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out spec->dinput_mux = &spec->private_dimux; spec->sinput_mux = &spec->private_smux; spec->mono_mux = &spec->private_mono_mux; spec->amp_mux = &spec->private_amp_mux; return 1; } Loading Loading
sound/pci/hda/patch_sigmatel.c +0 −132 Original line number Diff line number Diff line Loading @@ -228,7 +228,6 @@ struct sigmatel_spec { /* playback */ struct hda_input_mux *mono_mux; struct hda_input_mux *amp_mux; unsigned int cur_mmux; struct hda_multi_out multiout; hda_nid_t dac_nids[5]; Loading Loading @@ -281,7 +280,6 @@ struct sigmatel_spec { unsigned int cur_smux[2]; unsigned int cur_amux; hda_nid_t *amp_nids; unsigned int num_amps; unsigned int powerdown_adcs; /* i/o switches */ Loading @@ -300,7 +298,6 @@ struct sigmatel_spec { struct hda_input_mux private_dimux; struct hda_input_mux private_imux; struct hda_input_mux private_smux; struct hda_input_mux private_amp_mux; struct hda_input_mux private_mono_mux; }; Loading Loading @@ -590,34 +587,6 @@ static hda_nid_t stac9205_pin_nids[12] = { 0x21, 0x22, }; #define stac92xx_amp_volume_info snd_hda_mixer_amp_volume_info static int stac92xx_amp_volume_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; hda_nid_t nid = spec->amp_nids[spec->cur_amux]; kcontrol->private_value ^= get_amp_nid(kcontrol); kcontrol->private_value |= nid; return snd_hda_mixer_amp_volume_get(kcontrol, ucontrol); } static int stac92xx_amp_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; hda_nid_t nid = spec->amp_nids[spec->cur_amux]; kcontrol->private_value ^= get_amp_nid(kcontrol); kcontrol->private_value |= nid; return snd_hda_mixer_amp_volume_put(kcontrol, ucontrol); } static int stac92xx_dmux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { Loading Loading @@ -813,41 +782,6 @@ static int stac92xx_mono_mux_enum_put(struct snd_kcontrol *kcontrol, spec->mono_nid, &spec->cur_mmux); } static int stac92xx_amp_mux_enum_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; return snd_hda_input_mux_info(spec->amp_mux, uinfo); } static int stac92xx_amp_mux_enum_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; ucontrol->value.enumerated.item[0] = spec->cur_amux; return 0; } static int stac92xx_amp_mux_enum_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct sigmatel_spec *spec = codec->spec; struct snd_kcontrol *ctl = snd_hda_find_mixer_ctl(codec, "Amp Capture Volume"); if (!ctl) return -EINVAL; snd_ctl_notify(codec->bus->card, SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO, &ctl->id); return snd_hda_input_mux_put(codec, spec->amp_mux, ucontrol, 0, &spec->cur_amux); } #define stac92xx_aloopback_info snd_ctl_boolean_mono_info static int stac92xx_aloopback_get(struct snd_kcontrol *kcontrol, Loading Loading @@ -1002,31 +936,6 @@ static struct hda_verb stac9205_core_init[] = { .put = stac92xx_mono_mux_enum_put, \ } #define STAC_AMP_MUX \ { \ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ .name = "Amp Selector Capture Switch", \ .count = 1, \ .info = stac92xx_amp_mux_enum_info, \ .get = stac92xx_amp_mux_enum_get, \ .put = stac92xx_amp_mux_enum_put, \ } #define STAC_AMP_VOL(xname, nid, chs, idx, dir) \ { \ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ .name = xname, \ .index = 0, \ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | \ SNDRV_CTL_ELEM_ACCESS_TLV_READ | \ SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK, \ .info = stac92xx_amp_volume_info, \ .get = stac92xx_amp_volume_get, \ .put = stac92xx_amp_volume_put, \ .tlv = { .c = snd_hda_mixer_amp_tlv }, \ .private_value = HDA_COMPOSE_AMP_VAL(nid, chs, idx, dir) \ } #define STAC_ANALOG_LOOPBACK(verb_read, verb_write, cnt) \ { \ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \ Loading Loading @@ -2698,8 +2607,6 @@ enum { STAC_CTL_WIDGET_VOL, STAC_CTL_WIDGET_MUTE, STAC_CTL_WIDGET_MONO_MUX, STAC_CTL_WIDGET_AMP_MUX, STAC_CTL_WIDGET_AMP_VOL, STAC_CTL_WIDGET_HP_SWITCH, STAC_CTL_WIDGET_IO_SWITCH, STAC_CTL_WIDGET_CLFE_SWITCH, Loading @@ -2710,8 +2617,6 @@ static struct snd_kcontrol_new stac92xx_control_templates[] = { HDA_CODEC_VOLUME(NULL, 0, 0, 0), HDA_CODEC_MUTE(NULL, 0, 0, 0), STAC_MONO_MUX, STAC_AMP_MUX, STAC_AMP_VOL(NULL, 0, 0, 0, 0), STAC_CODEC_HP_SWITCH(NULL), STAC_CODEC_IO_SWITCH(NULL, 0), STAC_CODEC_CLFE_SWITCH(NULL, 0), Loading Loading @@ -3268,37 +3173,6 @@ static int stac92xx_auto_create_mono_output_ctls(struct hda_codec *codec) "Mono Mux", spec->mono_nid); } /* labels for amp mux outputs */ static const char *stac92xx_amp_labels[3] = { "Front Microphone", "Microphone", "Line In", }; /* create amp out controls mux on capable codecs */ static int stac92xx_auto_create_amp_output_ctls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; struct hda_input_mux *amp_mux = &spec->private_amp_mux; int i, err; for (i = 0; i < spec->num_amps; i++) { amp_mux->items[amp_mux->num_items].label = stac92xx_amp_labels[i]; amp_mux->items[amp_mux->num_items].index = i; amp_mux->num_items++; } if (spec->num_amps > 1) { err = stac92xx_add_control(spec, STAC_CTL_WIDGET_AMP_MUX, "Amp Selector Capture Switch", 0); if (err < 0) return err; } return stac92xx_add_control(spec, STAC_CTL_WIDGET_AMP_VOL, "Amp Capture Volume", HDA_COMPOSE_AMP_VAL(spec->amp_nids[0], 3, 0, HDA_INPUT)); } /* create PC beep volume controls */ static int stac92xx_auto_create_beep_ctls(struct hda_codec *codec, hda_nid_t nid) Loading Loading @@ -3869,11 +3743,6 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out if (err < 0) return err; } if (spec->num_amps > 0) { err = stac92xx_auto_create_amp_output_ctls(codec); if (err < 0) return err; } if (spec->num_dmics > 0 && !spec->dinput_mux) if ((err = stac92xx_auto_create_dmic_input_ctls(codec, &spec->autocfg)) < 0) Loading Loading @@ -3910,7 +3779,6 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out spec->dinput_mux = &spec->private_dimux; spec->sinput_mux = &spec->private_smux; spec->mono_mux = &spec->private_mono_mux; spec->amp_mux = &spec->private_amp_mux; return 1; } Loading