diff options
author | Takashi Iwai <tiwai@suse.de> | 2005-12-07 07:56:29 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-01-03 06:30:40 -0500 |
commit | 4a471b7ddfe76e39c1633d5a23a687f4b5fc0d8d (patch) | |
tree | 7ec3b5952d03751e5d5da2d6254f8ce63ba2ba05 | |
parent | f7a9275d949cb0bf1f259a1546e52a0bf518151c (diff) |
[ALSA] hda-codec - Small clean up and fixes
Modules: HDA Codec driver,HDA generic driver
- Common labels for input pins
- Fix and clean up of Realtek codec parsers
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/hda/hda_codec.c | 6 | ||||
-rw-r--r-- | sound/pci/hda/hda_local.h | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_analog.c | 8 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 87 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 5 |
5 files changed, 56 insertions, 52 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index bd375f895ec0..4a6dd97deba6 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -2051,6 +2051,12 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *c | |||
2051 | return 0; | 2051 | return 0; |
2052 | } | 2052 | } |
2053 | 2053 | ||
2054 | /* labels for input pins */ | ||
2055 | const char *auto_pin_cfg_labels[AUTO_PIN_LAST] = { | ||
2056 | "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" | ||
2057 | }; | ||
2058 | |||
2059 | |||
2054 | #ifdef CONFIG_PM | 2060 | #ifdef CONFIG_PM |
2055 | /* | 2061 | /* |
2056 | * power management | 2062 | * power management |
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index a9863eb20c75..c82d2a72d13e 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h | |||
@@ -211,6 +211,8 @@ enum { | |||
211 | AUTO_PIN_LAST | 211 | AUTO_PIN_LAST |
212 | }; | 212 | }; |
213 | 213 | ||
214 | extern const char *auto_pin_cfg_labels[AUTO_PIN_LAST]; | ||
215 | |||
214 | struct auto_pin_cfg { | 216 | struct auto_pin_cfg { |
215 | int line_outs; | 217 | int line_outs; |
216 | hda_nid_t line_out_pins[5]; /* sorted in the order of Front/Surr/CLFE/Side */ | 218 | hda_nid_t line_out_pins[5]; /* sorted in the order of Front/Surr/CLFE/Side */ |
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index d1e1ded27532..1ada1b075c9a 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -1850,18 +1850,16 @@ static int new_analog_input(struct ad198x_spec *spec, hda_nid_t pin, | |||
1850 | static int ad1988_auto_create_analog_input_ctls(struct ad198x_spec *spec, | 1850 | static int ad1988_auto_create_analog_input_ctls(struct ad198x_spec *spec, |
1851 | const struct auto_pin_cfg *cfg) | 1851 | const struct auto_pin_cfg *cfg) |
1852 | { | 1852 | { |
1853 | static char *labels[AUTO_PIN_LAST] = { | ||
1854 | "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" | ||
1855 | }; | ||
1856 | struct hda_input_mux *imux = &spec->private_imux; | 1853 | struct hda_input_mux *imux = &spec->private_imux; |
1857 | int i, err; | 1854 | int i, err; |
1858 | 1855 | ||
1859 | for (i = 0; i < AUTO_PIN_LAST; i++) { | 1856 | for (i = 0; i < AUTO_PIN_LAST; i++) { |
1860 | err = new_analog_input(spec, cfg->input_pins[i], labels[i], | 1857 | err = new_analog_input(spec, cfg->input_pins[i], |
1858 | auto_pin_cfg_labels[i], | ||
1861 | i <= AUTO_PIN_FRONT_MIC); | 1859 | i <= AUTO_PIN_FRONT_MIC); |
1862 | if (err < 0) | 1860 | if (err < 0) |
1863 | return err; | 1861 | return err; |
1864 | imux->items[imux->num_items].label = labels[i]; | 1862 | imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; |
1865 | imux->items[imux->num_items].index = ad1988_pin_to_adc_idx(cfg->input_pins[i]); | 1863 | imux->items[imux->num_items].index = ad1988_pin_to_adc_idx(cfg->input_pins[i]); |
1866 | imux->num_items++; | 1864 | imux->num_items++; |
1867 | } | 1865 | } |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 2a6a4804cb92..cac109268f73 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1259,18 +1259,24 @@ static int alc_build_pcms(struct hda_codec *codec) | |||
1259 | codec->num_pcms = 1; | 1259 | codec->num_pcms = 1; |
1260 | codec->pcm_info = info; | 1260 | codec->pcm_info = info; |
1261 | 1261 | ||
1262 | snd_assert(spec->stream_analog_playback, return -EINVAL); | ||
1263 | snd_assert(spec->stream_analog_capture, return -EINVAL); | ||
1264 | info->name = spec->stream_name_analog; | 1262 | info->name = spec->stream_name_analog; |
1265 | info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_analog_playback); | 1263 | if (spec->stream_analog_playback) { |
1266 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dac_nids[0]; | 1264 | snd_assert(spec->multiout.dac_nids, return -EINVAL); |
1267 | info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_analog_capture); | 1265 | info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_analog_playback); |
1268 | info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adc_nids[0]; | 1266 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dac_nids[0]; |
1269 | 1267 | } | |
1270 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = 0; | 1268 | if (spec->stream_analog_capture) { |
1271 | for (i = 0; i < spec->num_channel_mode; i++) { | 1269 | snd_assert(spec->adc_nids, return -EINVAL); |
1272 | if (spec->channel_mode[i].channels > info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max) { | 1270 | info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_analog_capture); |
1273 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = spec->channel_mode[i].channels; | 1271 | info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adc_nids[0]; |
1272 | } | ||
1273 | |||
1274 | if (spec->channel_mode) { | ||
1275 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = 0; | ||
1276 | for (i = 0; i < spec->num_channel_mode; i++) { | ||
1277 | if (spec->channel_mode[i].channels > info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max) { | ||
1278 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = spec->channel_mode[i].channels; | ||
1279 | } | ||
1274 | } | 1280 | } |
1275 | } | 1281 | } |
1276 | 1282 | ||
@@ -1278,13 +1284,13 @@ static int alc_build_pcms(struct hda_codec *codec) | |||
1278 | codec->num_pcms++; | 1284 | codec->num_pcms++; |
1279 | info++; | 1285 | info++; |
1280 | info->name = spec->stream_name_digital; | 1286 | info->name = spec->stream_name_digital; |
1281 | if (spec->multiout.dig_out_nid) { | 1287 | if (spec->multiout.dig_out_nid && |
1282 | snd_assert(spec->stream_digital_playback, return -EINVAL); | 1288 | spec->stream_digital_playback) { |
1283 | info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_digital_playback); | 1289 | info->stream[SNDRV_PCM_STREAM_PLAYBACK] = *(spec->stream_digital_playback); |
1284 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dig_out_nid; | 1290 | info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dig_out_nid; |
1285 | } | 1291 | } |
1286 | if (spec->dig_in_nid) { | 1292 | if (spec->dig_in_nid && |
1287 | snd_assert(spec->stream_digital_capture, return -EINVAL); | 1293 | spec->stream_digital_capture) { |
1288 | info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_digital_capture); | 1294 | info->stream[SNDRV_PCM_STREAM_CAPTURE] = *(spec->stream_digital_capture); |
1289 | info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in_nid; | 1295 | info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in_nid; |
1290 | } | 1296 | } |
@@ -2091,20 +2097,18 @@ static int new_analog_input(struct alc_spec *spec, hda_nid_t pin, const char *ct | |||
2091 | static int alc880_auto_create_analog_input_ctls(struct alc_spec *spec, | 2097 | static int alc880_auto_create_analog_input_ctls(struct alc_spec *spec, |
2092 | const struct auto_pin_cfg *cfg) | 2098 | const struct auto_pin_cfg *cfg) |
2093 | { | 2099 | { |
2094 | static char *labels[AUTO_PIN_LAST] = { | ||
2095 | "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" | ||
2096 | }; | ||
2097 | struct hda_input_mux *imux = &spec->private_imux; | 2100 | struct hda_input_mux *imux = &spec->private_imux; |
2098 | int i, err, idx; | 2101 | int i, err, idx; |
2099 | 2102 | ||
2100 | for (i = 0; i < AUTO_PIN_LAST; i++) { | 2103 | for (i = 0; i < AUTO_PIN_LAST; i++) { |
2101 | if (alc880_is_input_pin(cfg->input_pins[i])) { | 2104 | if (alc880_is_input_pin(cfg->input_pins[i])) { |
2102 | idx = alc880_input_pin_idx(cfg->input_pins[i]); | 2105 | idx = alc880_input_pin_idx(cfg->input_pins[i]); |
2103 | err = new_analog_input(spec, cfg->input_pins[i], labels[i], | 2106 | err = new_analog_input(spec, cfg->input_pins[i], |
2107 | auto_pin_cfg_labels[i], | ||
2104 | idx, 0x0b); | 2108 | idx, 0x0b); |
2105 | if (err < 0) | 2109 | if (err < 0) |
2106 | return err; | 2110 | return err; |
2107 | imux->items[imux->num_items].label = labels[i]; | 2111 | imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; |
2108 | imux->items[imux->num_items].index = alc880_input_pin_idx(cfg->input_pins[i]); | 2112 | imux->items[imux->num_items].index = alc880_input_pin_idx(cfg->input_pins[i]); |
2109 | imux->num_items++; | 2113 | imux->num_items++; |
2110 | } | 2114 | } |
@@ -2664,6 +2668,8 @@ static struct hda_verb alc260_fujitsu_init_verbs[] = { | |||
2664 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, /* Beep-gen pin */ | 2668 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, /* Beep-gen pin */ |
2665 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)}, /* Line-out pin */ | 2669 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)}, /* Line-out pin */ |
2666 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)}, /* HP-pin pin */ | 2670 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)}, /* HP-pin pin */ |
2671 | |||
2672 | { } | ||
2667 | }; | 2673 | }; |
2668 | 2674 | ||
2669 | static struct hda_pcm_stream alc260_pcm_analog_playback = { | 2675 | static struct hda_pcm_stream alc260_pcm_analog_playback = { |
@@ -2755,28 +2761,27 @@ static int alc260_auto_create_multi_out_ctls(struct alc_spec *spec, | |||
2755 | static int alc260_auto_create_analog_input_ctls(struct alc_spec *spec, | 2761 | static int alc260_auto_create_analog_input_ctls(struct alc_spec *spec, |
2756 | const struct auto_pin_cfg *cfg) | 2762 | const struct auto_pin_cfg *cfg) |
2757 | { | 2763 | { |
2758 | static char *labels[AUTO_PIN_LAST] = { | ||
2759 | "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" | ||
2760 | }; | ||
2761 | struct hda_input_mux *imux = &spec->private_imux; | 2764 | struct hda_input_mux *imux = &spec->private_imux; |
2762 | int i, err, idx; | 2765 | int i, err, idx; |
2763 | 2766 | ||
2764 | for (i = 0; i < AUTO_PIN_LAST; i++) { | 2767 | for (i = 0; i < AUTO_PIN_LAST; i++) { |
2765 | if (cfg->input_pins[i] >= 0x12) { | 2768 | if (cfg->input_pins[i] >= 0x12) { |
2766 | idx = cfg->input_pins[i] - 0x12; | 2769 | idx = cfg->input_pins[i] - 0x12; |
2767 | err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x07); | 2770 | err = new_analog_input(spec, cfg->input_pins[i], |
2771 | auto_pin_cfg_labels[i], idx, 0x07); | ||
2768 | if (err < 0) | 2772 | if (err < 0) |
2769 | return err; | 2773 | return err; |
2770 | imux->items[imux->num_items].label = labels[i]; | 2774 | imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; |
2771 | imux->items[imux->num_items].index = idx; | 2775 | imux->items[imux->num_items].index = idx; |
2772 | imux->num_items++; | 2776 | imux->num_items++; |
2773 | } | 2777 | } |
2774 | if ((cfg->input_pins[i] >= 0x0f) && (cfg->input_pins[i] <= 0x10)){ | 2778 | if ((cfg->input_pins[i] >= 0x0f) && (cfg->input_pins[i] <= 0x10)){ |
2775 | idx = cfg->input_pins[i] - 0x09; | 2779 | idx = cfg->input_pins[i] - 0x09; |
2776 | err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x07); | 2780 | err = new_analog_input(spec, cfg->input_pins[i], |
2781 | auto_pin_cfg_labels[i], idx, 0x07); | ||
2777 | if (err < 0) | 2782 | if (err < 0) |
2778 | return err; | 2783 | return err; |
2779 | imux->items[imux->num_items].label = labels[i]; | 2784 | imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; |
2780 | imux->items[imux->num_items].index = idx; | 2785 | imux->items[imux->num_items].index = idx; |
2781 | imux->num_items++; | 2786 | imux->num_items++; |
2782 | } | 2787 | } |
@@ -2889,11 +2894,11 @@ static int alc260_parse_auto_config(struct hda_codec *codec) | |||
2889 | if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, | 2894 | if ((err = snd_hda_parse_pin_def_config(codec, &spec->autocfg, |
2890 | alc260_ignore)) < 0) | 2895 | alc260_ignore)) < 0) |
2891 | return err; | 2896 | return err; |
2892 | if (! spec->autocfg.line_outs && ! spec->autocfg.speaker_pin && | 2897 | if ((err = alc260_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0) |
2893 | ! spec->autocfg.hp_pin) | 2898 | return err; |
2899 | if (! spec->kctl_alloc) | ||
2894 | return 0; /* can't find valid BIOS pin config */ | 2900 | return 0; /* can't find valid BIOS pin config */ |
2895 | if ((err = alc260_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || | 2901 | if ((err = alc260_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) |
2896 | (err = alc260_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) | ||
2897 | return err; | 2902 | return err; |
2898 | 2903 | ||
2899 | spec->multiout.max_channels = 2; | 2904 | spec->multiout.max_channels = 2; |
@@ -2908,19 +2913,18 @@ static int alc260_parse_auto_config(struct hda_codec *codec) | |||
2908 | spec->input_mux = &spec->private_imux; | 2913 | spec->input_mux = &spec->private_imux; |
2909 | 2914 | ||
2910 | /* check whether NID 0x04 is valid */ | 2915 | /* check whether NID 0x04 is valid */ |
2911 | wcap = snd_hda_param_read(codec, alc260_adc_nids[0], AC_PAR_AUDIO_WIDGET_CAP); | 2916 | wcap = get_wcaps(codec, 0x04); |
2912 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ | 2917 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ |
2913 | if (wcap != AC_WID_AUD_IN) { | 2918 | if (wcap != AC_WID_AUD_IN) { |
2914 | spec->adc_nids = alc260_adc_nids_alt; | 2919 | spec->adc_nids = alc260_adc_nids_alt; |
2915 | spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids_alt); | 2920 | spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids_alt); |
2916 | spec->mixers[spec->num_mixers] = alc260_capture_alt_mixer; | 2921 | spec->mixers[spec->num_mixers] = alc260_capture_alt_mixer; |
2917 | spec->num_mixers++; | ||
2918 | } else { | 2922 | } else { |
2919 | spec->adc_nids = alc260_adc_nids; | 2923 | spec->adc_nids = alc260_adc_nids; |
2920 | spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids); | 2924 | spec->num_adc_nids = ARRAY_SIZE(alc260_adc_nids); |
2921 | spec->mixers[spec->num_mixers] = alc260_capture_mixer; | 2925 | spec->mixers[spec->num_mixers] = alc260_capture_mixer; |
2922 | spec->num_mixers++; | ||
2923 | } | 2926 | } |
2927 | spec->num_mixers++; | ||
2924 | 2928 | ||
2925 | return 1; | 2929 | return 1; |
2926 | } | 2930 | } |
@@ -3582,8 +3586,7 @@ static int patch_alc882(struct hda_codec *codec) | |||
3582 | 3586 | ||
3583 | if (! spec->adc_nids && spec->input_mux) { | 3587 | if (! spec->adc_nids && spec->input_mux) { |
3584 | /* check whether NID 0x07 is valid */ | 3588 | /* check whether NID 0x07 is valid */ |
3585 | unsigned int wcap = snd_hda_param_read(codec, 0x07, | 3589 | unsigned int wcap = get_wcaps(codec, 0x07); |
3586 | AC_PAR_AUDIO_WIDGET_CAP); | ||
3587 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ | 3590 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ |
3588 | if (wcap != AC_WID_AUD_IN) { | 3591 | if (wcap != AC_WID_AUD_IN) { |
3589 | spec->adc_nids = alc882_adc_nids_alt; | 3592 | spec->adc_nids = alc882_adc_nids_alt; |
@@ -3991,8 +3994,8 @@ static int patch_alc262(struct hda_codec *codec) | |||
3991 | 3994 | ||
3992 | if (! spec->adc_nids && spec->input_mux) { | 3995 | if (! spec->adc_nids && spec->input_mux) { |
3993 | /* check whether NID 0x07 is valid */ | 3996 | /* check whether NID 0x07 is valid */ |
3994 | unsigned int wcap = snd_hda_param_read(codec, 0x07, | 3997 | unsigned int wcap = get_wcaps(codec, 0x07); |
3995 | AC_PAR_AUDIO_WIDGET_CAP); | 3998 | |
3996 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ | 3999 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; /* get type */ |
3997 | if (wcap != AC_WID_AUD_IN) { | 4000 | if (wcap != AC_WID_AUD_IN) { |
3998 | spec->adc_nids = alc262_adc_nids_alt; | 4001 | spec->adc_nids = alc262_adc_nids_alt; |
@@ -4423,9 +4426,6 @@ static int alc861_auto_create_hp_ctls(struct alc_spec *spec, hda_nid_t pin) | |||
4423 | /* create playback/capture controls for input pins */ | 4426 | /* create playback/capture controls for input pins */ |
4424 | static int alc861_auto_create_analog_input_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) | 4427 | static int alc861_auto_create_analog_input_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) |
4425 | { | 4428 | { |
4426 | static char *labels[AUTO_PIN_LAST] = { | ||
4427 | "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" | ||
4428 | }; | ||
4429 | struct hda_input_mux *imux = &spec->private_imux; | 4429 | struct hda_input_mux *imux = &spec->private_imux; |
4430 | int i, err, idx, idx1; | 4430 | int i, err, idx, idx1; |
4431 | 4431 | ||
@@ -4455,11 +4455,12 @@ static int alc861_auto_create_analog_input_ctls(struct alc_spec *spec, const str | |||
4455 | continue; | 4455 | continue; |
4456 | } | 4456 | } |
4457 | 4457 | ||
4458 | err = new_analog_input(spec, cfg->input_pins[i], labels[i], idx, 0x15); | 4458 | err = new_analog_input(spec, cfg->input_pins[i], |
4459 | auto_pin_cfg_labels[i], idx, 0x15); | ||
4459 | if (err < 0) | 4460 | if (err < 0) |
4460 | return err; | 4461 | return err; |
4461 | 4462 | ||
4462 | imux->items[imux->num_items].label = labels[i]; | 4463 | imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; |
4463 | imux->items[imux->num_items].index = idx1; | 4464 | imux->items[imux->num_items].index = idx1; |
4464 | imux->num_items++; | 4465 | imux->num_items++; |
4465 | } | 4466 | } |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 8311c9fa0527..61903848cd43 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -702,9 +702,6 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec, struct auto_pin | |||
702 | static int stac92xx_auto_create_analog_input_ctls(struct hda_codec *codec, const struct auto_pin_cfg *cfg) | 702 | static int stac92xx_auto_create_analog_input_ctls(struct hda_codec *codec, const struct auto_pin_cfg *cfg) |
703 | { | 703 | { |
704 | struct sigmatel_spec *spec = codec->spec; | 704 | struct sigmatel_spec *spec = codec->spec; |
705 | static char *labels[AUTO_PIN_LAST] = { | ||
706 | "Mic", "Front Mic", "Line", "Front Line", "CD", "Aux" | ||
707 | }; | ||
708 | struct hda_input_mux *imux = &spec->private_imux; | 705 | struct hda_input_mux *imux = &spec->private_imux; |
709 | hda_nid_t con_lst[HDA_MAX_NUM_INPUTS]; | 706 | hda_nid_t con_lst[HDA_MAX_NUM_INPUTS]; |
710 | int i, j, k; | 707 | int i, j, k; |
@@ -715,7 +712,7 @@ static int stac92xx_auto_create_analog_input_ctls(struct hda_codec *codec, const | |||
715 | /* Enable active pin widget as an input */ | 712 | /* Enable active pin widget as an input */ |
716 | stac92xx_auto_set_pinctl(codec, cfg->input_pins[i], AC_PINCTL_IN_EN); | 713 | stac92xx_auto_set_pinctl(codec, cfg->input_pins[i], AC_PINCTL_IN_EN); |
717 | 714 | ||
718 | imux->items[imux->num_items].label = labels[i]; | 715 | imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; |
719 | 716 | ||
720 | for (j=0; j<spec->num_muxes; j++) { | 717 | for (j=0; j<spec->num_muxes; j++) { |
721 | int num_cons = snd_hda_get_connections(codec, spec->mux_nids[j], con_lst, HDA_MAX_NUM_INPUTS); | 718 | int num_cons = snd_hda_get_connections(codec, spec->mux_nids[j], con_lst, HDA_MAX_NUM_INPUTS); |