diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-05-16 04:00:49 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-05-16 04:00:49 -0400 |
commit | 812a2cca295ee7f56cd1b988a0f93646285c214a (patch) | |
tree | 814133d9216d3da4707aceda00e24f3b83f8f910 /sound/pci/hda/patch_realtek.c | |
parent | 2fc998907947f92b1b9113faad531d7f5a857987 (diff) |
ALSA: hda - Split codec->name to vendor and chip name strings
Split the name string in hda_codec struct to vendor_name and chip_name
strings to be stored directly from the preset name.
Since mostly only the chip name is referred in many patch_*.c, this
results in the reduction of many codes in the end.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 63 |
1 files changed, 8 insertions, 55 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 1bf9d054aae6..4bc3e7e53555 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -277,13 +277,13 @@ struct alc_spec { | |||
277 | */ | 277 | */ |
278 | unsigned int num_init_verbs; | 278 | unsigned int num_init_verbs; |
279 | 279 | ||
280 | char *stream_name_analog; /* analog PCM stream */ | 280 | char stream_name_analog[16]; /* analog PCM stream */ |
281 | struct hda_pcm_stream *stream_analog_playback; | 281 | struct hda_pcm_stream *stream_analog_playback; |
282 | struct hda_pcm_stream *stream_analog_capture; | 282 | struct hda_pcm_stream *stream_analog_capture; |
283 | struct hda_pcm_stream *stream_analog_alt_playback; | 283 | struct hda_pcm_stream *stream_analog_alt_playback; |
284 | struct hda_pcm_stream *stream_analog_alt_capture; | 284 | struct hda_pcm_stream *stream_analog_alt_capture; |
285 | 285 | ||
286 | char *stream_name_digital; /* digital PCM stream */ | 286 | char stream_name_digital[16]; /* digital PCM stream */ |
287 | struct hda_pcm_stream *stream_digital_playback; | 287 | struct hda_pcm_stream *stream_digital_playback; |
288 | struct hda_pcm_stream *stream_digital_capture; | 288 | struct hda_pcm_stream *stream_digital_capture; |
289 | 289 | ||
@@ -3169,7 +3169,10 @@ static int alc_build_pcms(struct hda_codec *codec) | |||
3169 | if (spec->no_analog) | 3169 | if (spec->no_analog) |
3170 | goto skip_analog; | 3170 | goto skip_analog; |
3171 | 3171 | ||
3172 | snprintf(spec->stream_name_analog, sizeof(spec->stream_name_analog), | ||
3173 | "%s Analog", codec->chip_name); | ||
3172 | info->name = spec->stream_name_analog; | 3174 | info->name = spec->stream_name_analog; |
3175 | |||
3173 | if (spec->stream_analog_playback) { | 3176 | if (spec->stream_analog_playback) { |
3174 | if (snd_BUG_ON(!spec->multiout.dac_nids)) | 3177 | if (snd_BUG_ON(!spec->multiout.dac_nids)) |
3175 | return -EINVAL; | 3178 | return -EINVAL; |
@@ -3195,6 +3198,9 @@ static int alc_build_pcms(struct hda_codec *codec) | |||
3195 | skip_analog: | 3198 | skip_analog: |
3196 | /* SPDIF for stream index #1 */ | 3199 | /* SPDIF for stream index #1 */ |
3197 | if (spec->multiout.dig_out_nid || spec->dig_in_nid) { | 3200 | if (spec->multiout.dig_out_nid || spec->dig_in_nid) { |
3201 | snprintf(spec->stream_name_digital, | ||
3202 | sizeof(spec->stream_name_digital), | ||
3203 | "%s Digital", codec->chip_name); | ||
3198 | codec->num_pcms = 2; | 3204 | codec->num_pcms = 2; |
3199 | codec->slave_dig_outs = spec->multiout.slave_dig_outs; | 3205 | codec->slave_dig_outs = spec->multiout.slave_dig_outs; |
3200 | info = spec->pcm_rec + 1; | 3206 | info = spec->pcm_rec + 1; |
@@ -4432,12 +4438,10 @@ static int patch_alc880(struct hda_codec *codec) | |||
4432 | if (board_config != ALC880_AUTO) | 4438 | if (board_config != ALC880_AUTO) |
4433 | setup_preset(spec, &alc880_presets[board_config]); | 4439 | setup_preset(spec, &alc880_presets[board_config]); |
4434 | 4440 | ||
4435 | spec->stream_name_analog = "ALC880 Analog"; | ||
4436 | spec->stream_analog_playback = &alc880_pcm_analog_playback; | 4441 | spec->stream_analog_playback = &alc880_pcm_analog_playback; |
4437 | spec->stream_analog_capture = &alc880_pcm_analog_capture; | 4442 | spec->stream_analog_capture = &alc880_pcm_analog_capture; |
4438 | spec->stream_analog_alt_capture = &alc880_pcm_analog_alt_capture; | 4443 | spec->stream_analog_alt_capture = &alc880_pcm_analog_alt_capture; |
4439 | 4444 | ||
4440 | spec->stream_name_digital = "ALC880 Digital"; | ||
4441 | spec->stream_digital_playback = &alc880_pcm_digital_playback; | 4445 | spec->stream_digital_playback = &alc880_pcm_digital_playback; |
4442 | spec->stream_digital_capture = &alc880_pcm_digital_capture; | 4446 | spec->stream_digital_capture = &alc880_pcm_digital_capture; |
4443 | 4447 | ||
@@ -6078,11 +6082,9 @@ static int patch_alc260(struct hda_codec *codec) | |||
6078 | if (board_config != ALC260_AUTO) | 6082 | if (board_config != ALC260_AUTO) |
6079 | setup_preset(spec, &alc260_presets[board_config]); | 6083 | setup_preset(spec, &alc260_presets[board_config]); |
6080 | 6084 | ||
6081 | spec->stream_name_analog = "ALC260 Analog"; | ||
6082 | spec->stream_analog_playback = &alc260_pcm_analog_playback; | 6085 | spec->stream_analog_playback = &alc260_pcm_analog_playback; |
6083 | spec->stream_analog_capture = &alc260_pcm_analog_capture; | 6086 | spec->stream_analog_capture = &alc260_pcm_analog_capture; |
6084 | 6087 | ||
6085 | spec->stream_name_digital = "ALC260 Digital"; | ||
6086 | spec->stream_digital_playback = &alc260_pcm_digital_playback; | 6088 | spec->stream_digital_playback = &alc260_pcm_digital_playback; |
6087 | spec->stream_digital_capture = &alc260_pcm_digital_capture; | 6089 | spec->stream_digital_capture = &alc260_pcm_digital_capture; |
6088 | 6090 | ||
@@ -7337,14 +7339,6 @@ static int patch_alc882(struct hda_codec *codec) | |||
7337 | if (board_config != ALC882_AUTO) | 7339 | if (board_config != ALC882_AUTO) |
7338 | setup_preset(spec, &alc882_presets[board_config]); | 7340 | setup_preset(spec, &alc882_presets[board_config]); |
7339 | 7341 | ||
7340 | if (codec->vendor_id == 0x10ec0885) { | ||
7341 | spec->stream_name_analog = "ALC885 Analog"; | ||
7342 | spec->stream_name_digital = "ALC885 Digital"; | ||
7343 | } else { | ||
7344 | spec->stream_name_analog = "ALC882 Analog"; | ||
7345 | spec->stream_name_digital = "ALC882 Digital"; | ||
7346 | } | ||
7347 | |||
7348 | spec->stream_analog_playback = &alc882_pcm_analog_playback; | 7342 | spec->stream_analog_playback = &alc882_pcm_analog_playback; |
7349 | spec->stream_analog_capture = &alc882_pcm_analog_capture; | 7343 | spec->stream_analog_capture = &alc882_pcm_analog_capture; |
7350 | /* FIXME: setup DAC5 */ | 7344 | /* FIXME: setup DAC5 */ |
@@ -9232,13 +9226,6 @@ static int patch_alc883(struct hda_codec *codec) | |||
9232 | 9226 | ||
9233 | switch (codec->vendor_id) { | 9227 | switch (codec->vendor_id) { |
9234 | case 0x10ec0888: | 9228 | case 0x10ec0888: |
9235 | if (codec->revision_id == 0x100101) { | ||
9236 | spec->stream_name_analog = "ALC1200 Analog"; | ||
9237 | spec->stream_name_digital = "ALC1200 Digital"; | ||
9238 | } else { | ||
9239 | spec->stream_name_analog = "ALC888 Analog"; | ||
9240 | spec->stream_name_digital = "ALC888 Digital"; | ||
9241 | } | ||
9242 | if (!spec->num_adc_nids) { | 9229 | if (!spec->num_adc_nids) { |
9243 | spec->num_adc_nids = ARRAY_SIZE(alc883_adc_nids); | 9230 | spec->num_adc_nids = ARRAY_SIZE(alc883_adc_nids); |
9244 | spec->adc_nids = alc883_adc_nids; | 9231 | spec->adc_nids = alc883_adc_nids; |
@@ -9249,8 +9236,6 @@ static int patch_alc883(struct hda_codec *codec) | |||
9249 | spec->init_amp = ALC_INIT_DEFAULT; /* always initialize */ | 9236 | spec->init_amp = ALC_INIT_DEFAULT; /* always initialize */ |
9250 | break; | 9237 | break; |
9251 | case 0x10ec0889: | 9238 | case 0x10ec0889: |
9252 | spec->stream_name_analog = "ALC889 Analog"; | ||
9253 | spec->stream_name_digital = "ALC889 Digital"; | ||
9254 | if (!spec->num_adc_nids) { | 9239 | if (!spec->num_adc_nids) { |
9255 | spec->num_adc_nids = ARRAY_SIZE(alc889_adc_nids); | 9240 | spec->num_adc_nids = ARRAY_SIZE(alc889_adc_nids); |
9256 | spec->adc_nids = alc889_adc_nids; | 9241 | spec->adc_nids = alc889_adc_nids; |
@@ -9261,8 +9246,6 @@ static int patch_alc883(struct hda_codec *codec) | |||
9261 | capture */ | 9246 | capture */ |
9262 | break; | 9247 | break; |
9263 | default: | 9248 | default: |
9264 | spec->stream_name_analog = "ALC883 Analog"; | ||
9265 | spec->stream_name_digital = "ALC883 Digital"; | ||
9266 | if (!spec->num_adc_nids) { | 9249 | if (!spec->num_adc_nids) { |
9267 | spec->num_adc_nids = ARRAY_SIZE(alc883_adc_nids); | 9250 | spec->num_adc_nids = ARRAY_SIZE(alc883_adc_nids); |
9268 | spec->adc_nids = alc883_adc_nids; | 9251 | spec->adc_nids = alc883_adc_nids; |
@@ -11087,11 +11070,9 @@ static int patch_alc262(struct hda_codec *codec) | |||
11087 | if (board_config != ALC262_AUTO) | 11070 | if (board_config != ALC262_AUTO) |
11088 | setup_preset(spec, &alc262_presets[board_config]); | 11071 | setup_preset(spec, &alc262_presets[board_config]); |
11089 | 11072 | ||
11090 | spec->stream_name_analog = "ALC262 Analog"; | ||
11091 | spec->stream_analog_playback = &alc262_pcm_analog_playback; | 11073 | spec->stream_analog_playback = &alc262_pcm_analog_playback; |
11092 | spec->stream_analog_capture = &alc262_pcm_analog_capture; | 11074 | spec->stream_analog_capture = &alc262_pcm_analog_capture; |
11093 | 11075 | ||
11094 | spec->stream_name_digital = "ALC262 Digital"; | ||
11095 | spec->stream_digital_playback = &alc262_pcm_digital_playback; | 11076 | spec->stream_digital_playback = &alc262_pcm_digital_playback; |
11096 | spec->stream_digital_capture = &alc262_pcm_digital_capture; | 11077 | spec->stream_digital_capture = &alc262_pcm_digital_capture; |
11097 | 11078 | ||
@@ -12117,14 +12098,6 @@ static int patch_alc268(struct hda_codec *codec) | |||
12117 | if (board_config != ALC268_AUTO) | 12098 | if (board_config != ALC268_AUTO) |
12118 | setup_preset(spec, &alc268_presets[board_config]); | 12099 | setup_preset(spec, &alc268_presets[board_config]); |
12119 | 12100 | ||
12120 | if (codec->vendor_id == 0x10ec0267) { | ||
12121 | spec->stream_name_analog = "ALC267 Analog"; | ||
12122 | spec->stream_name_digital = "ALC267 Digital"; | ||
12123 | } else { | ||
12124 | spec->stream_name_analog = "ALC268 Analog"; | ||
12125 | spec->stream_name_digital = "ALC268 Digital"; | ||
12126 | } | ||
12127 | |||
12128 | spec->stream_analog_playback = &alc268_pcm_analog_playback; | 12101 | spec->stream_analog_playback = &alc268_pcm_analog_playback; |
12129 | spec->stream_analog_capture = &alc268_pcm_analog_capture; | 12102 | spec->stream_analog_capture = &alc268_pcm_analog_capture; |
12130 | spec->stream_analog_alt_capture = &alc268_pcm_analog_alt_capture; | 12103 | spec->stream_analog_alt_capture = &alc268_pcm_analog_alt_capture; |
@@ -12979,7 +12952,6 @@ static int patch_alc269(struct hda_codec *codec) | |||
12979 | if (board_config != ALC269_AUTO) | 12952 | if (board_config != ALC269_AUTO) |
12980 | setup_preset(spec, &alc269_presets[board_config]); | 12953 | setup_preset(spec, &alc269_presets[board_config]); |
12981 | 12954 | ||
12982 | spec->stream_name_analog = "ALC269 Analog"; | ||
12983 | if (codec->subsystem_id == 0x17aa3bf8) { | 12955 | if (codec->subsystem_id == 0x17aa3bf8) { |
12984 | /* Due to a hardware problem on Lenovo Ideadpad, we need to | 12956 | /* Due to a hardware problem on Lenovo Ideadpad, we need to |
12985 | * fix the sample rate of analog I/O to 44.1kHz | 12957 | * fix the sample rate of analog I/O to 44.1kHz |
@@ -12990,7 +12962,6 @@ static int patch_alc269(struct hda_codec *codec) | |||
12990 | spec->stream_analog_playback = &alc269_pcm_analog_playback; | 12962 | spec->stream_analog_playback = &alc269_pcm_analog_playback; |
12991 | spec->stream_analog_capture = &alc269_pcm_analog_capture; | 12963 | spec->stream_analog_capture = &alc269_pcm_analog_capture; |
12992 | } | 12964 | } |
12993 | spec->stream_name_digital = "ALC269 Digital"; | ||
12994 | spec->stream_digital_playback = &alc269_pcm_digital_playback; | 12965 | spec->stream_digital_playback = &alc269_pcm_digital_playback; |
12995 | spec->stream_digital_capture = &alc269_pcm_digital_capture; | 12966 | spec->stream_digital_capture = &alc269_pcm_digital_capture; |
12996 | 12967 | ||
@@ -14080,11 +14051,9 @@ static int patch_alc861(struct hda_codec *codec) | |||
14080 | if (board_config != ALC861_AUTO) | 14051 | if (board_config != ALC861_AUTO) |
14081 | setup_preset(spec, &alc861_presets[board_config]); | 14052 | setup_preset(spec, &alc861_presets[board_config]); |
14082 | 14053 | ||
14083 | spec->stream_name_analog = "ALC861 Analog"; | ||
14084 | spec->stream_analog_playback = &alc861_pcm_analog_playback; | 14054 | spec->stream_analog_playback = &alc861_pcm_analog_playback; |
14085 | spec->stream_analog_capture = &alc861_pcm_analog_capture; | 14055 | spec->stream_analog_capture = &alc861_pcm_analog_capture; |
14086 | 14056 | ||
14087 | spec->stream_name_digital = "ALC861 Digital"; | ||
14088 | spec->stream_digital_playback = &alc861_pcm_digital_playback; | 14057 | spec->stream_digital_playback = &alc861_pcm_digital_playback; |
14089 | spec->stream_digital_capture = &alc861_pcm_digital_capture; | 14058 | spec->stream_digital_capture = &alc861_pcm_digital_capture; |
14090 | 14059 | ||
@@ -15007,13 +14976,8 @@ static int patch_alc861vd(struct hda_codec *codec) | |||
15007 | setup_preset(spec, &alc861vd_presets[board_config]); | 14976 | setup_preset(spec, &alc861vd_presets[board_config]); |
15008 | 14977 | ||
15009 | if (codec->vendor_id == 0x10ec0660) { | 14978 | if (codec->vendor_id == 0x10ec0660) { |
15010 | spec->stream_name_analog = "ALC660-VD Analog"; | ||
15011 | spec->stream_name_digital = "ALC660-VD Digital"; | ||
15012 | /* always turn on EAPD */ | 14979 | /* always turn on EAPD */ |
15013 | add_verb(spec, alc660vd_eapd_verbs); | 14980 | add_verb(spec, alc660vd_eapd_verbs); |
15014 | } else { | ||
15015 | spec->stream_name_analog = "ALC861VD Analog"; | ||
15016 | spec->stream_name_digital = "ALC861VD Digital"; | ||
15017 | } | 14981 | } |
15018 | 14982 | ||
15019 | spec->stream_analog_playback = &alc861vd_pcm_analog_playback; | 14983 | spec->stream_analog_playback = &alc861vd_pcm_analog_playback; |
@@ -16936,17 +16900,6 @@ static int patch_alc662(struct hda_codec *codec) | |||
16936 | if (board_config != ALC662_AUTO) | 16900 | if (board_config != ALC662_AUTO) |
16937 | setup_preset(spec, &alc662_presets[board_config]); | 16901 | setup_preset(spec, &alc662_presets[board_config]); |
16938 | 16902 | ||
16939 | if (codec->vendor_id == 0x10ec0663) { | ||
16940 | spec->stream_name_analog = "ALC663 Analog"; | ||
16941 | spec->stream_name_digital = "ALC663 Digital"; | ||
16942 | } else if (codec->vendor_id == 0x10ec0272) { | ||
16943 | spec->stream_name_analog = "ALC272 Analog"; | ||
16944 | spec->stream_name_digital = "ALC272 Digital"; | ||
16945 | } else { | ||
16946 | spec->stream_name_analog = "ALC662 Analog"; | ||
16947 | spec->stream_name_digital = "ALC662 Digital"; | ||
16948 | } | ||
16949 | |||
16950 | spec->stream_analog_playback = &alc662_pcm_analog_playback; | 16903 | spec->stream_analog_playback = &alc662_pcm_analog_playback; |
16951 | spec->stream_analog_capture = &alc662_pcm_analog_capture; | 16904 | spec->stream_analog_capture = &alc662_pcm_analog_capture; |
16952 | 16905 | ||