diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 1006 |
1 files changed, 503 insertions, 503 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 46959159a77e..5b79080be76a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -313,9 +313,9 @@ enum { | |||
313 | 313 | ||
314 | struct alc_spec { | 314 | struct alc_spec { |
315 | /* codec parameterization */ | 315 | /* codec parameterization */ |
316 | struct snd_kcontrol_new *mixers[5]; /* mixer arrays */ | 316 | const struct snd_kcontrol_new *mixers[5]; /* mixer arrays */ |
317 | unsigned int num_mixers; | 317 | unsigned int num_mixers; |
318 | struct snd_kcontrol_new *cap_mixer; /* capture mixer */ | 318 | const struct snd_kcontrol_new *cap_mixer; /* capture mixer */ |
319 | unsigned int beep_amp; /* beep amp value, set via set_beep_amp() */ | 319 | unsigned int beep_amp; /* beep amp value, set via set_beep_amp() */ |
320 | 320 | ||
321 | const struct hda_verb *init_verbs[10]; /* initialization verbs | 321 | const struct hda_verb *init_verbs[10]; /* initialization verbs |
@@ -325,14 +325,14 @@ struct alc_spec { | |||
325 | unsigned int num_init_verbs; | 325 | unsigned int num_init_verbs; |
326 | 326 | ||
327 | char stream_name_analog[32]; /* analog PCM stream */ | 327 | char stream_name_analog[32]; /* analog PCM stream */ |
328 | struct hda_pcm_stream *stream_analog_playback; | 328 | const struct hda_pcm_stream *stream_analog_playback; |
329 | struct hda_pcm_stream *stream_analog_capture; | 329 | const struct hda_pcm_stream *stream_analog_capture; |
330 | struct hda_pcm_stream *stream_analog_alt_playback; | 330 | const struct hda_pcm_stream *stream_analog_alt_playback; |
331 | struct hda_pcm_stream *stream_analog_alt_capture; | 331 | const struct hda_pcm_stream *stream_analog_alt_capture; |
332 | 332 | ||
333 | char stream_name_digital[32]; /* digital PCM stream */ | 333 | char stream_name_digital[32]; /* digital PCM stream */ |
334 | struct hda_pcm_stream *stream_digital_playback; | 334 | const struct hda_pcm_stream *stream_digital_playback; |
335 | struct hda_pcm_stream *stream_digital_capture; | 335 | const struct hda_pcm_stream *stream_digital_capture; |
336 | 336 | ||
337 | /* playback */ | 337 | /* playback */ |
338 | struct hda_multi_out multiout; /* playback set-up | 338 | struct hda_multi_out multiout; /* playback set-up |
@@ -435,10 +435,10 @@ struct alc_spec { | |||
435 | * configuration template - to be copied to the spec instance | 435 | * configuration template - to be copied to the spec instance |
436 | */ | 436 | */ |
437 | struct alc_config_preset { | 437 | struct alc_config_preset { |
438 | struct snd_kcontrol_new *mixers[5]; /* should be identical size | 438 | const struct snd_kcontrol_new *mixers[5]; /* should be identical size |
439 | * with spec | 439 | * with spec |
440 | */ | 440 | */ |
441 | struct snd_kcontrol_new *cap_mixer; /* capture mixer */ | 441 | const struct snd_kcontrol_new *cap_mixer; /* capture mixer */ |
442 | const struct hda_verb *init_verbs[5]; | 442 | const struct hda_verb *init_verbs[5]; |
443 | unsigned int num_dacs; | 443 | unsigned int num_dacs; |
444 | hda_nid_t *dac_nids; | 444 | hda_nid_t *dac_nids; |
@@ -459,7 +459,7 @@ struct alc_config_preset { | |||
459 | void (*setup)(struct hda_codec *); | 459 | void (*setup)(struct hda_codec *); |
460 | void (*init_hook)(struct hda_codec *); | 460 | void (*init_hook)(struct hda_codec *); |
461 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 461 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
462 | struct hda_amp_list *loopbacks; | 462 | const struct hda_amp_list *loopbacks; |
463 | void (*power_hook)(struct hda_codec *codec); | 463 | void (*power_hook)(struct hda_codec *codec); |
464 | #endif | 464 | #endif |
465 | }; | 465 | }; |
@@ -586,11 +586,11 @@ static int alc_ch_mode_put(struct snd_kcontrol *kcontrol, | |||
586 | * NIDs 0x0f and 0x10 have been observed to have this behaviour as of | 586 | * NIDs 0x0f and 0x10 have been observed to have this behaviour as of |
587 | * March 2006. | 587 | * March 2006. |
588 | */ | 588 | */ |
589 | static char *alc_pin_mode_names[] = { | 589 | static const char * const alc_pin_mode_names[] = { |
590 | "Mic 50pc bias", "Mic 80pc bias", | 590 | "Mic 50pc bias", "Mic 80pc bias", |
591 | "Line in", "Line out", "Headphone out", | 591 | "Line in", "Line out", "Headphone out", |
592 | }; | 592 | }; |
593 | static unsigned char alc_pin_mode_values[] = { | 593 | static const unsigned char alc_pin_mode_values[] = { |
594 | PIN_VREF50, PIN_VREF80, PIN_IN, PIN_OUT, PIN_HP, | 594 | PIN_VREF50, PIN_VREF80, PIN_IN, PIN_OUT, PIN_HP, |
595 | }; | 595 | }; |
596 | /* The control can present all 5 options, or it can limit the options based | 596 | /* The control can present all 5 options, or it can limit the options based |
@@ -609,7 +609,7 @@ static unsigned char alc_pin_mode_values[] = { | |||
609 | /* Info about the pin modes supported by the different pin direction modes. | 609 | /* Info about the pin modes supported by the different pin direction modes. |
610 | * For each direction the minimum and maximum values are given. | 610 | * For each direction the minimum and maximum values are given. |
611 | */ | 611 | */ |
612 | static signed char alc_pin_mode_dir_info[5][2] = { | 612 | static const signed char alc_pin_mode_dir_info[5][2] = { |
613 | { 0, 2 }, /* ALC_PIN_DIR_IN */ | 613 | { 0, 2 }, /* ALC_PIN_DIR_IN */ |
614 | { 3, 4 }, /* ALC_PIN_DIR_OUT */ | 614 | { 3, 4 }, /* ALC_PIN_DIR_OUT */ |
615 | { 0, 4 }, /* ALC_PIN_DIR_INOUT */ | 615 | { 0, 4 }, /* ALC_PIN_DIR_INOUT */ |
@@ -926,7 +926,7 @@ static void alc_fixup_autocfg_pin_nums(struct hda_codec *codec) | |||
926 | 926 | ||
927 | /* | 927 | /* |
928 | */ | 928 | */ |
929 | static void add_mixer(struct alc_spec *spec, struct snd_kcontrol_new *mix) | 929 | static void add_mixer(struct alc_spec *spec, const struct snd_kcontrol_new *mix) |
930 | { | 930 | { |
931 | if (snd_BUG_ON(spec->num_mixers >= ARRAY_SIZE(spec->mixers))) | 931 | if (snd_BUG_ON(spec->num_mixers >= ARRAY_SIZE(spec->mixers))) |
932 | return; | 932 | return; |
@@ -997,21 +997,21 @@ static void setup_preset(struct hda_codec *codec, | |||
997 | } | 997 | } |
998 | 998 | ||
999 | /* Enable GPIO mask and set output */ | 999 | /* Enable GPIO mask and set output */ |
1000 | static struct hda_verb alc_gpio1_init_verbs[] = { | 1000 | static const struct hda_verb alc_gpio1_init_verbs[] = { |
1001 | {0x01, AC_VERB_SET_GPIO_MASK, 0x01}, | 1001 | {0x01, AC_VERB_SET_GPIO_MASK, 0x01}, |
1002 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x01}, | 1002 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x01}, |
1003 | {0x01, AC_VERB_SET_GPIO_DATA, 0x01}, | 1003 | {0x01, AC_VERB_SET_GPIO_DATA, 0x01}, |
1004 | { } | 1004 | { } |
1005 | }; | 1005 | }; |
1006 | 1006 | ||
1007 | static struct hda_verb alc_gpio2_init_verbs[] = { | 1007 | static const struct hda_verb alc_gpio2_init_verbs[] = { |
1008 | {0x01, AC_VERB_SET_GPIO_MASK, 0x02}, | 1008 | {0x01, AC_VERB_SET_GPIO_MASK, 0x02}, |
1009 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02}, | 1009 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02}, |
1010 | {0x01, AC_VERB_SET_GPIO_DATA, 0x02}, | 1010 | {0x01, AC_VERB_SET_GPIO_DATA, 0x02}, |
1011 | { } | 1011 | { } |
1012 | }; | 1012 | }; |
1013 | 1013 | ||
1014 | static struct hda_verb alc_gpio3_init_verbs[] = { | 1014 | static const struct hda_verb alc_gpio3_init_verbs[] = { |
1015 | {0x01, AC_VERB_SET_GPIO_MASK, 0x03}, | 1015 | {0x01, AC_VERB_SET_GPIO_MASK, 0x03}, |
1016 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x03}, | 1016 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x03}, |
1017 | {0x01, AC_VERB_SET_GPIO_DATA, 0x03}, | 1017 | {0x01, AC_VERB_SET_GPIO_DATA, 0x03}, |
@@ -1503,7 +1503,7 @@ static int alc_automute_mode_put(struct snd_kcontrol *kcontrol, | |||
1503 | return 1; | 1503 | return 1; |
1504 | } | 1504 | } |
1505 | 1505 | ||
1506 | static struct snd_kcontrol_new alc_automute_mode_enum = { | 1506 | static const struct snd_kcontrol_new alc_automute_mode_enum = { |
1507 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 1507 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
1508 | .name = "Auto-Mute Mode", | 1508 | .name = "Auto-Mute Mode", |
1509 | .info = alc_automute_mode_info, | 1509 | .info = alc_automute_mode_info, |
@@ -2086,7 +2086,7 @@ static void alc_auto_parse_digital(struct hda_codec *codec) | |||
2086 | /* | 2086 | /* |
2087 | * 2ch mode | 2087 | * 2ch mode |
2088 | */ | 2088 | */ |
2089 | static struct hda_verb alc888_4ST_ch2_intel_init[] = { | 2089 | static const struct hda_verb alc888_4ST_ch2_intel_init[] = { |
2090 | /* Mic-in jack as mic in */ | 2090 | /* Mic-in jack as mic in */ |
2091 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 2091 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
2092 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 2092 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
@@ -2101,7 +2101,7 @@ static struct hda_verb alc888_4ST_ch2_intel_init[] = { | |||
2101 | /* | 2101 | /* |
2102 | * 4ch mode | 2102 | * 4ch mode |
2103 | */ | 2103 | */ |
2104 | static struct hda_verb alc888_4ST_ch4_intel_init[] = { | 2104 | static const struct hda_verb alc888_4ST_ch4_intel_init[] = { |
2105 | /* Mic-in jack as mic in */ | 2105 | /* Mic-in jack as mic in */ |
2106 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 2106 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
2107 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 2107 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
@@ -2116,7 +2116,7 @@ static struct hda_verb alc888_4ST_ch4_intel_init[] = { | |||
2116 | /* | 2116 | /* |
2117 | * 6ch mode | 2117 | * 6ch mode |
2118 | */ | 2118 | */ |
2119 | static struct hda_verb alc888_4ST_ch6_intel_init[] = { | 2119 | static const struct hda_verb alc888_4ST_ch6_intel_init[] = { |
2120 | /* Mic-in jack as CLFE */ | 2120 | /* Mic-in jack as CLFE */ |
2121 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 2121 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
2122 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 2122 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
@@ -2131,7 +2131,7 @@ static struct hda_verb alc888_4ST_ch6_intel_init[] = { | |||
2131 | /* | 2131 | /* |
2132 | * 8ch mode | 2132 | * 8ch mode |
2133 | */ | 2133 | */ |
2134 | static struct hda_verb alc888_4ST_ch8_intel_init[] = { | 2134 | static const struct hda_verb alc888_4ST_ch8_intel_init[] = { |
2135 | /* Mic-in jack as CLFE */ | 2135 | /* Mic-in jack as CLFE */ |
2136 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 2136 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
2137 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 2137 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
@@ -2143,7 +2143,7 @@ static struct hda_verb alc888_4ST_ch8_intel_init[] = { | |||
2143 | { } /* end */ | 2143 | { } /* end */ |
2144 | }; | 2144 | }; |
2145 | 2145 | ||
2146 | static struct hda_channel_mode alc888_4ST_8ch_intel_modes[4] = { | 2146 | static const struct hda_channel_mode alc888_4ST_8ch_intel_modes[4] = { |
2147 | { 2, alc888_4ST_ch2_intel_init }, | 2147 | { 2, alc888_4ST_ch2_intel_init }, |
2148 | { 4, alc888_4ST_ch4_intel_init }, | 2148 | { 4, alc888_4ST_ch4_intel_init }, |
2149 | { 6, alc888_4ST_ch6_intel_init }, | 2149 | { 6, alc888_4ST_ch6_intel_init }, |
@@ -2154,7 +2154,7 @@ static struct hda_channel_mode alc888_4ST_8ch_intel_modes[4] = { | |||
2154 | * ALC888 Fujitsu Siemens Amillo xa3530 | 2154 | * ALC888 Fujitsu Siemens Amillo xa3530 |
2155 | */ | 2155 | */ |
2156 | 2156 | ||
2157 | static struct hda_verb alc888_fujitsu_xa3530_verbs[] = { | 2157 | static const struct hda_verb alc888_fujitsu_xa3530_verbs[] = { |
2158 | /* Front Mic: set to PIN_IN (empty by default) */ | 2158 | /* Front Mic: set to PIN_IN (empty by default) */ |
2159 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 2159 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
2160 | /* Connect Internal HP to Front */ | 2160 | /* Connect Internal HP to Front */ |
@@ -2223,7 +2223,7 @@ static void alc888_fujitsu_xa3530_setup(struct hda_codec *codec) | |||
2223 | * ALC888 Acer Aspire 4930G model | 2223 | * ALC888 Acer Aspire 4930G model |
2224 | */ | 2224 | */ |
2225 | 2225 | ||
2226 | static struct hda_verb alc888_acer_aspire_4930g_verbs[] = { | 2226 | static const struct hda_verb alc888_acer_aspire_4930g_verbs[] = { |
2227 | /* Front Mic: set to PIN_IN (empty by default) */ | 2227 | /* Front Mic: set to PIN_IN (empty by default) */ |
2228 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 2228 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
2229 | /* Unselect Front Mic by default in input mixer 3 */ | 2229 | /* Unselect Front Mic by default in input mixer 3 */ |
@@ -2246,7 +2246,7 @@ static struct hda_verb alc888_acer_aspire_4930g_verbs[] = { | |||
2246 | * ALC888 Acer Aspire 6530G model | 2246 | * ALC888 Acer Aspire 6530G model |
2247 | */ | 2247 | */ |
2248 | 2248 | ||
2249 | static struct hda_verb alc888_acer_aspire_6530g_verbs[] = { | 2249 | static const struct hda_verb alc888_acer_aspire_6530g_verbs[] = { |
2250 | /* Route to built-in subwoofer as well as speakers */ | 2250 | /* Route to built-in subwoofer as well as speakers */ |
2251 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 2251 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
2252 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 2252 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
@@ -2276,7 +2276,7 @@ static struct hda_verb alc888_acer_aspire_6530g_verbs[] = { | |||
2276 | *ALC888 Acer Aspire 7730G model | 2276 | *ALC888 Acer Aspire 7730G model |
2277 | */ | 2277 | */ |
2278 | 2278 | ||
2279 | static struct hda_verb alc888_acer_aspire_7730G_verbs[] = { | 2279 | static const struct hda_verb alc888_acer_aspire_7730G_verbs[] = { |
2280 | /* Bias voltage on for external mic port */ | 2280 | /* Bias voltage on for external mic port */ |
2281 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN | PIN_VREF80}, | 2281 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN | PIN_VREF80}, |
2282 | /* Front Mic: set to PIN_IN (empty by default) */ | 2282 | /* Front Mic: set to PIN_IN (empty by default) */ |
@@ -2306,7 +2306,7 @@ static struct hda_verb alc888_acer_aspire_7730G_verbs[] = { | |||
2306 | * ALC889 Acer Aspire 8930G model | 2306 | * ALC889 Acer Aspire 8930G model |
2307 | */ | 2307 | */ |
2308 | 2308 | ||
2309 | static struct hda_verb alc889_acer_aspire_8930g_verbs[] = { | 2309 | static const struct hda_verb alc889_acer_aspire_8930g_verbs[] = { |
2310 | /* Front Mic: set to PIN_IN (empty by default) */ | 2310 | /* Front Mic: set to PIN_IN (empty by default) */ |
2311 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 2311 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
2312 | /* Unselect Front Mic by default in input mixer 3 */ | 2312 | /* Unselect Front Mic by default in input mixer 3 */ |
@@ -2352,7 +2352,7 @@ static struct hda_verb alc889_acer_aspire_8930g_verbs[] = { | |||
2352 | { } | 2352 | { } |
2353 | }; | 2353 | }; |
2354 | 2354 | ||
2355 | static struct hda_input_mux alc888_2_capture_sources[2] = { | 2355 | static const struct hda_input_mux alc888_2_capture_sources[2] = { |
2356 | /* Front mic only available on one ADC */ | 2356 | /* Front mic only available on one ADC */ |
2357 | { | 2357 | { |
2358 | .num_items = 4, | 2358 | .num_items = 4, |
@@ -2373,7 +2373,7 @@ static struct hda_input_mux alc888_2_capture_sources[2] = { | |||
2373 | } | 2373 | } |
2374 | }; | 2374 | }; |
2375 | 2375 | ||
2376 | static struct hda_input_mux alc888_acer_aspire_6530_sources[2] = { | 2376 | static const struct hda_input_mux alc888_acer_aspire_6530_sources[2] = { |
2377 | /* Interal mic only available on one ADC */ | 2377 | /* Interal mic only available on one ADC */ |
2378 | { | 2378 | { |
2379 | .num_items = 5, | 2379 | .num_items = 5, |
@@ -2396,7 +2396,7 @@ static struct hda_input_mux alc888_acer_aspire_6530_sources[2] = { | |||
2396 | } | 2396 | } |
2397 | }; | 2397 | }; |
2398 | 2398 | ||
2399 | static struct hda_input_mux alc889_capture_sources[3] = { | 2399 | static const struct hda_input_mux alc889_capture_sources[3] = { |
2400 | /* Digital mic only available on first "ADC" */ | 2400 | /* Digital mic only available on first "ADC" */ |
2401 | { | 2401 | { |
2402 | .num_items = 5, | 2402 | .num_items = 5, |
@@ -2428,7 +2428,7 @@ static struct hda_input_mux alc889_capture_sources[3] = { | |||
2428 | } | 2428 | } |
2429 | }; | 2429 | }; |
2430 | 2430 | ||
2431 | static struct snd_kcontrol_new alc888_base_mixer[] = { | 2431 | static const struct snd_kcontrol_new alc888_base_mixer[] = { |
2432 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2432 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2433 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 2433 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
2434 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2434 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -2450,7 +2450,7 @@ static struct snd_kcontrol_new alc888_base_mixer[] = { | |||
2450 | { } /* end */ | 2450 | { } /* end */ |
2451 | }; | 2451 | }; |
2452 | 2452 | ||
2453 | static struct snd_kcontrol_new alc888_acer_aspire_4930g_mixer[] = { | 2453 | static const struct snd_kcontrol_new alc888_acer_aspire_4930g_mixer[] = { |
2454 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2454 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2455 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 2455 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
2456 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2456 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -2472,7 +2472,7 @@ static struct snd_kcontrol_new alc888_acer_aspire_4930g_mixer[] = { | |||
2472 | { } /* end */ | 2472 | { } /* end */ |
2473 | }; | 2473 | }; |
2474 | 2474 | ||
2475 | static struct snd_kcontrol_new alc889_acer_aspire_8930g_mixer[] = { | 2475 | static const struct snd_kcontrol_new alc889_acer_aspire_8930g_mixer[] = { |
2476 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2476 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2477 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 2477 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
2478 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2478 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -2569,7 +2569,7 @@ static hda_nid_t alc880_adc_nids_alt[2] = { | |||
2569 | #define ALC880_DIGOUT_NID 0x06 | 2569 | #define ALC880_DIGOUT_NID 0x06 |
2570 | #define ALC880_DIGIN_NID 0x0a | 2570 | #define ALC880_DIGIN_NID 0x0a |
2571 | 2571 | ||
2572 | static struct hda_input_mux alc880_capture_source = { | 2572 | static const struct hda_input_mux alc880_capture_source = { |
2573 | .num_items = 4, | 2573 | .num_items = 4, |
2574 | .items = { | 2574 | .items = { |
2575 | { "Mic", 0x0 }, | 2575 | { "Mic", 0x0 }, |
@@ -2581,7 +2581,7 @@ static struct hda_input_mux alc880_capture_source = { | |||
2581 | 2581 | ||
2582 | /* channel source setting (2/6 channel selection for 3-stack) */ | 2582 | /* channel source setting (2/6 channel selection for 3-stack) */ |
2583 | /* 2ch mode */ | 2583 | /* 2ch mode */ |
2584 | static struct hda_verb alc880_threestack_ch2_init[] = { | 2584 | static const struct hda_verb alc880_threestack_ch2_init[] = { |
2585 | /* set line-in to input, mute it */ | 2585 | /* set line-in to input, mute it */ |
2586 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 2586 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
2587 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 2587 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
@@ -2592,7 +2592,7 @@ static struct hda_verb alc880_threestack_ch2_init[] = { | |||
2592 | }; | 2592 | }; |
2593 | 2593 | ||
2594 | /* 6ch mode */ | 2594 | /* 6ch mode */ |
2595 | static struct hda_verb alc880_threestack_ch6_init[] = { | 2595 | static const struct hda_verb alc880_threestack_ch6_init[] = { |
2596 | /* set line-in to output, unmute it */ | 2596 | /* set line-in to output, unmute it */ |
2597 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 2597 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
2598 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 2598 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
@@ -2602,12 +2602,12 @@ static struct hda_verb alc880_threestack_ch6_init[] = { | |||
2602 | { } /* end */ | 2602 | { } /* end */ |
2603 | }; | 2603 | }; |
2604 | 2604 | ||
2605 | static struct hda_channel_mode alc880_threestack_modes[2] = { | 2605 | static const struct hda_channel_mode alc880_threestack_modes[2] = { |
2606 | { 2, alc880_threestack_ch2_init }, | 2606 | { 2, alc880_threestack_ch2_init }, |
2607 | { 6, alc880_threestack_ch6_init }, | 2607 | { 6, alc880_threestack_ch6_init }, |
2608 | }; | 2608 | }; |
2609 | 2609 | ||
2610 | static struct snd_kcontrol_new alc880_three_stack_mixer[] = { | 2610 | static const struct snd_kcontrol_new alc880_three_stack_mixer[] = { |
2611 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2611 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2612 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 2612 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
2613 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0f, 0x0, HDA_OUTPUT), | 2613 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0f, 0x0, HDA_OUTPUT), |
@@ -2752,14 +2752,14 @@ static int alc_cap_sw_put(struct snd_kcontrol *kcontrol, | |||
2752 | } | 2752 | } |
2753 | 2753 | ||
2754 | #define DEFINE_CAPMIX(num) \ | 2754 | #define DEFINE_CAPMIX(num) \ |
2755 | static struct snd_kcontrol_new alc_capture_mixer ## num[] = { \ | 2755 | static const struct snd_kcontrol_new alc_capture_mixer ## num[] = { \ |
2756 | _DEFINE_CAPMIX(num), \ | 2756 | _DEFINE_CAPMIX(num), \ |
2757 | _DEFINE_CAPSRC(num), \ | 2757 | _DEFINE_CAPSRC(num), \ |
2758 | { } /* end */ \ | 2758 | { } /* end */ \ |
2759 | } | 2759 | } |
2760 | 2760 | ||
2761 | #define DEFINE_CAPMIX_NOSRC(num) \ | 2761 | #define DEFINE_CAPMIX_NOSRC(num) \ |
2762 | static struct snd_kcontrol_new alc_capture_mixer_nosrc ## num[] = { \ | 2762 | static const struct snd_kcontrol_new alc_capture_mixer_nosrc ## num[] = { \ |
2763 | _DEFINE_CAPMIX(num), \ | 2763 | _DEFINE_CAPMIX(num), \ |
2764 | { } /* end */ \ | 2764 | { } /* end */ \ |
2765 | } | 2765 | } |
@@ -2782,7 +2782,7 @@ DEFINE_CAPMIX_NOSRC(3); | |||
2782 | */ | 2782 | */ |
2783 | 2783 | ||
2784 | /* additional mixers to alc880_three_stack_mixer */ | 2784 | /* additional mixers to alc880_three_stack_mixer */ |
2785 | static struct snd_kcontrol_new alc880_five_stack_mixer[] = { | 2785 | static const struct snd_kcontrol_new alc880_five_stack_mixer[] = { |
2786 | HDA_CODEC_VOLUME("Side Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2786 | HDA_CODEC_VOLUME("Side Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
2787 | HDA_BIND_MUTE("Side Playback Switch", 0x0d, 2, HDA_INPUT), | 2787 | HDA_BIND_MUTE("Side Playback Switch", 0x0d, 2, HDA_INPUT), |
2788 | { } /* end */ | 2788 | { } /* end */ |
@@ -2790,7 +2790,7 @@ static struct snd_kcontrol_new alc880_five_stack_mixer[] = { | |||
2790 | 2790 | ||
2791 | /* channel source setting (6/8 channel selection for 5-stack) */ | 2791 | /* channel source setting (6/8 channel selection for 5-stack) */ |
2792 | /* 6ch mode */ | 2792 | /* 6ch mode */ |
2793 | static struct hda_verb alc880_fivestack_ch6_init[] = { | 2793 | static const struct hda_verb alc880_fivestack_ch6_init[] = { |
2794 | /* set line-in to input, mute it */ | 2794 | /* set line-in to input, mute it */ |
2795 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 2795 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
2796 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 2796 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
@@ -2798,14 +2798,14 @@ static struct hda_verb alc880_fivestack_ch6_init[] = { | |||
2798 | }; | 2798 | }; |
2799 | 2799 | ||
2800 | /* 8ch mode */ | 2800 | /* 8ch mode */ |
2801 | static struct hda_verb alc880_fivestack_ch8_init[] = { | 2801 | static const struct hda_verb alc880_fivestack_ch8_init[] = { |
2802 | /* set line-in to output, unmute it */ | 2802 | /* set line-in to output, unmute it */ |
2803 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 2803 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
2804 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 2804 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
2805 | { } /* end */ | 2805 | { } /* end */ |
2806 | }; | 2806 | }; |
2807 | 2807 | ||
2808 | static struct hda_channel_mode alc880_fivestack_modes[2] = { | 2808 | static const struct hda_channel_mode alc880_fivestack_modes[2] = { |
2809 | { 6, alc880_fivestack_ch6_init }, | 2809 | { 6, alc880_fivestack_ch6_init }, |
2810 | { 8, alc880_fivestack_ch8_init }, | 2810 | { 8, alc880_fivestack_ch8_init }, |
2811 | }; | 2811 | }; |
@@ -2825,7 +2825,7 @@ static hda_nid_t alc880_6st_dac_nids[4] = { | |||
2825 | 0x02, 0x03, 0x04, 0x05 | 2825 | 0x02, 0x03, 0x04, 0x05 |
2826 | }; | 2826 | }; |
2827 | 2827 | ||
2828 | static struct hda_input_mux alc880_6stack_capture_source = { | 2828 | static const struct hda_input_mux alc880_6stack_capture_source = { |
2829 | .num_items = 4, | 2829 | .num_items = 4, |
2830 | .items = { | 2830 | .items = { |
2831 | { "Mic", 0x0 }, | 2831 | { "Mic", 0x0 }, |
@@ -2836,11 +2836,11 @@ static struct hda_input_mux alc880_6stack_capture_source = { | |||
2836 | }; | 2836 | }; |
2837 | 2837 | ||
2838 | /* fixed 8-channels */ | 2838 | /* fixed 8-channels */ |
2839 | static struct hda_channel_mode alc880_sixstack_modes[1] = { | 2839 | static const struct hda_channel_mode alc880_sixstack_modes[1] = { |
2840 | { 8, NULL }, | 2840 | { 8, NULL }, |
2841 | }; | 2841 | }; |
2842 | 2842 | ||
2843 | static struct snd_kcontrol_new alc880_six_stack_mixer[] = { | 2843 | static const struct snd_kcontrol_new alc880_six_stack_mixer[] = { |
2844 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2844 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2845 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 2845 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
2846 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2846 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -2901,12 +2901,12 @@ static hda_nid_t alc880_w810_dac_nids[3] = { | |||
2901 | }; | 2901 | }; |
2902 | 2902 | ||
2903 | /* fixed 6 channels */ | 2903 | /* fixed 6 channels */ |
2904 | static struct hda_channel_mode alc880_w810_modes[1] = { | 2904 | static const struct hda_channel_mode alc880_w810_modes[1] = { |
2905 | { 6, NULL } | 2905 | { 6, NULL } |
2906 | }; | 2906 | }; |
2907 | 2907 | ||
2908 | /* Pin assignment: Front = 0x14, Surr = 0x15, CLFE = 0x16, HP = 0x1b */ | 2908 | /* Pin assignment: Front = 0x14, Surr = 0x15, CLFE = 0x16, HP = 0x1b */ |
2909 | static struct snd_kcontrol_new alc880_w810_base_mixer[] = { | 2909 | static const struct snd_kcontrol_new alc880_w810_base_mixer[] = { |
2910 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2910 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2911 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 2911 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
2912 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2912 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -2934,11 +2934,11 @@ static hda_nid_t alc880_z71v_dac_nids[1] = { | |||
2934 | #define ALC880_Z71V_HP_DAC 0x03 | 2934 | #define ALC880_Z71V_HP_DAC 0x03 |
2935 | 2935 | ||
2936 | /* fixed 2 channels */ | 2936 | /* fixed 2 channels */ |
2937 | static struct hda_channel_mode alc880_2_jack_modes[1] = { | 2937 | static const struct hda_channel_mode alc880_2_jack_modes[1] = { |
2938 | { 2, NULL } | 2938 | { 2, NULL } |
2939 | }; | 2939 | }; |
2940 | 2940 | ||
2941 | static struct snd_kcontrol_new alc880_z71v_mixer[] = { | 2941 | static const struct snd_kcontrol_new alc880_z71v_mixer[] = { |
2942 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2942 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2943 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 2943 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
2944 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2944 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -2963,7 +2963,7 @@ static hda_nid_t alc880_f1734_dac_nids[1] = { | |||
2963 | }; | 2963 | }; |
2964 | #define ALC880_F1734_HP_DAC 0x02 | 2964 | #define ALC880_F1734_HP_DAC 0x02 |
2965 | 2965 | ||
2966 | static struct snd_kcontrol_new alc880_f1734_mixer[] = { | 2966 | static const struct snd_kcontrol_new alc880_f1734_mixer[] = { |
2967 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2967 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2968 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), | 2968 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), |
2969 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 2969 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -2975,7 +2975,7 @@ static struct snd_kcontrol_new alc880_f1734_mixer[] = { | |||
2975 | { } /* end */ | 2975 | { } /* end */ |
2976 | }; | 2976 | }; |
2977 | 2977 | ||
2978 | static struct hda_input_mux alc880_f1734_capture_source = { | 2978 | static const struct hda_input_mux alc880_f1734_capture_source = { |
2979 | .num_items = 2, | 2979 | .num_items = 2, |
2980 | .items = { | 2980 | .items = { |
2981 | { "Mic", 0x1 }, | 2981 | { "Mic", 0x1 }, |
@@ -2995,7 +2995,7 @@ static struct hda_input_mux alc880_f1734_capture_source = { | |||
2995 | #define alc880_asus_dac_nids alc880_w810_dac_nids /* identical with w810 */ | 2995 | #define alc880_asus_dac_nids alc880_w810_dac_nids /* identical with w810 */ |
2996 | #define alc880_asus_modes alc880_threestack_modes /* 2/6 channel mode */ | 2996 | #define alc880_asus_modes alc880_threestack_modes /* 2/6 channel mode */ |
2997 | 2997 | ||
2998 | static struct snd_kcontrol_new alc880_asus_mixer[] = { | 2998 | static const struct snd_kcontrol_new alc880_asus_mixer[] = { |
2999 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 2999 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
3000 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 3000 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
3001 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 3001 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -3029,14 +3029,14 @@ static struct snd_kcontrol_new alc880_asus_mixer[] = { | |||
3029 | */ | 3029 | */ |
3030 | 3030 | ||
3031 | /* additional mixers to alc880_asus_mixer */ | 3031 | /* additional mixers to alc880_asus_mixer */ |
3032 | static struct snd_kcontrol_new alc880_asus_w1v_mixer[] = { | 3032 | static const struct snd_kcontrol_new alc880_asus_w1v_mixer[] = { |
3033 | HDA_CODEC_VOLUME("Line2 Playback Volume", 0x0b, 0x03, HDA_INPUT), | 3033 | HDA_CODEC_VOLUME("Line2 Playback Volume", 0x0b, 0x03, HDA_INPUT), |
3034 | HDA_CODEC_MUTE("Line2 Playback Switch", 0x0b, 0x03, HDA_INPUT), | 3034 | HDA_CODEC_MUTE("Line2 Playback Switch", 0x0b, 0x03, HDA_INPUT), |
3035 | { } /* end */ | 3035 | { } /* end */ |
3036 | }; | 3036 | }; |
3037 | 3037 | ||
3038 | /* TCL S700 */ | 3038 | /* TCL S700 */ |
3039 | static struct snd_kcontrol_new alc880_tcl_s700_mixer[] = { | 3039 | static const struct snd_kcontrol_new alc880_tcl_s700_mixer[] = { |
3040 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 3040 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
3041 | HDA_CODEC_MUTE("Front Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | 3041 | HDA_CODEC_MUTE("Front Playback Switch", 0x1b, 0x0, HDA_OUTPUT), |
3042 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 3042 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -3050,7 +3050,7 @@ static struct snd_kcontrol_new alc880_tcl_s700_mixer[] = { | |||
3050 | }; | 3050 | }; |
3051 | 3051 | ||
3052 | /* Uniwill */ | 3052 | /* Uniwill */ |
3053 | static struct snd_kcontrol_new alc880_uniwill_mixer[] = { | 3053 | static const struct snd_kcontrol_new alc880_uniwill_mixer[] = { |
3054 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 3054 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
3055 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), | 3055 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), |
3056 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 3056 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -3077,7 +3077,7 @@ static struct snd_kcontrol_new alc880_uniwill_mixer[] = { | |||
3077 | { } /* end */ | 3077 | { } /* end */ |
3078 | }; | 3078 | }; |
3079 | 3079 | ||
3080 | static struct snd_kcontrol_new alc880_fujitsu_mixer[] = { | 3080 | static const struct snd_kcontrol_new alc880_fujitsu_mixer[] = { |
3081 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 3081 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
3082 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), | 3082 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), |
3083 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 3083 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -3091,7 +3091,7 @@ static struct snd_kcontrol_new alc880_fujitsu_mixer[] = { | |||
3091 | { } /* end */ | 3091 | { } /* end */ |
3092 | }; | 3092 | }; |
3093 | 3093 | ||
3094 | static struct snd_kcontrol_new alc880_uniwill_p53_mixer[] = { | 3094 | static const struct snd_kcontrol_new alc880_uniwill_p53_mixer[] = { |
3095 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 3095 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
3096 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), | 3096 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), |
3097 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 3097 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -3154,7 +3154,7 @@ static void alc_free_kctls(struct hda_codec *codec); | |||
3154 | 3154 | ||
3155 | #ifdef CONFIG_SND_HDA_INPUT_BEEP | 3155 | #ifdef CONFIG_SND_HDA_INPUT_BEEP |
3156 | /* additional beep mixers; the actual parameters are overwritten at build */ | 3156 | /* additional beep mixers; the actual parameters are overwritten at build */ |
3157 | static struct snd_kcontrol_new alc_beep_mixer[] = { | 3157 | static const struct snd_kcontrol_new alc_beep_mixer[] = { |
3158 | HDA_CODEC_VOLUME("Beep Playback Volume", 0, 0, HDA_INPUT), | 3158 | HDA_CODEC_VOLUME("Beep Playback Volume", 0, 0, HDA_INPUT), |
3159 | HDA_CODEC_MUTE_BEEP("Beep Playback Switch", 0, 0, HDA_INPUT), | 3159 | HDA_CODEC_MUTE_BEEP("Beep Playback Switch", 0, 0, HDA_INPUT), |
3160 | { } /* end */ | 3160 | { } /* end */ |
@@ -3165,7 +3165,7 @@ static int alc_build_controls(struct hda_codec *codec) | |||
3165 | { | 3165 | { |
3166 | struct alc_spec *spec = codec->spec; | 3166 | struct alc_spec *spec = codec->spec; |
3167 | struct snd_kcontrol *kctl = NULL; | 3167 | struct snd_kcontrol *kctl = NULL; |
3168 | struct snd_kcontrol_new *knew; | 3168 | const struct snd_kcontrol_new *knew; |
3169 | int i, j, err; | 3169 | int i, j, err; |
3170 | unsigned int u; | 3170 | unsigned int u; |
3171 | hda_nid_t nid; | 3171 | hda_nid_t nid; |
@@ -3202,7 +3202,7 @@ static int alc_build_controls(struct hda_codec *codec) | |||
3202 | #ifdef CONFIG_SND_HDA_INPUT_BEEP | 3202 | #ifdef CONFIG_SND_HDA_INPUT_BEEP |
3203 | /* create beep controls if needed */ | 3203 | /* create beep controls if needed */ |
3204 | if (spec->beep_amp) { | 3204 | if (spec->beep_amp) { |
3205 | struct snd_kcontrol_new *knew; | 3205 | const struct snd_kcontrol_new *knew; |
3206 | for (knew = alc_beep_mixer; knew->name; knew++) { | 3206 | for (knew = alc_beep_mixer; knew->name; knew++) { |
3207 | struct snd_kcontrol *kctl; | 3207 | struct snd_kcontrol *kctl; |
3208 | kctl = snd_ctl_new1(knew, codec); | 3208 | kctl = snd_ctl_new1(knew, codec); |
@@ -3319,7 +3319,7 @@ static int alc_build_controls(struct hda_codec *codec) | |||
3319 | /* | 3319 | /* |
3320 | * generic initialization of ADC, input mixers and output mixers | 3320 | * generic initialization of ADC, input mixers and output mixers |
3321 | */ | 3321 | */ |
3322 | static struct hda_verb alc880_volume_init_verbs[] = { | 3322 | static const struct hda_verb alc880_volume_init_verbs[] = { |
3323 | /* | 3323 | /* |
3324 | * Unmute ADC0-2 and set the default input to mic-in | 3324 | * Unmute ADC0-2 and set the default input to mic-in |
3325 | */ | 3325 | */ |
@@ -3370,7 +3370,7 @@ static struct hda_verb alc880_volume_init_verbs[] = { | |||
3370 | * 3-stack pin configuration: | 3370 | * 3-stack pin configuration: |
3371 | * front = 0x14, mic/clfe = 0x18, HP = 0x19, line/surr = 0x1a, f-mic = 0x1b | 3371 | * front = 0x14, mic/clfe = 0x18, HP = 0x19, line/surr = 0x1a, f-mic = 0x1b |
3372 | */ | 3372 | */ |
3373 | static struct hda_verb alc880_pin_3stack_init_verbs[] = { | 3373 | static const struct hda_verb alc880_pin_3stack_init_verbs[] = { |
3374 | /* | 3374 | /* |
3375 | * preset connection lists of input pins | 3375 | * preset connection lists of input pins |
3376 | * 0 = front, 1 = rear_surr, 2 = CLFE, 3 = surround | 3376 | * 0 = front, 1 = rear_surr, 2 = CLFE, 3 = surround |
@@ -3408,7 +3408,7 @@ static struct hda_verb alc880_pin_3stack_init_verbs[] = { | |||
3408 | * front = 0x14, surround = 0x17, clfe = 0x16, mic = 0x18, HP = 0x19, | 3408 | * front = 0x14, surround = 0x17, clfe = 0x16, mic = 0x18, HP = 0x19, |
3409 | * line-in/side = 0x1a, f-mic = 0x1b | 3409 | * line-in/side = 0x1a, f-mic = 0x1b |
3410 | */ | 3410 | */ |
3411 | static struct hda_verb alc880_pin_5stack_init_verbs[] = { | 3411 | static const struct hda_verb alc880_pin_5stack_init_verbs[] = { |
3412 | /* | 3412 | /* |
3413 | * preset connection lists of input pins | 3413 | * preset connection lists of input pins |
3414 | * 0 = front, 1 = rear_surr, 2 = CLFE, 3 = surround | 3414 | * 0 = front, 1 = rear_surr, 2 = CLFE, 3 = surround |
@@ -3452,7 +3452,7 @@ static struct hda_verb alc880_pin_5stack_init_verbs[] = { | |||
3452 | * W810 pin configuration: | 3452 | * W810 pin configuration: |
3453 | * front = 0x14, surround = 0x15, clfe = 0x16, HP = 0x1b | 3453 | * front = 0x14, surround = 0x15, clfe = 0x16, HP = 0x1b |
3454 | */ | 3454 | */ |
3455 | static struct hda_verb alc880_pin_w810_init_verbs[] = { | 3455 | static const struct hda_verb alc880_pin_w810_init_verbs[] = { |
3456 | /* hphone/speaker input selector: front DAC */ | 3456 | /* hphone/speaker input selector: front DAC */ |
3457 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x0}, | 3457 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x0}, |
3458 | 3458 | ||
@@ -3473,7 +3473,7 @@ static struct hda_verb alc880_pin_w810_init_verbs[] = { | |||
3473 | * Z71V pin configuration: | 3473 | * Z71V pin configuration: |
3474 | * Speaker-out = 0x14, HP = 0x15, Mic = 0x18, Line-in = 0x1a, Mic2 = 0x1b (?) | 3474 | * Speaker-out = 0x14, HP = 0x15, Mic = 0x18, Line-in = 0x1a, Mic2 = 0x1b (?) |
3475 | */ | 3475 | */ |
3476 | static struct hda_verb alc880_pin_z71v_init_verbs[] = { | 3476 | static const struct hda_verb alc880_pin_z71v_init_verbs[] = { |
3477 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 3477 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
3478 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 3478 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
3479 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 3479 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -3492,7 +3492,7 @@ static struct hda_verb alc880_pin_z71v_init_verbs[] = { | |||
3492 | * front = 0x14, surr = 0x15, clfe = 0x16, side = 0x17, mic = 0x18, | 3492 | * front = 0x14, surr = 0x15, clfe = 0x16, side = 0x17, mic = 0x18, |
3493 | * f-mic = 0x19, line = 0x1a, HP = 0x1b | 3493 | * f-mic = 0x19, line = 0x1a, HP = 0x1b |
3494 | */ | 3494 | */ |
3495 | static struct hda_verb alc880_pin_6stack_init_verbs[] = { | 3495 | static const struct hda_verb alc880_pin_6stack_init_verbs[] = { |
3496 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ | 3496 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ |
3497 | 3497 | ||
3498 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 3498 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
@@ -3522,7 +3522,7 @@ static struct hda_verb alc880_pin_6stack_init_verbs[] = { | |||
3522 | * HP = 0x14, InternalSpeaker = 0x15, mic = 0x18, internal mic = 0x19, | 3522 | * HP = 0x14, InternalSpeaker = 0x15, mic = 0x18, internal mic = 0x19, |
3523 | * line = 0x1a | 3523 | * line = 0x1a |
3524 | */ | 3524 | */ |
3525 | static struct hda_verb alc880_uniwill_init_verbs[] = { | 3525 | static const struct hda_verb alc880_uniwill_init_verbs[] = { |
3526 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ | 3526 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ |
3527 | 3527 | ||
3528 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 3528 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -3560,7 +3560,7 @@ static struct hda_verb alc880_uniwill_init_verbs[] = { | |||
3560 | * Uniwill P53 | 3560 | * Uniwill P53 |
3561 | * HP = 0x14, InternalSpeaker = 0x15, mic = 0x19, | 3561 | * HP = 0x14, InternalSpeaker = 0x15, mic = 0x19, |
3562 | */ | 3562 | */ |
3563 | static struct hda_verb alc880_uniwill_p53_init_verbs[] = { | 3563 | static const struct hda_verb alc880_uniwill_p53_init_verbs[] = { |
3564 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ | 3564 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ |
3565 | 3565 | ||
3566 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 3566 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -3589,7 +3589,7 @@ static struct hda_verb alc880_uniwill_p53_init_verbs[] = { | |||
3589 | { } | 3589 | { } |
3590 | }; | 3590 | }; |
3591 | 3591 | ||
3592 | static struct hda_verb alc880_beep_init_verbs[] = { | 3592 | static const struct hda_verb alc880_beep_init_verbs[] = { |
3593 | { 0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(5) }, | 3593 | { 0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(5) }, |
3594 | { } | 3594 | { } |
3595 | }; | 3595 | }; |
@@ -3677,7 +3677,7 @@ static void alc880_uniwill_p53_unsol_event(struct hda_codec *codec, | |||
3677 | * F1734 pin configuration: | 3677 | * F1734 pin configuration: |
3678 | * HP = 0x14, speaker-out = 0x15, mic = 0x18 | 3678 | * HP = 0x14, speaker-out = 0x15, mic = 0x18 |
3679 | */ | 3679 | */ |
3680 | static struct hda_verb alc880_pin_f1734_init_verbs[] = { | 3680 | static const struct hda_verb alc880_pin_f1734_init_verbs[] = { |
3681 | {0x07, AC_VERB_SET_CONNECT_SEL, 0x01}, | 3681 | {0x07, AC_VERB_SET_CONNECT_SEL, 0x01}, |
3682 | {0x10, AC_VERB_SET_CONNECT_SEL, 0x02}, | 3682 | {0x10, AC_VERB_SET_CONNECT_SEL, 0x02}, |
3683 | {0x11, AC_VERB_SET_CONNECT_SEL, 0x00}, | 3683 | {0x11, AC_VERB_SET_CONNECT_SEL, 0x00}, |
@@ -3709,7 +3709,7 @@ static struct hda_verb alc880_pin_f1734_init_verbs[] = { | |||
3709 | * ASUS pin configuration: | 3709 | * ASUS pin configuration: |
3710 | * HP/front = 0x14, surr = 0x15, clfe = 0x16, mic = 0x18, line = 0x1a | 3710 | * HP/front = 0x14, surr = 0x15, clfe = 0x16, mic = 0x18, line = 0x1a |
3711 | */ | 3711 | */ |
3712 | static struct hda_verb alc880_pin_asus_init_verbs[] = { | 3712 | static const struct hda_verb alc880_pin_asus_init_verbs[] = { |
3713 | {0x10, AC_VERB_SET_CONNECT_SEL, 0x02}, | 3713 | {0x10, AC_VERB_SET_CONNECT_SEL, 0x02}, |
3714 | {0x11, AC_VERB_SET_CONNECT_SEL, 0x00}, | 3714 | {0x11, AC_VERB_SET_CONNECT_SEL, 0x00}, |
3715 | {0x12, AC_VERB_SET_CONNECT_SEL, 0x01}, | 3715 | {0x12, AC_VERB_SET_CONNECT_SEL, 0x01}, |
@@ -3743,7 +3743,7 @@ static struct hda_verb alc880_pin_asus_init_verbs[] = { | |||
3743 | #define alc880_gpio3_init_verbs alc_gpio3_init_verbs | 3743 | #define alc880_gpio3_init_verbs alc_gpio3_init_verbs |
3744 | 3744 | ||
3745 | /* Clevo m520g init */ | 3745 | /* Clevo m520g init */ |
3746 | static struct hda_verb alc880_pin_clevo_init_verbs[] = { | 3746 | static const struct hda_verb alc880_pin_clevo_init_verbs[] = { |
3747 | /* headphone output */ | 3747 | /* headphone output */ |
3748 | {0x11, AC_VERB_SET_CONNECT_SEL, 0x01}, | 3748 | {0x11, AC_VERB_SET_CONNECT_SEL, 0x01}, |
3749 | /* line-out */ | 3749 | /* line-out */ |
@@ -3771,7 +3771,7 @@ static struct hda_verb alc880_pin_clevo_init_verbs[] = { | |||
3771 | { } | 3771 | { } |
3772 | }; | 3772 | }; |
3773 | 3773 | ||
3774 | static struct hda_verb alc880_pin_tcl_S700_init_verbs[] = { | 3774 | static const struct hda_verb alc880_pin_tcl_S700_init_verbs[] = { |
3775 | /* change to EAPD mode */ | 3775 | /* change to EAPD mode */ |
3776 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, | 3776 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, |
3777 | {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, | 3777 | {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, |
@@ -3814,7 +3814,7 @@ static hda_nid_t alc880_lg_dac_nids[3] = { | |||
3814 | }; | 3814 | }; |
3815 | 3815 | ||
3816 | /* seems analog CD is not working */ | 3816 | /* seems analog CD is not working */ |
3817 | static struct hda_input_mux alc880_lg_capture_source = { | 3817 | static const struct hda_input_mux alc880_lg_capture_source = { |
3818 | .num_items = 3, | 3818 | .num_items = 3, |
3819 | .items = { | 3819 | .items = { |
3820 | { "Mic", 0x1 }, | 3820 | { "Mic", 0x1 }, |
@@ -3824,34 +3824,34 @@ static struct hda_input_mux alc880_lg_capture_source = { | |||
3824 | }; | 3824 | }; |
3825 | 3825 | ||
3826 | /* 2,4,6 channel modes */ | 3826 | /* 2,4,6 channel modes */ |
3827 | static struct hda_verb alc880_lg_ch2_init[] = { | 3827 | static const struct hda_verb alc880_lg_ch2_init[] = { |
3828 | /* set line-in and mic-in to input */ | 3828 | /* set line-in and mic-in to input */ |
3829 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 3829 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
3830 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 3830 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
3831 | { } | 3831 | { } |
3832 | }; | 3832 | }; |
3833 | 3833 | ||
3834 | static struct hda_verb alc880_lg_ch4_init[] = { | 3834 | static const struct hda_verb alc880_lg_ch4_init[] = { |
3835 | /* set line-in to out and mic-in to input */ | 3835 | /* set line-in to out and mic-in to input */ |
3836 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, | 3836 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, |
3837 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 3837 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
3838 | { } | 3838 | { } |
3839 | }; | 3839 | }; |
3840 | 3840 | ||
3841 | static struct hda_verb alc880_lg_ch6_init[] = { | 3841 | static const struct hda_verb alc880_lg_ch6_init[] = { |
3842 | /* set line-in and mic-in to output */ | 3842 | /* set line-in and mic-in to output */ |
3843 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, | 3843 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, |
3844 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, | 3844 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, |
3845 | { } | 3845 | { } |
3846 | }; | 3846 | }; |
3847 | 3847 | ||
3848 | static struct hda_channel_mode alc880_lg_ch_modes[3] = { | 3848 | static const struct hda_channel_mode alc880_lg_ch_modes[3] = { |
3849 | { 2, alc880_lg_ch2_init }, | 3849 | { 2, alc880_lg_ch2_init }, |
3850 | { 4, alc880_lg_ch4_init }, | 3850 | { 4, alc880_lg_ch4_init }, |
3851 | { 6, alc880_lg_ch6_init }, | 3851 | { 6, alc880_lg_ch6_init }, |
3852 | }; | 3852 | }; |
3853 | 3853 | ||
3854 | static struct snd_kcontrol_new alc880_lg_mixer[] = { | 3854 | static const struct snd_kcontrol_new alc880_lg_mixer[] = { |
3855 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0f, 0x0, HDA_OUTPUT), | 3855 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0f, 0x0, HDA_OUTPUT), |
3856 | HDA_BIND_MUTE("Front Playback Switch", 0x0f, 2, HDA_INPUT), | 3856 | HDA_BIND_MUTE("Front Playback Switch", 0x0f, 2, HDA_INPUT), |
3857 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 3857 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
@@ -3876,7 +3876,7 @@ static struct snd_kcontrol_new alc880_lg_mixer[] = { | |||
3876 | { } /* end */ | 3876 | { } /* end */ |
3877 | }; | 3877 | }; |
3878 | 3878 | ||
3879 | static struct hda_verb alc880_lg_init_verbs[] = { | 3879 | static const struct hda_verb alc880_lg_init_verbs[] = { |
3880 | /* set capture source to mic-in */ | 3880 | /* set capture source to mic-in */ |
3881 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 3881 | {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
3882 | {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 3882 | {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
@@ -3930,7 +3930,7 @@ static void alc880_lg_setup(struct hda_codec *codec) | |||
3930 | * SPDIF-Out: 0x1e | 3930 | * SPDIF-Out: 0x1e |
3931 | */ | 3931 | */ |
3932 | 3932 | ||
3933 | static struct hda_input_mux alc880_lg_lw_capture_source = { | 3933 | static const struct hda_input_mux alc880_lg_lw_capture_source = { |
3934 | .num_items = 3, | 3934 | .num_items = 3, |
3935 | .items = { | 3935 | .items = { |
3936 | { "Mic", 0x0 }, | 3936 | { "Mic", 0x0 }, |
@@ -3941,7 +3941,7 @@ static struct hda_input_mux alc880_lg_lw_capture_source = { | |||
3941 | 3941 | ||
3942 | #define alc880_lg_lw_modes alc880_threestack_modes | 3942 | #define alc880_lg_lw_modes alc880_threestack_modes |
3943 | 3943 | ||
3944 | static struct snd_kcontrol_new alc880_lg_lw_mixer[] = { | 3944 | static const struct snd_kcontrol_new alc880_lg_lw_mixer[] = { |
3945 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 3945 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
3946 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 3946 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
3947 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0f, 0x0, HDA_OUTPUT), | 3947 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0f, 0x0, HDA_OUTPUT), |
@@ -3966,7 +3966,7 @@ static struct snd_kcontrol_new alc880_lg_lw_mixer[] = { | |||
3966 | { } /* end */ | 3966 | { } /* end */ |
3967 | }; | 3967 | }; |
3968 | 3968 | ||
3969 | static struct hda_verb alc880_lg_lw_init_verbs[] = { | 3969 | static const struct hda_verb alc880_lg_lw_init_verbs[] = { |
3970 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ | 3970 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ |
3971 | {0x10, AC_VERB_SET_CONNECT_SEL, 0x02}, /* mic/clfe */ | 3971 | {0x10, AC_VERB_SET_CONNECT_SEL, 0x02}, /* mic/clfe */ |
3972 | {0x12, AC_VERB_SET_CONNECT_SEL, 0x03}, /* line/surround */ | 3972 | {0x12, AC_VERB_SET_CONNECT_SEL, 0x03}, /* line/surround */ |
@@ -4004,7 +4004,7 @@ static void alc880_lg_lw_setup(struct hda_codec *codec) | |||
4004 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 4004 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
4005 | } | 4005 | } |
4006 | 4006 | ||
4007 | static struct snd_kcontrol_new alc880_medion_rim_mixer[] = { | 4007 | static const struct snd_kcontrol_new alc880_medion_rim_mixer[] = { |
4008 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 4008 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
4009 | HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT), | 4009 | HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT), |
4010 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 4010 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
@@ -4014,7 +4014,7 @@ static struct snd_kcontrol_new alc880_medion_rim_mixer[] = { | |||
4014 | { } /* end */ | 4014 | { } /* end */ |
4015 | }; | 4015 | }; |
4016 | 4016 | ||
4017 | static struct hda_input_mux alc880_medion_rim_capture_source = { | 4017 | static const struct hda_input_mux alc880_medion_rim_capture_source = { |
4018 | .num_items = 2, | 4018 | .num_items = 2, |
4019 | .items = { | 4019 | .items = { |
4020 | { "Mic", 0x0 }, | 4020 | { "Mic", 0x0 }, |
@@ -4022,7 +4022,7 @@ static struct hda_input_mux alc880_medion_rim_capture_source = { | |||
4022 | }, | 4022 | }, |
4023 | }; | 4023 | }; |
4024 | 4024 | ||
4025 | static struct hda_verb alc880_medion_rim_init_verbs[] = { | 4025 | static const struct hda_verb alc880_medion_rim_init_verbs[] = { |
4026 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ | 4026 | {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ |
4027 | 4027 | ||
4028 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 4028 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -4078,7 +4078,7 @@ static void alc880_medion_rim_setup(struct hda_codec *codec) | |||
4078 | } | 4078 | } |
4079 | 4079 | ||
4080 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 4080 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
4081 | static struct hda_amp_list alc880_loopbacks[] = { | 4081 | static const struct hda_amp_list alc880_loopbacks[] = { |
4082 | { 0x0b, HDA_INPUT, 0 }, | 4082 | { 0x0b, HDA_INPUT, 0 }, |
4083 | { 0x0b, HDA_INPUT, 1 }, | 4083 | { 0x0b, HDA_INPUT, 1 }, |
4084 | { 0x0b, HDA_INPUT, 2 }, | 4084 | { 0x0b, HDA_INPUT, 2 }, |
@@ -4087,7 +4087,7 @@ static struct hda_amp_list alc880_loopbacks[] = { | |||
4087 | { } /* end */ | 4087 | { } /* end */ |
4088 | }; | 4088 | }; |
4089 | 4089 | ||
4090 | static struct hda_amp_list alc880_lg_loopbacks[] = { | 4090 | static const struct hda_amp_list alc880_lg_loopbacks[] = { |
4091 | { 0x0b, HDA_INPUT, 1 }, | 4091 | { 0x0b, HDA_INPUT, 1 }, |
4092 | { 0x0b, HDA_INPUT, 6 }, | 4092 | { 0x0b, HDA_INPUT, 6 }, |
4093 | { 0x0b, HDA_INPUT, 7 }, | 4093 | { 0x0b, HDA_INPUT, 7 }, |
@@ -4259,7 +4259,7 @@ static int dualmic_capture_pcm_cleanup(struct hda_pcm_stream *hinfo, | |||
4259 | return 0; | 4259 | return 0; |
4260 | } | 4260 | } |
4261 | 4261 | ||
4262 | static struct hda_pcm_stream dualmic_pcm_analog_capture = { | 4262 | static const struct hda_pcm_stream dualmic_pcm_analog_capture = { |
4263 | .substreams = 1, | 4263 | .substreams = 1, |
4264 | .channels_min = 2, | 4264 | .channels_min = 2, |
4265 | .channels_max = 2, | 4265 | .channels_max = 2, |
@@ -4272,7 +4272,7 @@ static struct hda_pcm_stream dualmic_pcm_analog_capture = { | |||
4272 | 4272 | ||
4273 | /* | 4273 | /* |
4274 | */ | 4274 | */ |
4275 | static struct hda_pcm_stream alc880_pcm_analog_playback = { | 4275 | static const struct hda_pcm_stream alc880_pcm_analog_playback = { |
4276 | .substreams = 1, | 4276 | .substreams = 1, |
4277 | .channels_min = 2, | 4277 | .channels_min = 2, |
4278 | .channels_max = 8, | 4278 | .channels_max = 8, |
@@ -4284,21 +4284,21 @@ static struct hda_pcm_stream alc880_pcm_analog_playback = { | |||
4284 | }, | 4284 | }, |
4285 | }; | 4285 | }; |
4286 | 4286 | ||
4287 | static struct hda_pcm_stream alc880_pcm_analog_capture = { | 4287 | static const struct hda_pcm_stream alc880_pcm_analog_capture = { |
4288 | .substreams = 1, | 4288 | .substreams = 1, |
4289 | .channels_min = 2, | 4289 | .channels_min = 2, |
4290 | .channels_max = 2, | 4290 | .channels_max = 2, |
4291 | /* NID is set in alc_build_pcms */ | 4291 | /* NID is set in alc_build_pcms */ |
4292 | }; | 4292 | }; |
4293 | 4293 | ||
4294 | static struct hda_pcm_stream alc880_pcm_analog_alt_playback = { | 4294 | static const struct hda_pcm_stream alc880_pcm_analog_alt_playback = { |
4295 | .substreams = 1, | 4295 | .substreams = 1, |
4296 | .channels_min = 2, | 4296 | .channels_min = 2, |
4297 | .channels_max = 2, | 4297 | .channels_max = 2, |
4298 | /* NID is set in alc_build_pcms */ | 4298 | /* NID is set in alc_build_pcms */ |
4299 | }; | 4299 | }; |
4300 | 4300 | ||
4301 | static struct hda_pcm_stream alc880_pcm_analog_alt_capture = { | 4301 | static const struct hda_pcm_stream alc880_pcm_analog_alt_capture = { |
4302 | .substreams = 2, /* can be overridden */ | 4302 | .substreams = 2, /* can be overridden */ |
4303 | .channels_min = 2, | 4303 | .channels_min = 2, |
4304 | .channels_max = 2, | 4304 | .channels_max = 2, |
@@ -4309,7 +4309,7 @@ static struct hda_pcm_stream alc880_pcm_analog_alt_capture = { | |||
4309 | }, | 4309 | }, |
4310 | }; | 4310 | }; |
4311 | 4311 | ||
4312 | static struct hda_pcm_stream alc880_pcm_digital_playback = { | 4312 | static const struct hda_pcm_stream alc880_pcm_digital_playback = { |
4313 | .substreams = 1, | 4313 | .substreams = 1, |
4314 | .channels_min = 2, | 4314 | .channels_min = 2, |
4315 | .channels_max = 2, | 4315 | .channels_max = 2, |
@@ -4322,7 +4322,7 @@ static struct hda_pcm_stream alc880_pcm_digital_playback = { | |||
4322 | }, | 4322 | }, |
4323 | }; | 4323 | }; |
4324 | 4324 | ||
4325 | static struct hda_pcm_stream alc880_pcm_digital_capture = { | 4325 | static const struct hda_pcm_stream alc880_pcm_digital_capture = { |
4326 | .substreams = 1, | 4326 | .substreams = 1, |
4327 | .channels_min = 2, | 4327 | .channels_min = 2, |
4328 | .channels_max = 2, | 4328 | .channels_max = 2, |
@@ -4330,7 +4330,7 @@ static struct hda_pcm_stream alc880_pcm_digital_capture = { | |||
4330 | }; | 4330 | }; |
4331 | 4331 | ||
4332 | /* Used by alc_build_pcms to flag that a PCM has no playback stream */ | 4332 | /* Used by alc_build_pcms to flag that a PCM has no playback stream */ |
4333 | static struct hda_pcm_stream alc_pcm_null_stream = { | 4333 | static const struct hda_pcm_stream alc_pcm_null_stream = { |
4334 | .substreams = 0, | 4334 | .substreams = 0, |
4335 | .channels_min = 0, | 4335 | .channels_min = 0, |
4336 | .channels_max = 0, | 4336 | .channels_max = 0, |
@@ -4507,7 +4507,7 @@ static int alc_resume(struct hda_codec *codec) | |||
4507 | 4507 | ||
4508 | /* | 4508 | /* |
4509 | */ | 4509 | */ |
4510 | static struct hda_codec_ops alc_patch_ops = { | 4510 | static const struct hda_codec_ops alc_patch_ops = { |
4511 | .build_controls = alc_build_controls, | 4511 | .build_controls = alc_build_controls, |
4512 | .build_pcms = alc_build_pcms, | 4512 | .build_pcms = alc_build_pcms, |
4513 | .init = alc_init, | 4513 | .init = alc_init, |
@@ -4546,7 +4546,7 @@ static hda_nid_t alc880_test_dac_nids[4] = { | |||
4546 | 0x02, 0x03, 0x04, 0x05 | 4546 | 0x02, 0x03, 0x04, 0x05 |
4547 | }; | 4547 | }; |
4548 | 4548 | ||
4549 | static struct hda_input_mux alc880_test_capture_source = { | 4549 | static const struct hda_input_mux alc880_test_capture_source = { |
4550 | .num_items = 7, | 4550 | .num_items = 7, |
4551 | .items = { | 4551 | .items = { |
4552 | { "In-1", 0x0 }, | 4552 | { "In-1", 0x0 }, |
@@ -4559,7 +4559,7 @@ static struct hda_input_mux alc880_test_capture_source = { | |||
4559 | }, | 4559 | }, |
4560 | }; | 4560 | }; |
4561 | 4561 | ||
4562 | static struct hda_channel_mode alc880_test_modes[4] = { | 4562 | static const struct hda_channel_mode alc880_test_modes[4] = { |
4563 | { 2, NULL }, | 4563 | { 2, NULL }, |
4564 | { 4, NULL }, | 4564 | { 4, NULL }, |
4565 | { 6, NULL }, | 4565 | { 6, NULL }, |
@@ -4705,7 +4705,7 @@ static int alc_test_pin_src_put(struct snd_kcontrol *kcontrol, | |||
4705 | .private_value = nid \ | 4705 | .private_value = nid \ |
4706 | } | 4706 | } |
4707 | 4707 | ||
4708 | static struct snd_kcontrol_new alc880_test_mixer[] = { | 4708 | static const struct snd_kcontrol_new alc880_test_mixer[] = { |
4709 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 4709 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
4710 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 4710 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
4711 | HDA_CODEC_VOLUME("CLFE Playback Volume", 0x0e, 0x0, HDA_OUTPUT), | 4711 | HDA_CODEC_VOLUME("CLFE Playback Volume", 0x0e, 0x0, HDA_OUTPUT), |
@@ -4746,7 +4746,7 @@ static struct snd_kcontrol_new alc880_test_mixer[] = { | |||
4746 | { } /* end */ | 4746 | { } /* end */ |
4747 | }; | 4747 | }; |
4748 | 4748 | ||
4749 | static struct hda_verb alc880_test_init_verbs[] = { | 4749 | static const struct hda_verb alc880_test_init_verbs[] = { |
4750 | /* Unmute inputs of 0x0c - 0x0f */ | 4750 | /* Unmute inputs of 0x0c - 0x0f */ |
4751 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 4751 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
4752 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 4752 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
@@ -4830,7 +4830,7 @@ static const char * const alc880_models[ALC880_MODEL_LAST] = { | |||
4830 | [ALC880_AUTO] = "auto", | 4830 | [ALC880_AUTO] = "auto", |
4831 | }; | 4831 | }; |
4832 | 4832 | ||
4833 | static struct snd_pci_quirk alc880_cfg_tbl[] = { | 4833 | static const struct snd_pci_quirk alc880_cfg_tbl[] = { |
4834 | SND_PCI_QUIRK(0x1019, 0x0f69, "Coeus G610P", ALC880_W810), | 4834 | SND_PCI_QUIRK(0x1019, 0x0f69, "Coeus G610P", ALC880_W810), |
4835 | SND_PCI_QUIRK(0x1019, 0xa880, "ECS", ALC880_5ST_DIG), | 4835 | SND_PCI_QUIRK(0x1019, 0xa880, "ECS", ALC880_5ST_DIG), |
4836 | SND_PCI_QUIRK(0x1019, 0xa884, "Acer APFV", ALC880_6ST), | 4836 | SND_PCI_QUIRK(0x1019, 0xa884, "Acer APFV", ALC880_6ST), |
@@ -4910,7 +4910,7 @@ static struct snd_pci_quirk alc880_cfg_tbl[] = { | |||
4910 | /* | 4910 | /* |
4911 | * ALC880 codec presets | 4911 | * ALC880 codec presets |
4912 | */ | 4912 | */ |
4913 | static struct alc_config_preset alc880_presets[] = { | 4913 | static const struct alc_config_preset alc880_presets[] = { |
4914 | [ALC880_3ST] = { | 4914 | [ALC880_3ST] = { |
4915 | .mixers = { alc880_three_stack_mixer }, | 4915 | .mixers = { alc880_three_stack_mixer }, |
4916 | .init_verbs = { alc880_volume_init_verbs, | 4916 | .init_verbs = { alc880_volume_init_verbs, |
@@ -5218,7 +5218,7 @@ enum { | |||
5218 | ALC_CTL_WIDGET_MUTE, | 5218 | ALC_CTL_WIDGET_MUTE, |
5219 | ALC_CTL_BIND_MUTE, | 5219 | ALC_CTL_BIND_MUTE, |
5220 | }; | 5220 | }; |
5221 | static struct snd_kcontrol_new alc880_control_templates[] = { | 5221 | static const struct snd_kcontrol_new alc880_control_templates[] = { |
5222 | HDA_CODEC_VOLUME(NULL, 0, 0, 0), | 5222 | HDA_CODEC_VOLUME(NULL, 0, 0, 0), |
5223 | HDA_CODEC_MUTE(NULL, 0, 0, 0), | 5223 | HDA_CODEC_MUTE(NULL, 0, 0, 0), |
5224 | HDA_BIND_MUTE(NULL, 0, 0, 0), | 5224 | HDA_BIND_MUTE(NULL, 0, 0, 0), |
@@ -5801,7 +5801,7 @@ static void alc_init_special_input_src(struct hda_codec *codec) | |||
5801 | static void set_capture_mixer(struct hda_codec *codec) | 5801 | static void set_capture_mixer(struct hda_codec *codec) |
5802 | { | 5802 | { |
5803 | struct alc_spec *spec = codec->spec; | 5803 | struct alc_spec *spec = codec->spec; |
5804 | static struct snd_kcontrol_new *caps[2][3] = { | 5804 | static const struct snd_kcontrol_new *caps[2][3] = { |
5805 | { alc_capture_mixer_nosrc1, | 5805 | { alc_capture_mixer_nosrc1, |
5806 | alc_capture_mixer_nosrc2, | 5806 | alc_capture_mixer_nosrc2, |
5807 | alc_capture_mixer_nosrc3 }, | 5807 | alc_capture_mixer_nosrc3 }, |
@@ -5893,7 +5893,7 @@ static void fillup_priv_adc_nids(struct hda_codec *codec, hda_nid_t *nids, | |||
5893 | #define set_beep_amp(spec, nid, idx, dir) \ | 5893 | #define set_beep_amp(spec, nid, idx, dir) \ |
5894 | ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir)) | 5894 | ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir)) |
5895 | 5895 | ||
5896 | static struct snd_pci_quirk beep_white_list[] = { | 5896 | static const struct snd_pci_quirk beep_white_list[] = { |
5897 | SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), | 5897 | SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), |
5898 | SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1), | 5898 | SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1), |
5899 | SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1), | 5899 | SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1), |
@@ -6030,7 +6030,7 @@ static hda_nid_t alc260_dual_adc_nids[2] = { | |||
6030 | #define ALC260_DIGOUT_NID 0x03 | 6030 | #define ALC260_DIGOUT_NID 0x03 |
6031 | #define ALC260_DIGIN_NID 0x06 | 6031 | #define ALC260_DIGIN_NID 0x06 |
6032 | 6032 | ||
6033 | static struct hda_input_mux alc260_capture_source = { | 6033 | static const struct hda_input_mux alc260_capture_source = { |
6034 | .num_items = 4, | 6034 | .num_items = 4, |
6035 | .items = { | 6035 | .items = { |
6036 | { "Mic", 0x0 }, | 6036 | { "Mic", 0x0 }, |
@@ -6046,7 +6046,7 @@ static struct hda_input_mux alc260_capture_source = { | |||
6046 | * recording the mixer output on the second ADC (ADC0 doesn't have a | 6046 | * recording the mixer output on the second ADC (ADC0 doesn't have a |
6047 | * connection to the mixer output). | 6047 | * connection to the mixer output). |
6048 | */ | 6048 | */ |
6049 | static struct hda_input_mux alc260_fujitsu_capture_sources[2] = { | 6049 | static const struct hda_input_mux alc260_fujitsu_capture_sources[2] = { |
6050 | { | 6050 | { |
6051 | .num_items = 3, | 6051 | .num_items = 3, |
6052 | .items = { | 6052 | .items = { |
@@ -6070,7 +6070,7 @@ static struct hda_input_mux alc260_fujitsu_capture_sources[2] = { | |||
6070 | /* Acer TravelMate(/Extensa/Aspire) notebooks have similar configuration to | 6070 | /* Acer TravelMate(/Extensa/Aspire) notebooks have similar configuration to |
6071 | * the Fujitsu S702x, but jacks are marked differently. | 6071 | * the Fujitsu S702x, but jacks are marked differently. |
6072 | */ | 6072 | */ |
6073 | static struct hda_input_mux alc260_acer_capture_sources[2] = { | 6073 | static const struct hda_input_mux alc260_acer_capture_sources[2] = { |
6074 | { | 6074 | { |
6075 | .num_items = 4, | 6075 | .num_items = 4, |
6076 | .items = { | 6076 | .items = { |
@@ -6093,7 +6093,7 @@ static struct hda_input_mux alc260_acer_capture_sources[2] = { | |||
6093 | }; | 6093 | }; |
6094 | 6094 | ||
6095 | /* Maxdata Favorit 100XS */ | 6095 | /* Maxdata Favorit 100XS */ |
6096 | static struct hda_input_mux alc260_favorit100_capture_sources[2] = { | 6096 | static const struct hda_input_mux alc260_favorit100_capture_sources[2] = { |
6097 | { | 6097 | { |
6098 | .num_items = 2, | 6098 | .num_items = 2, |
6099 | .items = { | 6099 | .items = { |
@@ -6117,7 +6117,7 @@ static struct hda_input_mux alc260_favorit100_capture_sources[2] = { | |||
6117 | * element which allows changing the channel mode, so the verb list is | 6117 | * element which allows changing the channel mode, so the verb list is |
6118 | * never used. | 6118 | * never used. |
6119 | */ | 6119 | */ |
6120 | static struct hda_channel_mode alc260_modes[1] = { | 6120 | static const struct hda_channel_mode alc260_modes[1] = { |
6121 | { 2, NULL }, | 6121 | { 2, NULL }, |
6122 | }; | 6122 | }; |
6123 | 6123 | ||
@@ -6131,7 +6131,7 @@ static struct hda_channel_mode alc260_modes[1] = { | |||
6131 | * acer: acer + capture | 6131 | * acer: acer + capture |
6132 | */ | 6132 | */ |
6133 | 6133 | ||
6134 | static struct snd_kcontrol_new alc260_base_output_mixer[] = { | 6134 | static const struct snd_kcontrol_new alc260_base_output_mixer[] = { |
6135 | HDA_CODEC_VOLUME("Front Playback Volume", 0x08, 0x0, HDA_OUTPUT), | 6135 | HDA_CODEC_VOLUME("Front Playback Volume", 0x08, 0x0, HDA_OUTPUT), |
6136 | HDA_BIND_MUTE("Front Playback Switch", 0x08, 2, HDA_INPUT), | 6136 | HDA_BIND_MUTE("Front Playback Switch", 0x08, 2, HDA_INPUT), |
6137 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x09, 0x0, HDA_OUTPUT), | 6137 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x09, 0x0, HDA_OUTPUT), |
@@ -6141,7 +6141,7 @@ static struct snd_kcontrol_new alc260_base_output_mixer[] = { | |||
6141 | { } /* end */ | 6141 | { } /* end */ |
6142 | }; | 6142 | }; |
6143 | 6143 | ||
6144 | static struct snd_kcontrol_new alc260_input_mixer[] = { | 6144 | static const struct snd_kcontrol_new alc260_input_mixer[] = { |
6145 | HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT), | 6145 | HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT), |
6146 | HDA_CODEC_MUTE("CD Playback Switch", 0x07, 0x04, HDA_INPUT), | 6146 | HDA_CODEC_MUTE("CD Playback Switch", 0x07, 0x04, HDA_INPUT), |
6147 | HDA_CODEC_VOLUME("Line Playback Volume", 0x07, 0x02, HDA_INPUT), | 6147 | HDA_CODEC_VOLUME("Line Playback Volume", 0x07, 0x02, HDA_INPUT), |
@@ -6187,7 +6187,7 @@ static int alc260_hp_master_sw_put(struct snd_kcontrol *kcontrol, | |||
6187 | return 1; | 6187 | return 1; |
6188 | } | 6188 | } |
6189 | 6189 | ||
6190 | static struct snd_kcontrol_new alc260_hp_output_mixer[] = { | 6190 | static const struct snd_kcontrol_new alc260_hp_output_mixer[] = { |
6191 | { | 6191 | { |
6192 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 6192 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
6193 | .name = "Master Playback Switch", | 6193 | .name = "Master Playback Switch", |
@@ -6206,7 +6206,7 @@ static struct snd_kcontrol_new alc260_hp_output_mixer[] = { | |||
6206 | { } /* end */ | 6206 | { } /* end */ |
6207 | }; | 6207 | }; |
6208 | 6208 | ||
6209 | static struct hda_verb alc260_hp_unsol_verbs[] = { | 6209 | static const struct hda_verb alc260_hp_unsol_verbs[] = { |
6210 | {0x10, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, | 6210 | {0x10, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, |
6211 | {}, | 6211 | {}, |
6212 | }; | 6212 | }; |
@@ -6222,7 +6222,7 @@ static void alc260_hp_setup(struct hda_codec *codec) | |||
6222 | spec->automute_mode = ALC_AUTOMUTE_PIN; | 6222 | spec->automute_mode = ALC_AUTOMUTE_PIN; |
6223 | } | 6223 | } |
6224 | 6224 | ||
6225 | static struct snd_kcontrol_new alc260_hp_3013_mixer[] = { | 6225 | static const struct snd_kcontrol_new alc260_hp_3013_mixer[] = { |
6226 | { | 6226 | { |
6227 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 6227 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
6228 | .name = "Master Playback Switch", | 6228 | .name = "Master Playback Switch", |
@@ -6253,7 +6253,7 @@ static void alc260_hp_3013_setup(struct hda_codec *codec) | |||
6253 | spec->automute_mode = ALC_AUTOMUTE_PIN; | 6253 | spec->automute_mode = ALC_AUTOMUTE_PIN; |
6254 | } | 6254 | } |
6255 | 6255 | ||
6256 | static struct hda_bind_ctls alc260_dc7600_bind_master_vol = { | 6256 | static const struct hda_bind_ctls alc260_dc7600_bind_master_vol = { |
6257 | .ops = &snd_hda_bind_vol, | 6257 | .ops = &snd_hda_bind_vol, |
6258 | .values = { | 6258 | .values = { |
6259 | HDA_COMPOSE_AMP_VAL(0x08, 3, 0, HDA_OUTPUT), | 6259 | HDA_COMPOSE_AMP_VAL(0x08, 3, 0, HDA_OUTPUT), |
@@ -6263,7 +6263,7 @@ static struct hda_bind_ctls alc260_dc7600_bind_master_vol = { | |||
6263 | }, | 6263 | }, |
6264 | }; | 6264 | }; |
6265 | 6265 | ||
6266 | static struct hda_bind_ctls alc260_dc7600_bind_switch = { | 6266 | static const struct hda_bind_ctls alc260_dc7600_bind_switch = { |
6267 | .ops = &snd_hda_bind_sw, | 6267 | .ops = &snd_hda_bind_sw, |
6268 | .values = { | 6268 | .values = { |
6269 | HDA_COMPOSE_AMP_VAL(0x11, 3, 0, HDA_OUTPUT), | 6269 | HDA_COMPOSE_AMP_VAL(0x11, 3, 0, HDA_OUTPUT), |
@@ -6272,7 +6272,7 @@ static struct hda_bind_ctls alc260_dc7600_bind_switch = { | |||
6272 | }, | 6272 | }, |
6273 | }; | 6273 | }; |
6274 | 6274 | ||
6275 | static struct snd_kcontrol_new alc260_hp_dc7600_mixer[] = { | 6275 | static const struct snd_kcontrol_new alc260_hp_dc7600_mixer[] = { |
6276 | HDA_BIND_VOL("Master Playback Volume", &alc260_dc7600_bind_master_vol), | 6276 | HDA_BIND_VOL("Master Playback Volume", &alc260_dc7600_bind_master_vol), |
6277 | HDA_BIND_SW("LineOut Playback Switch", &alc260_dc7600_bind_switch), | 6277 | HDA_BIND_SW("LineOut Playback Switch", &alc260_dc7600_bind_switch), |
6278 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x0f, 0x0, HDA_OUTPUT), | 6278 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x0f, 0x0, HDA_OUTPUT), |
@@ -6280,7 +6280,7 @@ static struct snd_kcontrol_new alc260_hp_dc7600_mixer[] = { | |||
6280 | { } /* end */ | 6280 | { } /* end */ |
6281 | }; | 6281 | }; |
6282 | 6282 | ||
6283 | static struct hda_verb alc260_hp_3013_unsol_verbs[] = { | 6283 | static const struct hda_verb alc260_hp_3013_unsol_verbs[] = { |
6284 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, | 6284 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, |
6285 | {}, | 6285 | {}, |
6286 | }; | 6286 | }; |
@@ -6300,7 +6300,7 @@ static void alc260_hp_3012_setup(struct hda_codec *codec) | |||
6300 | /* Fujitsu S702x series laptops. ALC260 pin usage: Mic/Line jack = 0x12, | 6300 | /* Fujitsu S702x series laptops. ALC260 pin usage: Mic/Line jack = 0x12, |
6301 | * HP jack = 0x14, CD audio = 0x16, internal speaker = 0x10. | 6301 | * HP jack = 0x14, CD audio = 0x16, internal speaker = 0x10. |
6302 | */ | 6302 | */ |
6303 | static struct snd_kcontrol_new alc260_fujitsu_mixer[] = { | 6303 | static const struct snd_kcontrol_new alc260_fujitsu_mixer[] = { |
6304 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x08, 0x0, HDA_OUTPUT), | 6304 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x08, 0x0, HDA_OUTPUT), |
6305 | HDA_BIND_MUTE("Headphone Playback Switch", 0x08, 2, HDA_INPUT), | 6305 | HDA_BIND_MUTE("Headphone Playback Switch", 0x08, 2, HDA_INPUT), |
6306 | ALC_PIN_MODE("Headphone Jack Mode", 0x14, ALC_PIN_DIR_INOUT), | 6306 | ALC_PIN_MODE("Headphone Jack Mode", 0x14, ALC_PIN_DIR_INOUT), |
@@ -6337,7 +6337,7 @@ static struct snd_kcontrol_new alc260_fujitsu_mixer[] = { | |||
6337 | * controls for such models. On models without a "mono speaker" the control | 6337 | * controls for such models. On models without a "mono speaker" the control |
6338 | * won't do anything. | 6338 | * won't do anything. |
6339 | */ | 6339 | */ |
6340 | static struct snd_kcontrol_new alc260_acer_mixer[] = { | 6340 | static const struct snd_kcontrol_new alc260_acer_mixer[] = { |
6341 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), | 6341 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), |
6342 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 2, HDA_INPUT), | 6342 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 2, HDA_INPUT), |
6343 | ALC_PIN_MODE("Headphone Jack Mode", 0x0f, ALC_PIN_DIR_INOUT), | 6343 | ALC_PIN_MODE("Headphone Jack Mode", 0x0f, ALC_PIN_DIR_INOUT), |
@@ -6358,7 +6358,7 @@ static struct snd_kcontrol_new alc260_acer_mixer[] = { | |||
6358 | 6358 | ||
6359 | /* Maxdata Favorit 100XS: one output and one input (0x12) jack | 6359 | /* Maxdata Favorit 100XS: one output and one input (0x12) jack |
6360 | */ | 6360 | */ |
6361 | static struct snd_kcontrol_new alc260_favorit100_mixer[] = { | 6361 | static const struct snd_kcontrol_new alc260_favorit100_mixer[] = { |
6362 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), | 6362 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), |
6363 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 2, HDA_INPUT), | 6363 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 2, HDA_INPUT), |
6364 | ALC_PIN_MODE("Output Jack Mode", 0x0f, ALC_PIN_DIR_INOUT), | 6364 | ALC_PIN_MODE("Output Jack Mode", 0x0f, ALC_PIN_DIR_INOUT), |
@@ -6371,7 +6371,7 @@ static struct snd_kcontrol_new alc260_favorit100_mixer[] = { | |||
6371 | /* Packard bell V7900 ALC260 pin usage: HP = 0x0f, Mic jack = 0x12, | 6371 | /* Packard bell V7900 ALC260 pin usage: HP = 0x0f, Mic jack = 0x12, |
6372 | * Line In jack = 0x14, CD audio = 0x16, pc beep = 0x17. | 6372 | * Line In jack = 0x14, CD audio = 0x16, pc beep = 0x17. |
6373 | */ | 6373 | */ |
6374 | static struct snd_kcontrol_new alc260_will_mixer[] = { | 6374 | static const struct snd_kcontrol_new alc260_will_mixer[] = { |
6375 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), | 6375 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), |
6376 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 0x2, HDA_INPUT), | 6376 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 0x2, HDA_INPUT), |
6377 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x07, 0x0, HDA_INPUT), | 6377 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x07, 0x0, HDA_INPUT), |
@@ -6388,7 +6388,7 @@ static struct snd_kcontrol_new alc260_will_mixer[] = { | |||
6388 | /* Replacer 672V ALC260 pin usage: Mic jack = 0x12, | 6388 | /* Replacer 672V ALC260 pin usage: Mic jack = 0x12, |
6389 | * Line In jack = 0x14, ATAPI Mic = 0x13, speaker = 0x0f. | 6389 | * Line In jack = 0x14, ATAPI Mic = 0x13, speaker = 0x0f. |
6390 | */ | 6390 | */ |
6391 | static struct snd_kcontrol_new alc260_replacer_672v_mixer[] = { | 6391 | static const struct snd_kcontrol_new alc260_replacer_672v_mixer[] = { |
6392 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), | 6392 | HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), |
6393 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 0x2, HDA_INPUT), | 6393 | HDA_BIND_MUTE("Master Playback Switch", 0x08, 0x2, HDA_INPUT), |
6394 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x07, 0x0, HDA_INPUT), | 6394 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x07, 0x0, HDA_INPUT), |
@@ -6405,7 +6405,7 @@ static struct snd_kcontrol_new alc260_replacer_672v_mixer[] = { | |||
6405 | /* | 6405 | /* |
6406 | * initialization verbs | 6406 | * initialization verbs |
6407 | */ | 6407 | */ |
6408 | static struct hda_verb alc260_init_verbs[] = { | 6408 | static const struct hda_verb alc260_init_verbs[] = { |
6409 | /* Line In pin widget for input */ | 6409 | /* Line In pin widget for input */ |
6410 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 6410 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
6411 | /* CD pin widget for input */ | 6411 | /* CD pin widget for input */ |
@@ -6469,7 +6469,7 @@ static struct hda_verb alc260_init_verbs[] = { | |||
6469 | }; | 6469 | }; |
6470 | 6470 | ||
6471 | #if 0 /* should be identical with alc260_init_verbs? */ | 6471 | #if 0 /* should be identical with alc260_init_verbs? */ |
6472 | static struct hda_verb alc260_hp_init_verbs[] = { | 6472 | static const struct hda_verb alc260_hp_init_verbs[] = { |
6473 | /* Headphone and output */ | 6473 | /* Headphone and output */ |
6474 | {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, | 6474 | {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, |
6475 | /* mono output */ | 6475 | /* mono output */ |
@@ -6519,7 +6519,7 @@ static struct hda_verb alc260_hp_init_verbs[] = { | |||
6519 | }; | 6519 | }; |
6520 | #endif | 6520 | #endif |
6521 | 6521 | ||
6522 | static struct hda_verb alc260_hp_3013_init_verbs[] = { | 6522 | static const struct hda_verb alc260_hp_3013_init_verbs[] = { |
6523 | /* Line out and output */ | 6523 | /* Line out and output */ |
6524 | {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, | 6524 | {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40}, |
6525 | /* mono output */ | 6525 | /* mono output */ |
@@ -6572,7 +6572,7 @@ static struct hda_verb alc260_hp_3013_init_verbs[] = { | |||
6572 | * laptops. ALC260 pin usage: Mic/Line jack = 0x12, HP jack = 0x14, CD | 6572 | * laptops. ALC260 pin usage: Mic/Line jack = 0x12, HP jack = 0x14, CD |
6573 | * audio = 0x16, internal speaker = 0x10. | 6573 | * audio = 0x16, internal speaker = 0x10. |
6574 | */ | 6574 | */ |
6575 | static struct hda_verb alc260_fujitsu_init_verbs[] = { | 6575 | static const struct hda_verb alc260_fujitsu_init_verbs[] = { |
6576 | /* Disable all GPIOs */ | 6576 | /* Disable all GPIOs */ |
6577 | {0x01, AC_VERB_SET_GPIO_MASK, 0}, | 6577 | {0x01, AC_VERB_SET_GPIO_MASK, 0}, |
6578 | /* Internal speaker is connected to headphone pin */ | 6578 | /* Internal speaker is connected to headphone pin */ |
@@ -6654,7 +6654,7 @@ static struct hda_verb alc260_fujitsu_init_verbs[] = { | |||
6654 | /* Initialisation sequence for ALC260 as configured in Acer TravelMate and | 6654 | /* Initialisation sequence for ALC260 as configured in Acer TravelMate and |
6655 | * similar laptops (adapted from Fujitsu init verbs). | 6655 | * similar laptops (adapted from Fujitsu init verbs). |
6656 | */ | 6656 | */ |
6657 | static struct hda_verb alc260_acer_init_verbs[] = { | 6657 | static const struct hda_verb alc260_acer_init_verbs[] = { |
6658 | /* On TravelMate laptops, GPIO 0 enables the internal speaker and | 6658 | /* On TravelMate laptops, GPIO 0 enables the internal speaker and |
6659 | * the headphone jack. Turn this on and rely on the standard mute | 6659 | * the headphone jack. Turn this on and rely on the standard mute |
6660 | * methods whenever the user wants to turn these outputs off. | 6660 | * methods whenever the user wants to turn these outputs off. |
@@ -6742,7 +6742,7 @@ static struct hda_verb alc260_acer_init_verbs[] = { | |||
6742 | /* Initialisation sequence for Maxdata Favorit 100XS | 6742 | /* Initialisation sequence for Maxdata Favorit 100XS |
6743 | * (adapted from Acer init verbs). | 6743 | * (adapted from Acer init verbs). |
6744 | */ | 6744 | */ |
6745 | static struct hda_verb alc260_favorit100_init_verbs[] = { | 6745 | static const struct hda_verb alc260_favorit100_init_verbs[] = { |
6746 | /* GPIO 0 enables the output jack. | 6746 | /* GPIO 0 enables the output jack. |
6747 | * Turn this on and rely on the standard mute | 6747 | * Turn this on and rely on the standard mute |
6748 | * methods whenever the user wants to turn these outputs off. | 6748 | * methods whenever the user wants to turn these outputs off. |
@@ -6822,7 +6822,7 @@ static struct hda_verb alc260_favorit100_init_verbs[] = { | |||
6822 | { } | 6822 | { } |
6823 | }; | 6823 | }; |
6824 | 6824 | ||
6825 | static struct hda_verb alc260_will_verbs[] = { | 6825 | static const struct hda_verb alc260_will_verbs[] = { |
6826 | {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 6826 | {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
6827 | {0x0b, AC_VERB_SET_CONNECT_SEL, 0x00}, | 6827 | {0x0b, AC_VERB_SET_CONNECT_SEL, 0x00}, |
6828 | {0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, | 6828 | {0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, |
@@ -6832,7 +6832,7 @@ static struct hda_verb alc260_will_verbs[] = { | |||
6832 | {} | 6832 | {} |
6833 | }; | 6833 | }; |
6834 | 6834 | ||
6835 | static struct hda_verb alc260_replacer_672v_verbs[] = { | 6835 | static const struct hda_verb alc260_replacer_672v_verbs[] = { |
6836 | {0x0f, AC_VERB_SET_EAPD_BTLENABLE, 0x02}, | 6836 | {0x0f, AC_VERB_SET_EAPD_BTLENABLE, 0x02}, |
6837 | {0x1a, AC_VERB_SET_COEF_INDEX, 0x07}, | 6837 | {0x1a, AC_VERB_SET_COEF_INDEX, 0x07}, |
6838 | {0x1a, AC_VERB_SET_PROC_COEF, 0x3050}, | 6838 | {0x1a, AC_VERB_SET_PROC_COEF, 0x3050}, |
@@ -6874,7 +6874,7 @@ static void alc260_replacer_672v_unsol_event(struct hda_codec *codec, | |||
6874 | alc260_replacer_672v_automute(codec); | 6874 | alc260_replacer_672v_automute(codec); |
6875 | } | 6875 | } |
6876 | 6876 | ||
6877 | static struct hda_verb alc260_hp_dc7600_verbs[] = { | 6877 | static const struct hda_verb alc260_hp_dc7600_verbs[] = { |
6878 | {0x05, AC_VERB_SET_CONNECT_SEL, 0x01}, | 6878 | {0x05, AC_VERB_SET_CONNECT_SEL, 0x01}, |
6879 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, | 6879 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, |
6880 | {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 6880 | {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
@@ -6902,7 +6902,7 @@ static hda_nid_t alc260_test_adc_nids[2] = { | |||
6902 | * the signal assignments are different. This assumes that the first ADC | 6902 | * the signal assignments are different. This assumes that the first ADC |
6903 | * is NID 0x04. | 6903 | * is NID 0x04. |
6904 | */ | 6904 | */ |
6905 | static struct hda_input_mux alc260_test_capture_sources[2] = { | 6905 | static const struct hda_input_mux alc260_test_capture_sources[2] = { |
6906 | { | 6906 | { |
6907 | .num_items = 7, | 6907 | .num_items = 7, |
6908 | .items = { | 6908 | .items = { |
@@ -6929,7 +6929,7 @@ static struct hda_input_mux alc260_test_capture_sources[2] = { | |||
6929 | }, | 6929 | }, |
6930 | }, | 6930 | }, |
6931 | }; | 6931 | }; |
6932 | static struct snd_kcontrol_new alc260_test_mixer[] = { | 6932 | static const struct snd_kcontrol_new alc260_test_mixer[] = { |
6933 | /* Output driver widgets */ | 6933 | /* Output driver widgets */ |
6934 | HDA_CODEC_VOLUME_MONO("Mono Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), | 6934 | HDA_CODEC_VOLUME_MONO("Mono Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), |
6935 | HDA_BIND_MUTE_MONO("Mono Playback Switch", 0x0a, 1, 2, HDA_INPUT), | 6935 | HDA_BIND_MUTE_MONO("Mono Playback Switch", 0x0a, 1, 2, HDA_INPUT), |
@@ -6993,7 +6993,7 @@ static struct snd_kcontrol_new alc260_test_mixer[] = { | |||
6993 | 6993 | ||
6994 | { } /* end */ | 6994 | { } /* end */ |
6995 | }; | 6995 | }; |
6996 | static struct hda_verb alc260_test_init_verbs[] = { | 6996 | static const struct hda_verb alc260_test_init_verbs[] = { |
6997 | /* Enable all GPIOs as outputs with an initial value of 0 */ | 6997 | /* Enable all GPIOs as outputs with an initial value of 0 */ |
6998 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x0f}, | 6998 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x0f}, |
6999 | {0x01, AC_VERB_SET_GPIO_DATA, 0x00}, | 6999 | {0x01, AC_VERB_SET_GPIO_DATA, 0x00}, |
@@ -7229,7 +7229,7 @@ static void alc260_auto_init_analog_input(struct hda_codec *codec) | |||
7229 | /* | 7229 | /* |
7230 | * generic initialization of ADC, input mixers and output mixers | 7230 | * generic initialization of ADC, input mixers and output mixers |
7231 | */ | 7231 | */ |
7232 | static struct hda_verb alc260_volume_init_verbs[] = { | 7232 | static const struct hda_verb alc260_volume_init_verbs[] = { |
7233 | /* | 7233 | /* |
7234 | * Unmute ADC0-1 and set the default input to mic-in | 7234 | * Unmute ADC0-1 and set the default input to mic-in |
7235 | */ | 7235 | */ |
@@ -7319,7 +7319,7 @@ static void alc260_auto_init(struct hda_codec *codec) | |||
7319 | } | 7319 | } |
7320 | 7320 | ||
7321 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 7321 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
7322 | static struct hda_amp_list alc260_loopbacks[] = { | 7322 | static const struct hda_amp_list alc260_loopbacks[] = { |
7323 | { 0x07, HDA_INPUT, 0 }, | 7323 | { 0x07, HDA_INPUT, 0 }, |
7324 | { 0x07, HDA_INPUT, 1 }, | 7324 | { 0x07, HDA_INPUT, 1 }, |
7325 | { 0x07, HDA_INPUT, 2 }, | 7325 | { 0x07, HDA_INPUT, 2 }, |
@@ -7346,7 +7346,7 @@ static const struct alc_fixup alc260_fixups[] = { | |||
7346 | }, | 7346 | }, |
7347 | }; | 7347 | }; |
7348 | 7348 | ||
7349 | static struct snd_pci_quirk alc260_fixup_tbl[] = { | 7349 | static const struct snd_pci_quirk alc260_fixup_tbl[] = { |
7350 | SND_PCI_QUIRK(0x103c, 0x280a, "HP dc5750", PINFIX_HP_DC5750), | 7350 | SND_PCI_QUIRK(0x103c, 0x280a, "HP dc5750", PINFIX_HP_DC5750), |
7351 | {} | 7351 | {} |
7352 | }; | 7352 | }; |
@@ -7370,7 +7370,7 @@ static const char * const alc260_models[ALC260_MODEL_LAST] = { | |||
7370 | [ALC260_AUTO] = "auto", | 7370 | [ALC260_AUTO] = "auto", |
7371 | }; | 7371 | }; |
7372 | 7372 | ||
7373 | static struct snd_pci_quirk alc260_cfg_tbl[] = { | 7373 | static const struct snd_pci_quirk alc260_cfg_tbl[] = { |
7374 | SND_PCI_QUIRK(0x1025, 0x007b, "Acer C20x", ALC260_ACER), | 7374 | SND_PCI_QUIRK(0x1025, 0x007b, "Acer C20x", ALC260_ACER), |
7375 | SND_PCI_QUIRK(0x1025, 0x007f, "Acer", ALC260_WILL), | 7375 | SND_PCI_QUIRK(0x1025, 0x007f, "Acer", ALC260_WILL), |
7376 | SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_ACER), | 7376 | SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_ACER), |
@@ -7394,7 +7394,7 @@ static struct snd_pci_quirk alc260_cfg_tbl[] = { | |||
7394 | {} | 7394 | {} |
7395 | }; | 7395 | }; |
7396 | 7396 | ||
7397 | static struct alc_config_preset alc260_presets[] = { | 7397 | static const struct alc_config_preset alc260_presets[] = { |
7398 | [ALC260_BASIC] = { | 7398 | [ALC260_BASIC] = { |
7399 | .mixers = { alc260_base_output_mixer, | 7399 | .mixers = { alc260_base_output_mixer, |
7400 | alc260_input_mixer }, | 7400 | alc260_input_mixer }, |
@@ -7639,7 +7639,7 @@ static int patch_alc260(struct hda_codec *codec) | |||
7639 | #define ALC1200_DIGOUT_NID 0x10 | 7639 | #define ALC1200_DIGOUT_NID 0x10 |
7640 | 7640 | ||
7641 | 7641 | ||
7642 | static struct hda_channel_mode alc882_ch_modes[1] = { | 7642 | static const struct hda_channel_mode alc882_ch_modes[1] = { |
7643 | { 8, NULL } | 7643 | { 8, NULL } |
7644 | }; | 7644 | }; |
7645 | 7645 | ||
@@ -7667,7 +7667,7 @@ static hda_nid_t alc883_capsrc_nids_rev[2] = { 0x22, 0x23 }; | |||
7667 | /* input MUX */ | 7667 | /* input MUX */ |
7668 | /* FIXME: should be a matrix-type input source selection */ | 7668 | /* FIXME: should be a matrix-type input source selection */ |
7669 | 7669 | ||
7670 | static struct hda_input_mux alc882_capture_source = { | 7670 | static const struct hda_input_mux alc882_capture_source = { |
7671 | .num_items = 4, | 7671 | .num_items = 4, |
7672 | .items = { | 7672 | .items = { |
7673 | { "Mic", 0x0 }, | 7673 | { "Mic", 0x0 }, |
@@ -7679,7 +7679,7 @@ static struct hda_input_mux alc882_capture_source = { | |||
7679 | 7679 | ||
7680 | #define alc883_capture_source alc882_capture_source | 7680 | #define alc883_capture_source alc882_capture_source |
7681 | 7681 | ||
7682 | static struct hda_input_mux alc889_capture_source = { | 7682 | static const struct hda_input_mux alc889_capture_source = { |
7683 | .num_items = 3, | 7683 | .num_items = 3, |
7684 | .items = { | 7684 | .items = { |
7685 | { "Front Mic", 0x0 }, | 7685 | { "Front Mic", 0x0 }, |
@@ -7688,7 +7688,7 @@ static struct hda_input_mux alc889_capture_source = { | |||
7688 | }, | 7688 | }, |
7689 | }; | 7689 | }; |
7690 | 7690 | ||
7691 | static struct hda_input_mux mb5_capture_source = { | 7691 | static const struct hda_input_mux mb5_capture_source = { |
7692 | .num_items = 3, | 7692 | .num_items = 3, |
7693 | .items = { | 7693 | .items = { |
7694 | { "Mic", 0x1 }, | 7694 | { "Mic", 0x1 }, |
@@ -7697,7 +7697,7 @@ static struct hda_input_mux mb5_capture_source = { | |||
7697 | }, | 7697 | }, |
7698 | }; | 7698 | }; |
7699 | 7699 | ||
7700 | static struct hda_input_mux macmini3_capture_source = { | 7700 | static const struct hda_input_mux macmini3_capture_source = { |
7701 | .num_items = 2, | 7701 | .num_items = 2, |
7702 | .items = { | 7702 | .items = { |
7703 | { "Line", 0x2 }, | 7703 | { "Line", 0x2 }, |
@@ -7705,7 +7705,7 @@ static struct hda_input_mux macmini3_capture_source = { | |||
7705 | }, | 7705 | }, |
7706 | }; | 7706 | }; |
7707 | 7707 | ||
7708 | static struct hda_input_mux alc883_3stack_6ch_intel = { | 7708 | static const struct hda_input_mux alc883_3stack_6ch_intel = { |
7709 | .num_items = 4, | 7709 | .num_items = 4, |
7710 | .items = { | 7710 | .items = { |
7711 | { "Mic", 0x1 }, | 7711 | { "Mic", 0x1 }, |
@@ -7715,7 +7715,7 @@ static struct hda_input_mux alc883_3stack_6ch_intel = { | |||
7715 | }, | 7715 | }, |
7716 | }; | 7716 | }; |
7717 | 7717 | ||
7718 | static struct hda_input_mux alc883_lenovo_101e_capture_source = { | 7718 | static const struct hda_input_mux alc883_lenovo_101e_capture_source = { |
7719 | .num_items = 2, | 7719 | .num_items = 2, |
7720 | .items = { | 7720 | .items = { |
7721 | { "Mic", 0x1 }, | 7721 | { "Mic", 0x1 }, |
@@ -7723,7 +7723,7 @@ static struct hda_input_mux alc883_lenovo_101e_capture_source = { | |||
7723 | }, | 7723 | }, |
7724 | }; | 7724 | }; |
7725 | 7725 | ||
7726 | static struct hda_input_mux alc883_lenovo_nb0763_capture_source = { | 7726 | static const struct hda_input_mux alc883_lenovo_nb0763_capture_source = { |
7727 | .num_items = 4, | 7727 | .num_items = 4, |
7728 | .items = { | 7728 | .items = { |
7729 | { "Mic", 0x0 }, | 7729 | { "Mic", 0x0 }, |
@@ -7733,7 +7733,7 @@ static struct hda_input_mux alc883_lenovo_nb0763_capture_source = { | |||
7733 | }, | 7733 | }, |
7734 | }; | 7734 | }; |
7735 | 7735 | ||
7736 | static struct hda_input_mux alc883_fujitsu_pi2515_capture_source = { | 7736 | static const struct hda_input_mux alc883_fujitsu_pi2515_capture_source = { |
7737 | .num_items = 2, | 7737 | .num_items = 2, |
7738 | .items = { | 7738 | .items = { |
7739 | { "Mic", 0x0 }, | 7739 | { "Mic", 0x0 }, |
@@ -7741,7 +7741,7 @@ static struct hda_input_mux alc883_fujitsu_pi2515_capture_source = { | |||
7741 | }, | 7741 | }, |
7742 | }; | 7742 | }; |
7743 | 7743 | ||
7744 | static struct hda_input_mux alc883_lenovo_sky_capture_source = { | 7744 | static const struct hda_input_mux alc883_lenovo_sky_capture_source = { |
7745 | .num_items = 3, | 7745 | .num_items = 3, |
7746 | .items = { | 7746 | .items = { |
7747 | { "Mic", 0x0 }, | 7747 | { "Mic", 0x0 }, |
@@ -7750,7 +7750,7 @@ static struct hda_input_mux alc883_lenovo_sky_capture_source = { | |||
7750 | }, | 7750 | }, |
7751 | }; | 7751 | }; |
7752 | 7752 | ||
7753 | static struct hda_input_mux alc883_asus_eee1601_capture_source = { | 7753 | static const struct hda_input_mux alc883_asus_eee1601_capture_source = { |
7754 | .num_items = 2, | 7754 | .num_items = 2, |
7755 | .items = { | 7755 | .items = { |
7756 | { "Mic", 0x0 }, | 7756 | { "Mic", 0x0 }, |
@@ -7758,7 +7758,7 @@ static struct hda_input_mux alc883_asus_eee1601_capture_source = { | |||
7758 | }, | 7758 | }, |
7759 | }; | 7759 | }; |
7760 | 7760 | ||
7761 | static struct hda_input_mux alc889A_mb31_capture_source = { | 7761 | static const struct hda_input_mux alc889A_mb31_capture_source = { |
7762 | .num_items = 2, | 7762 | .num_items = 2, |
7763 | .items = { | 7763 | .items = { |
7764 | { "Mic", 0x0 }, | 7764 | { "Mic", 0x0 }, |
@@ -7769,7 +7769,7 @@ static struct hda_input_mux alc889A_mb31_capture_source = { | |||
7769 | }, | 7769 | }, |
7770 | }; | 7770 | }; |
7771 | 7771 | ||
7772 | static struct hda_input_mux alc889A_imac91_capture_source = { | 7772 | static const struct hda_input_mux alc889A_imac91_capture_source = { |
7773 | .num_items = 2, | 7773 | .num_items = 2, |
7774 | .items = { | 7774 | .items = { |
7775 | { "Mic", 0x01 }, | 7775 | { "Mic", 0x01 }, |
@@ -7780,14 +7780,14 @@ static struct hda_input_mux alc889A_imac91_capture_source = { | |||
7780 | /* | 7780 | /* |
7781 | * 2ch mode | 7781 | * 2ch mode |
7782 | */ | 7782 | */ |
7783 | static struct hda_channel_mode alc883_3ST_2ch_modes[1] = { | 7783 | static const struct hda_channel_mode alc883_3ST_2ch_modes[1] = { |
7784 | { 2, NULL } | 7784 | { 2, NULL } |
7785 | }; | 7785 | }; |
7786 | 7786 | ||
7787 | /* | 7787 | /* |
7788 | * 2ch mode | 7788 | * 2ch mode |
7789 | */ | 7789 | */ |
7790 | static struct hda_verb alc882_3ST_ch2_init[] = { | 7790 | static const struct hda_verb alc882_3ST_ch2_init[] = { |
7791 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 7791 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
7792 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 7792 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
7793 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 7793 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
@@ -7798,7 +7798,7 @@ static struct hda_verb alc882_3ST_ch2_init[] = { | |||
7798 | /* | 7798 | /* |
7799 | * 4ch mode | 7799 | * 4ch mode |
7800 | */ | 7800 | */ |
7801 | static struct hda_verb alc882_3ST_ch4_init[] = { | 7801 | static const struct hda_verb alc882_3ST_ch4_init[] = { |
7802 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 7802 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
7803 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 7803 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
7804 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7804 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -7810,7 +7810,7 @@ static struct hda_verb alc882_3ST_ch4_init[] = { | |||
7810 | /* | 7810 | /* |
7811 | * 6ch mode | 7811 | * 6ch mode |
7812 | */ | 7812 | */ |
7813 | static struct hda_verb alc882_3ST_ch6_init[] = { | 7813 | static const struct hda_verb alc882_3ST_ch6_init[] = { |
7814 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7814 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7815 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 7815 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
7816 | { 0x18, AC_VERB_SET_CONNECT_SEL, 0x02 }, | 7816 | { 0x18, AC_VERB_SET_CONNECT_SEL, 0x02 }, |
@@ -7820,7 +7820,7 @@ static struct hda_verb alc882_3ST_ch6_init[] = { | |||
7820 | { } /* end */ | 7820 | { } /* end */ |
7821 | }; | 7821 | }; |
7822 | 7822 | ||
7823 | static struct hda_channel_mode alc882_3ST_6ch_modes[3] = { | 7823 | static const struct hda_channel_mode alc882_3ST_6ch_modes[3] = { |
7824 | { 2, alc882_3ST_ch2_init }, | 7824 | { 2, alc882_3ST_ch2_init }, |
7825 | { 4, alc882_3ST_ch4_init }, | 7825 | { 4, alc882_3ST_ch4_init }, |
7826 | { 6, alc882_3ST_ch6_init }, | 7826 | { 6, alc882_3ST_ch6_init }, |
@@ -7831,7 +7831,7 @@ static struct hda_channel_mode alc882_3ST_6ch_modes[3] = { | |||
7831 | /* | 7831 | /* |
7832 | * 2ch mode | 7832 | * 2ch mode |
7833 | */ | 7833 | */ |
7834 | static struct hda_verb alc883_3ST_ch2_clevo_init[] = { | 7834 | static const struct hda_verb alc883_3ST_ch2_clevo_init[] = { |
7835 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, | 7835 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, |
7836 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 7836 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
7837 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 7837 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
@@ -7843,7 +7843,7 @@ static struct hda_verb alc883_3ST_ch2_clevo_init[] = { | |||
7843 | /* | 7843 | /* |
7844 | * 4ch mode | 7844 | * 4ch mode |
7845 | */ | 7845 | */ |
7846 | static struct hda_verb alc883_3ST_ch4_clevo_init[] = { | 7846 | static const struct hda_verb alc883_3ST_ch4_clevo_init[] = { |
7847 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7847 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7848 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 7848 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
7849 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 7849 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
@@ -7856,7 +7856,7 @@ static struct hda_verb alc883_3ST_ch4_clevo_init[] = { | |||
7856 | /* | 7856 | /* |
7857 | * 6ch mode | 7857 | * 6ch mode |
7858 | */ | 7858 | */ |
7859 | static struct hda_verb alc883_3ST_ch6_clevo_init[] = { | 7859 | static const struct hda_verb alc883_3ST_ch6_clevo_init[] = { |
7860 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7860 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7861 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7861 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7862 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 7862 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
@@ -7867,7 +7867,7 @@ static struct hda_verb alc883_3ST_ch6_clevo_init[] = { | |||
7867 | { } /* end */ | 7867 | { } /* end */ |
7868 | }; | 7868 | }; |
7869 | 7869 | ||
7870 | static struct hda_channel_mode alc883_3ST_6ch_clevo_modes[3] = { | 7870 | static const struct hda_channel_mode alc883_3ST_6ch_clevo_modes[3] = { |
7871 | { 2, alc883_3ST_ch2_clevo_init }, | 7871 | { 2, alc883_3ST_ch2_clevo_init }, |
7872 | { 4, alc883_3ST_ch4_clevo_init }, | 7872 | { 4, alc883_3ST_ch4_clevo_init }, |
7873 | { 6, alc883_3ST_ch6_clevo_init }, | 7873 | { 6, alc883_3ST_ch6_clevo_init }, |
@@ -7877,7 +7877,7 @@ static struct hda_channel_mode alc883_3ST_6ch_clevo_modes[3] = { | |||
7877 | /* | 7877 | /* |
7878 | * 6ch mode | 7878 | * 6ch mode |
7879 | */ | 7879 | */ |
7880 | static struct hda_verb alc882_sixstack_ch6_init[] = { | 7880 | static const struct hda_verb alc882_sixstack_ch6_init[] = { |
7881 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, | 7881 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, |
7882 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7882 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7883 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7883 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -7888,7 +7888,7 @@ static struct hda_verb alc882_sixstack_ch6_init[] = { | |||
7888 | /* | 7888 | /* |
7889 | * 8ch mode | 7889 | * 8ch mode |
7890 | */ | 7890 | */ |
7891 | static struct hda_verb alc882_sixstack_ch8_init[] = { | 7891 | static const struct hda_verb alc882_sixstack_ch8_init[] = { |
7892 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7892 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7893 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7893 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7894 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7894 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -7896,7 +7896,7 @@ static struct hda_verb alc882_sixstack_ch8_init[] = { | |||
7896 | { } /* end */ | 7896 | { } /* end */ |
7897 | }; | 7897 | }; |
7898 | 7898 | ||
7899 | static struct hda_channel_mode alc882_sixstack_modes[2] = { | 7899 | static const struct hda_channel_mode alc882_sixstack_modes[2] = { |
7900 | { 6, alc882_sixstack_ch6_init }, | 7900 | { 6, alc882_sixstack_ch6_init }, |
7901 | { 8, alc882_sixstack_ch8_init }, | 7901 | { 8, alc882_sixstack_ch8_init }, |
7902 | }; | 7902 | }; |
@@ -7904,7 +7904,7 @@ static struct hda_channel_mode alc882_sixstack_modes[2] = { | |||
7904 | 7904 | ||
7905 | /* Macbook Air 2,1 */ | 7905 | /* Macbook Air 2,1 */ |
7906 | 7906 | ||
7907 | static struct hda_channel_mode alc885_mba21_ch_modes[1] = { | 7907 | static const struct hda_channel_mode alc885_mba21_ch_modes[1] = { |
7908 | { 2, NULL }, | 7908 | { 2, NULL }, |
7909 | }; | 7909 | }; |
7910 | 7910 | ||
@@ -7915,7 +7915,7 @@ static struct hda_channel_mode alc885_mba21_ch_modes[1] = { | |||
7915 | /* | 7915 | /* |
7916 | * 2ch mode | 7916 | * 2ch mode |
7917 | */ | 7917 | */ |
7918 | static struct hda_verb alc885_mbp_ch2_init[] = { | 7918 | static const struct hda_verb alc885_mbp_ch2_init[] = { |
7919 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 7919 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
7920 | { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 7920 | { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
7921 | { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, | 7921 | { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, |
@@ -7925,7 +7925,7 @@ static struct hda_verb alc885_mbp_ch2_init[] = { | |||
7925 | /* | 7925 | /* |
7926 | * 4ch mode | 7926 | * 4ch mode |
7927 | */ | 7927 | */ |
7928 | static struct hda_verb alc885_mbp_ch4_init[] = { | 7928 | static const struct hda_verb alc885_mbp_ch4_init[] = { |
7929 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7929 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7930 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 7930 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
7931 | { 0x1a, AC_VERB_SET_CONNECT_SEL, 0x01 }, | 7931 | { 0x1a, AC_VERB_SET_CONNECT_SEL, 0x01 }, |
@@ -7934,7 +7934,7 @@ static struct hda_verb alc885_mbp_ch4_init[] = { | |||
7934 | { } /* end */ | 7934 | { } /* end */ |
7935 | }; | 7935 | }; |
7936 | 7936 | ||
7937 | static struct hda_channel_mode alc885_mbp_4ch_modes[2] = { | 7937 | static const struct hda_channel_mode alc885_mbp_4ch_modes[2] = { |
7938 | { 2, alc885_mbp_ch2_init }, | 7938 | { 2, alc885_mbp_ch2_init }, |
7939 | { 4, alc885_mbp_ch4_init }, | 7939 | { 4, alc885_mbp_ch4_init }, |
7940 | }; | 7940 | }; |
@@ -7944,7 +7944,7 @@ static struct hda_channel_mode alc885_mbp_4ch_modes[2] = { | |||
7944 | * Speakers/Woofer/HP = Front | 7944 | * Speakers/Woofer/HP = Front |
7945 | * LineIn = Input | 7945 | * LineIn = Input |
7946 | */ | 7946 | */ |
7947 | static struct hda_verb alc885_mb5_ch2_init[] = { | 7947 | static const struct hda_verb alc885_mb5_ch2_init[] = { |
7948 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 7948 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
7949 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, | 7949 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, |
7950 | { } /* end */ | 7950 | { } /* end */ |
@@ -7956,14 +7956,14 @@ static struct hda_verb alc885_mb5_ch2_init[] = { | |||
7956 | * Woofer = LFE | 7956 | * Woofer = LFE |
7957 | * LineIn = Surround | 7957 | * LineIn = Surround |
7958 | */ | 7958 | */ |
7959 | static struct hda_verb alc885_mb5_ch6_init[] = { | 7959 | static const struct hda_verb alc885_mb5_ch6_init[] = { |
7960 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 7960 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
7961 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 7961 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
7962 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, | 7962 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, |
7963 | { } /* end */ | 7963 | { } /* end */ |
7964 | }; | 7964 | }; |
7965 | 7965 | ||
7966 | static struct hda_channel_mode alc885_mb5_6ch_modes[2] = { | 7966 | static const struct hda_channel_mode alc885_mb5_6ch_modes[2] = { |
7967 | { 2, alc885_mb5_ch2_init }, | 7967 | { 2, alc885_mb5_ch2_init }, |
7968 | { 6, alc885_mb5_ch6_init }, | 7968 | { 6, alc885_mb5_ch6_init }, |
7969 | }; | 7969 | }; |
@@ -7973,7 +7973,7 @@ static struct hda_channel_mode alc885_mb5_6ch_modes[2] = { | |||
7973 | /* | 7973 | /* |
7974 | * 2ch mode | 7974 | * 2ch mode |
7975 | */ | 7975 | */ |
7976 | static struct hda_verb alc883_4ST_ch2_init[] = { | 7976 | static const struct hda_verb alc883_4ST_ch2_init[] = { |
7977 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7977 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7978 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 7978 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
7979 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 7979 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
@@ -7986,7 +7986,7 @@ static struct hda_verb alc883_4ST_ch2_init[] = { | |||
7986 | /* | 7986 | /* |
7987 | * 4ch mode | 7987 | * 4ch mode |
7988 | */ | 7988 | */ |
7989 | static struct hda_verb alc883_4ST_ch4_init[] = { | 7989 | static const struct hda_verb alc883_4ST_ch4_init[] = { |
7990 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 7990 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
7991 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 7991 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
7992 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 7992 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
@@ -8000,7 +8000,7 @@ static struct hda_verb alc883_4ST_ch4_init[] = { | |||
8000 | /* | 8000 | /* |
8001 | * 6ch mode | 8001 | * 6ch mode |
8002 | */ | 8002 | */ |
8003 | static struct hda_verb alc883_4ST_ch6_init[] = { | 8003 | static const struct hda_verb alc883_4ST_ch6_init[] = { |
8004 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8004 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
8005 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 8005 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
8006 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8006 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -8015,7 +8015,7 @@ static struct hda_verb alc883_4ST_ch6_init[] = { | |||
8015 | /* | 8015 | /* |
8016 | * 8ch mode | 8016 | * 8ch mode |
8017 | */ | 8017 | */ |
8018 | static struct hda_verb alc883_4ST_ch8_init[] = { | 8018 | static const struct hda_verb alc883_4ST_ch8_init[] = { |
8019 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8019 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
8020 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 8020 | { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
8021 | { 0x17, AC_VERB_SET_CONNECT_SEL, 0x03 }, | 8021 | { 0x17, AC_VERB_SET_CONNECT_SEL, 0x03 }, |
@@ -8028,7 +8028,7 @@ static struct hda_verb alc883_4ST_ch8_init[] = { | |||
8028 | { } /* end */ | 8028 | { } /* end */ |
8029 | }; | 8029 | }; |
8030 | 8030 | ||
8031 | static struct hda_channel_mode alc883_4ST_8ch_modes[4] = { | 8031 | static const struct hda_channel_mode alc883_4ST_8ch_modes[4] = { |
8032 | { 2, alc883_4ST_ch2_init }, | 8032 | { 2, alc883_4ST_ch2_init }, |
8033 | { 4, alc883_4ST_ch4_init }, | 8033 | { 4, alc883_4ST_ch4_init }, |
8034 | { 6, alc883_4ST_ch6_init }, | 8034 | { 6, alc883_4ST_ch6_init }, |
@@ -8039,7 +8039,7 @@ static struct hda_channel_mode alc883_4ST_8ch_modes[4] = { | |||
8039 | /* | 8039 | /* |
8040 | * 2ch mode | 8040 | * 2ch mode |
8041 | */ | 8041 | */ |
8042 | static struct hda_verb alc883_3ST_ch2_intel_init[] = { | 8042 | static const struct hda_verb alc883_3ST_ch2_intel_init[] = { |
8043 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 8043 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
8044 | { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 8044 | { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
8045 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 8045 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
@@ -8050,7 +8050,7 @@ static struct hda_verb alc883_3ST_ch2_intel_init[] = { | |||
8050 | /* | 8050 | /* |
8051 | * 4ch mode | 8051 | * 4ch mode |
8052 | */ | 8052 | */ |
8053 | static struct hda_verb alc883_3ST_ch4_intel_init[] = { | 8053 | static const struct hda_verb alc883_3ST_ch4_intel_init[] = { |
8054 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 8054 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
8055 | { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 8055 | { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
8056 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8056 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -8062,7 +8062,7 @@ static struct hda_verb alc883_3ST_ch4_intel_init[] = { | |||
8062 | /* | 8062 | /* |
8063 | * 6ch mode | 8063 | * 6ch mode |
8064 | */ | 8064 | */ |
8065 | static struct hda_verb alc883_3ST_ch6_intel_init[] = { | 8065 | static const struct hda_verb alc883_3ST_ch6_intel_init[] = { |
8066 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8066 | { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
8067 | { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 8067 | { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
8068 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x02 }, | 8068 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x02 }, |
@@ -8072,7 +8072,7 @@ static struct hda_verb alc883_3ST_ch6_intel_init[] = { | |||
8072 | { } /* end */ | 8072 | { } /* end */ |
8073 | }; | 8073 | }; |
8074 | 8074 | ||
8075 | static struct hda_channel_mode alc883_3ST_6ch_intel_modes[3] = { | 8075 | static const struct hda_channel_mode alc883_3ST_6ch_intel_modes[3] = { |
8076 | { 2, alc883_3ST_ch2_intel_init }, | 8076 | { 2, alc883_3ST_ch2_intel_init }, |
8077 | { 4, alc883_3ST_ch4_intel_init }, | 8077 | { 4, alc883_3ST_ch4_intel_init }, |
8078 | { 6, alc883_3ST_ch6_intel_init }, | 8078 | { 6, alc883_3ST_ch6_intel_init }, |
@@ -8081,7 +8081,7 @@ static struct hda_channel_mode alc883_3ST_6ch_intel_modes[3] = { | |||
8081 | /* | 8081 | /* |
8082 | * 2ch mode | 8082 | * 2ch mode |
8083 | */ | 8083 | */ |
8084 | static struct hda_verb alc889_ch2_intel_init[] = { | 8084 | static const struct hda_verb alc889_ch2_intel_init[] = { |
8085 | { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 }, | 8085 | { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 }, |
8086 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x00 }, | 8086 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x00 }, |
8087 | { 0x16, AC_VERB_SET_CONNECT_SEL, 0x00 }, | 8087 | { 0x16, AC_VERB_SET_CONNECT_SEL, 0x00 }, |
@@ -8094,7 +8094,7 @@ static struct hda_verb alc889_ch2_intel_init[] = { | |||
8094 | /* | 8094 | /* |
8095 | * 6ch mode | 8095 | * 6ch mode |
8096 | */ | 8096 | */ |
8097 | static struct hda_verb alc889_ch6_intel_init[] = { | 8097 | static const struct hda_verb alc889_ch6_intel_init[] = { |
8098 | { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 }, | 8098 | { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 }, |
8099 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 }, | 8099 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 }, |
8100 | { 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 }, | 8100 | { 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 }, |
@@ -8107,7 +8107,7 @@ static struct hda_verb alc889_ch6_intel_init[] = { | |||
8107 | /* | 8107 | /* |
8108 | * 8ch mode | 8108 | * 8ch mode |
8109 | */ | 8109 | */ |
8110 | static struct hda_verb alc889_ch8_intel_init[] = { | 8110 | static const struct hda_verb alc889_ch8_intel_init[] = { |
8111 | { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 }, | 8111 | { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 }, |
8112 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 }, | 8112 | { 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 }, |
8113 | { 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 }, | 8113 | { 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 }, |
@@ -8118,7 +8118,7 @@ static struct hda_verb alc889_ch8_intel_init[] = { | |||
8118 | { } /* end */ | 8118 | { } /* end */ |
8119 | }; | 8119 | }; |
8120 | 8120 | ||
8121 | static struct hda_channel_mode alc889_8ch_intel_modes[3] = { | 8121 | static const struct hda_channel_mode alc889_8ch_intel_modes[3] = { |
8122 | { 2, alc889_ch2_intel_init }, | 8122 | { 2, alc889_ch2_intel_init }, |
8123 | { 6, alc889_ch6_intel_init }, | 8123 | { 6, alc889_ch6_intel_init }, |
8124 | { 8, alc889_ch8_intel_init }, | 8124 | { 8, alc889_ch8_intel_init }, |
@@ -8127,7 +8127,7 @@ static struct hda_channel_mode alc889_8ch_intel_modes[3] = { | |||
8127 | /* | 8127 | /* |
8128 | * 6ch mode | 8128 | * 6ch mode |
8129 | */ | 8129 | */ |
8130 | static struct hda_verb alc883_sixstack_ch6_init[] = { | 8130 | static const struct hda_verb alc883_sixstack_ch6_init[] = { |
8131 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, | 8131 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, |
8132 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8132 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
8133 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8133 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -8138,7 +8138,7 @@ static struct hda_verb alc883_sixstack_ch6_init[] = { | |||
8138 | /* | 8138 | /* |
8139 | * 8ch mode | 8139 | * 8ch mode |
8140 | */ | 8140 | */ |
8141 | static struct hda_verb alc883_sixstack_ch8_init[] = { | 8141 | static const struct hda_verb alc883_sixstack_ch8_init[] = { |
8142 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8142 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
8143 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8143 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
8144 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 8144 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -8146,7 +8146,7 @@ static struct hda_verb alc883_sixstack_ch8_init[] = { | |||
8146 | { } /* end */ | 8146 | { } /* end */ |
8147 | }; | 8147 | }; |
8148 | 8148 | ||
8149 | static struct hda_channel_mode alc883_sixstack_modes[2] = { | 8149 | static const struct hda_channel_mode alc883_sixstack_modes[2] = { |
8150 | { 6, alc883_sixstack_ch6_init }, | 8150 | { 6, alc883_sixstack_ch6_init }, |
8151 | { 8, alc883_sixstack_ch8_init }, | 8151 | { 8, alc883_sixstack_ch8_init }, |
8152 | }; | 8152 | }; |
@@ -8155,7 +8155,7 @@ static struct hda_channel_mode alc883_sixstack_modes[2] = { | |||
8155 | /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 | 8155 | /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 |
8156 | * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b | 8156 | * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b |
8157 | */ | 8157 | */ |
8158 | static struct snd_kcontrol_new alc882_base_mixer[] = { | 8158 | static const struct snd_kcontrol_new alc882_base_mixer[] = { |
8159 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 8159 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
8160 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 8160 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
8161 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 8161 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -8182,14 +8182,14 @@ static struct snd_kcontrol_new alc882_base_mixer[] = { | |||
8182 | 8182 | ||
8183 | /* Macbook Air 2,1 same control for HP and internal Speaker */ | 8183 | /* Macbook Air 2,1 same control for HP and internal Speaker */ |
8184 | 8184 | ||
8185 | static struct snd_kcontrol_new alc885_mba21_mixer[] = { | 8185 | static const struct snd_kcontrol_new alc885_mba21_mixer[] = { |
8186 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 8186 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
8187 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 0x02, HDA_OUTPUT), | 8187 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 0x02, HDA_OUTPUT), |
8188 | { } | 8188 | { } |
8189 | }; | 8189 | }; |
8190 | 8190 | ||
8191 | 8191 | ||
8192 | static struct snd_kcontrol_new alc885_mbp3_mixer[] = { | 8192 | static const struct snd_kcontrol_new alc885_mbp3_mixer[] = { |
8193 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 8193 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
8194 | HDA_BIND_MUTE ("Speaker Playback Switch", 0x0c, 0x02, HDA_INPUT), | 8194 | HDA_BIND_MUTE ("Speaker Playback Switch", 0x0c, 0x02, HDA_INPUT), |
8195 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0e, 0x00, HDA_OUTPUT), | 8195 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0e, 0x00, HDA_OUTPUT), |
@@ -8204,7 +8204,7 @@ static struct snd_kcontrol_new alc885_mbp3_mixer[] = { | |||
8204 | { } /* end */ | 8204 | { } /* end */ |
8205 | }; | 8205 | }; |
8206 | 8206 | ||
8207 | static struct snd_kcontrol_new alc885_mb5_mixer[] = { | 8207 | static const struct snd_kcontrol_new alc885_mb5_mixer[] = { |
8208 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 8208 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
8209 | HDA_BIND_MUTE ("Front Playback Switch", 0x0c, 0x02, HDA_INPUT), | 8209 | HDA_BIND_MUTE ("Front Playback Switch", 0x0c, 0x02, HDA_INPUT), |
8210 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x00, HDA_OUTPUT), | 8210 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x00, HDA_OUTPUT), |
@@ -8222,7 +8222,7 @@ static struct snd_kcontrol_new alc885_mb5_mixer[] = { | |||
8222 | { } /* end */ | 8222 | { } /* end */ |
8223 | }; | 8223 | }; |
8224 | 8224 | ||
8225 | static struct snd_kcontrol_new alc885_macmini3_mixer[] = { | 8225 | static const struct snd_kcontrol_new alc885_macmini3_mixer[] = { |
8226 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 8226 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
8227 | HDA_BIND_MUTE ("Front Playback Switch", 0x0c, 0x02, HDA_INPUT), | 8227 | HDA_BIND_MUTE ("Front Playback Switch", 0x0c, 0x02, HDA_INPUT), |
8228 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x00, HDA_OUTPUT), | 8228 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x00, HDA_OUTPUT), |
@@ -8237,14 +8237,14 @@ static struct snd_kcontrol_new alc885_macmini3_mixer[] = { | |||
8237 | { } /* end */ | 8237 | { } /* end */ |
8238 | }; | 8238 | }; |
8239 | 8239 | ||
8240 | static struct snd_kcontrol_new alc885_imac91_mixer[] = { | 8240 | static const struct snd_kcontrol_new alc885_imac91_mixer[] = { |
8241 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 8241 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
8242 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 0x02, HDA_INPUT), | 8242 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 0x02, HDA_INPUT), |
8243 | { } /* end */ | 8243 | { } /* end */ |
8244 | }; | 8244 | }; |
8245 | 8245 | ||
8246 | 8246 | ||
8247 | static struct snd_kcontrol_new alc882_w2jc_mixer[] = { | 8247 | static const struct snd_kcontrol_new alc882_w2jc_mixer[] = { |
8248 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 8248 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
8249 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 8249 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
8250 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | 8250 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), |
@@ -8257,7 +8257,7 @@ static struct snd_kcontrol_new alc882_w2jc_mixer[] = { | |||
8257 | { } /* end */ | 8257 | { } /* end */ |
8258 | }; | 8258 | }; |
8259 | 8259 | ||
8260 | static struct snd_kcontrol_new alc882_targa_mixer[] = { | 8260 | static const struct snd_kcontrol_new alc882_targa_mixer[] = { |
8261 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 8261 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
8262 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 8262 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
8263 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | 8263 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), |
@@ -8277,7 +8277,7 @@ static struct snd_kcontrol_new alc882_targa_mixer[] = { | |||
8277 | /* Pin assignment: Front=0x14, HP = 0x15, Front = 0x16, ??? | 8277 | /* Pin assignment: Front=0x14, HP = 0x15, Front = 0x16, ??? |
8278 | * Front Mic=0x18, Line In = 0x1a, Line In = 0x1b, CD = 0x1c | 8278 | * Front Mic=0x18, Line In = 0x1a, Line In = 0x1b, CD = 0x1c |
8279 | */ | 8279 | */ |
8280 | static struct snd_kcontrol_new alc882_asus_a7j_mixer[] = { | 8280 | static const struct snd_kcontrol_new alc882_asus_a7j_mixer[] = { |
8281 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 8281 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
8282 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 8282 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
8283 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 8283 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -8294,7 +8294,7 @@ static struct snd_kcontrol_new alc882_asus_a7j_mixer[] = { | |||
8294 | { } /* end */ | 8294 | { } /* end */ |
8295 | }; | 8295 | }; |
8296 | 8296 | ||
8297 | static struct snd_kcontrol_new alc882_asus_a7m_mixer[] = { | 8297 | static const struct snd_kcontrol_new alc882_asus_a7m_mixer[] = { |
8298 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 8298 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
8299 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 8299 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
8300 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 8300 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -8308,7 +8308,7 @@ static struct snd_kcontrol_new alc882_asus_a7m_mixer[] = { | |||
8308 | { } /* end */ | 8308 | { } /* end */ |
8309 | }; | 8309 | }; |
8310 | 8310 | ||
8311 | static struct snd_kcontrol_new alc882_chmode_mixer[] = { | 8311 | static const struct snd_kcontrol_new alc882_chmode_mixer[] = { |
8312 | { | 8312 | { |
8313 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 8313 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
8314 | .name = "Channel Mode", | 8314 | .name = "Channel Mode", |
@@ -8319,7 +8319,7 @@ static struct snd_kcontrol_new alc882_chmode_mixer[] = { | |||
8319 | { } /* end */ | 8319 | { } /* end */ |
8320 | }; | 8320 | }; |
8321 | 8321 | ||
8322 | static struct hda_verb alc882_base_init_verbs[] = { | 8322 | static const struct hda_verb alc882_base_init_verbs[] = { |
8323 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ | 8323 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ |
8324 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 8324 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
8325 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, | 8325 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, |
@@ -8381,7 +8381,7 @@ static struct hda_verb alc882_base_init_verbs[] = { | |||
8381 | { } | 8381 | { } |
8382 | }; | 8382 | }; |
8383 | 8383 | ||
8384 | static struct hda_verb alc882_adc1_init_verbs[] = { | 8384 | static const struct hda_verb alc882_adc1_init_verbs[] = { |
8385 | /* Input mixer1: unmute Mic, F-Mic, Line, CD inputs */ | 8385 | /* Input mixer1: unmute Mic, F-Mic, Line, CD inputs */ |
8386 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 8386 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
8387 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, | 8387 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)}, |
@@ -8393,26 +8393,26 @@ static struct hda_verb alc882_adc1_init_verbs[] = { | |||
8393 | { } | 8393 | { } |
8394 | }; | 8394 | }; |
8395 | 8395 | ||
8396 | static struct hda_verb alc882_eapd_verbs[] = { | 8396 | static const struct hda_verb alc882_eapd_verbs[] = { |
8397 | /* change to EAPD mode */ | 8397 | /* change to EAPD mode */ |
8398 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, | 8398 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, |
8399 | {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, | 8399 | {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, |
8400 | { } | 8400 | { } |
8401 | }; | 8401 | }; |
8402 | 8402 | ||
8403 | static struct hda_verb alc889_eapd_verbs[] = { | 8403 | static const struct hda_verb alc889_eapd_verbs[] = { |
8404 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 8404 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
8405 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 8405 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
8406 | { } | 8406 | { } |
8407 | }; | 8407 | }; |
8408 | 8408 | ||
8409 | static struct hda_verb alc_hp15_unsol_verbs[] = { | 8409 | static const struct hda_verb alc_hp15_unsol_verbs[] = { |
8410 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, | 8410 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, |
8411 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 8411 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
8412 | {} | 8412 | {} |
8413 | }; | 8413 | }; |
8414 | 8414 | ||
8415 | static struct hda_verb alc885_init_verbs[] = { | 8415 | static const struct hda_verb alc885_init_verbs[] = { |
8416 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ | 8416 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ |
8417 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 8417 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
8418 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 8418 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
@@ -8471,7 +8471,7 @@ static struct hda_verb alc885_init_verbs[] = { | |||
8471 | { } | 8471 | { } |
8472 | }; | 8472 | }; |
8473 | 8473 | ||
8474 | static struct hda_verb alc885_init_input_verbs[] = { | 8474 | static const struct hda_verb alc885_init_input_verbs[] = { |
8475 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 8475 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
8476 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, | 8476 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, |
8477 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, | 8477 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, |
@@ -8480,7 +8480,7 @@ static struct hda_verb alc885_init_input_verbs[] = { | |||
8480 | 8480 | ||
8481 | 8481 | ||
8482 | /* Unmute Selector 24h and set the default input to front mic */ | 8482 | /* Unmute Selector 24h and set the default input to front mic */ |
8483 | static struct hda_verb alc889_init_input_verbs[] = { | 8483 | static const struct hda_verb alc889_init_input_verbs[] = { |
8484 | {0x24, AC_VERB_SET_CONNECT_SEL, 0x00}, | 8484 | {0x24, AC_VERB_SET_CONNECT_SEL, 0x00}, |
8485 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 8485 | {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
8486 | { } | 8486 | { } |
@@ -8490,7 +8490,7 @@ static struct hda_verb alc889_init_input_verbs[] = { | |||
8490 | #define alc883_init_verbs alc882_base_init_verbs | 8490 | #define alc883_init_verbs alc882_base_init_verbs |
8491 | 8491 | ||
8492 | /* Mac Pro test */ | 8492 | /* Mac Pro test */ |
8493 | static struct snd_kcontrol_new alc882_macpro_mixer[] = { | 8493 | static const struct snd_kcontrol_new alc882_macpro_mixer[] = { |
8494 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 8494 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
8495 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 8495 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
8496 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x18, 0x0, HDA_OUTPUT), | 8496 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x18, 0x0, HDA_OUTPUT), |
@@ -8503,7 +8503,7 @@ static struct snd_kcontrol_new alc882_macpro_mixer[] = { | |||
8503 | { } /* end */ | 8503 | { } /* end */ |
8504 | }; | 8504 | }; |
8505 | 8505 | ||
8506 | static struct hda_verb alc882_macpro_init_verbs[] = { | 8506 | static const struct hda_verb alc882_macpro_init_verbs[] = { |
8507 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ | 8507 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ |
8508 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 8508 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
8509 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 8509 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
@@ -8555,7 +8555,7 @@ static struct hda_verb alc882_macpro_init_verbs[] = { | |||
8555 | }; | 8555 | }; |
8556 | 8556 | ||
8557 | /* Macbook 5,1 */ | 8557 | /* Macbook 5,1 */ |
8558 | static struct hda_verb alc885_mb5_init_verbs[] = { | 8558 | static const struct hda_verb alc885_mb5_init_verbs[] = { |
8559 | /* DACs */ | 8559 | /* DACs */ |
8560 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 8560 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
8561 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 8561 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -8604,7 +8604,7 @@ static struct hda_verb alc885_mb5_init_verbs[] = { | |||
8604 | }; | 8604 | }; |
8605 | 8605 | ||
8606 | /* Macmini 3,1 */ | 8606 | /* Macmini 3,1 */ |
8607 | static struct hda_verb alc885_macmini3_init_verbs[] = { | 8607 | static const struct hda_verb alc885_macmini3_init_verbs[] = { |
8608 | /* DACs */ | 8608 | /* DACs */ |
8609 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 8609 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
8610 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 8610 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -8651,7 +8651,7 @@ static struct hda_verb alc885_macmini3_init_verbs[] = { | |||
8651 | }; | 8651 | }; |
8652 | 8652 | ||
8653 | 8653 | ||
8654 | static struct hda_verb alc885_mba21_init_verbs[] = { | 8654 | static const struct hda_verb alc885_mba21_init_verbs[] = { |
8655 | /*Internal and HP Speaker Mixer*/ | 8655 | /*Internal and HP Speaker Mixer*/ |
8656 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 8656 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
8657 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 8657 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
@@ -8674,7 +8674,7 @@ static struct hda_verb alc885_mba21_init_verbs[] = { | |||
8674 | 8674 | ||
8675 | 8675 | ||
8676 | /* Macbook Pro rev3 */ | 8676 | /* Macbook Pro rev3 */ |
8677 | static struct hda_verb alc885_mbp3_init_verbs[] = { | 8677 | static const struct hda_verb alc885_mbp3_init_verbs[] = { |
8678 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ | 8678 | /* Front mixer: unmute input/output amp left and right (volume = 0) */ |
8679 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 8679 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
8680 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 8680 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
@@ -8738,7 +8738,7 @@ static struct hda_verb alc885_mbp3_init_verbs[] = { | |||
8738 | }; | 8738 | }; |
8739 | 8739 | ||
8740 | /* iMac 9,1 */ | 8740 | /* iMac 9,1 */ |
8741 | static struct hda_verb alc885_imac91_init_verbs[] = { | 8741 | static const struct hda_verb alc885_imac91_init_verbs[] = { |
8742 | /* Internal Speaker Pin (0x0c) */ | 8742 | /* Internal Speaker Pin (0x0c) */ |
8743 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, (PIN_OUT | AC_PINCTL_VREF_50) }, | 8743 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, (PIN_OUT | AC_PINCTL_VREF_50) }, |
8744 | {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 8744 | {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -8793,14 +8793,14 @@ static struct hda_verb alc885_imac91_init_verbs[] = { | |||
8793 | }; | 8793 | }; |
8794 | 8794 | ||
8795 | /* iMac 24 mixer. */ | 8795 | /* iMac 24 mixer. */ |
8796 | static struct snd_kcontrol_new alc885_imac24_mixer[] = { | 8796 | static const struct snd_kcontrol_new alc885_imac24_mixer[] = { |
8797 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 8797 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
8798 | HDA_CODEC_MUTE("Master Playback Switch", 0x0c, 0x00, HDA_INPUT), | 8798 | HDA_CODEC_MUTE("Master Playback Switch", 0x0c, 0x00, HDA_INPUT), |
8799 | { } /* end */ | 8799 | { } /* end */ |
8800 | }; | 8800 | }; |
8801 | 8801 | ||
8802 | /* iMac 24 init verbs. */ | 8802 | /* iMac 24 init verbs. */ |
8803 | static struct hda_verb alc885_imac24_init_verbs[] = { | 8803 | static const struct hda_verb alc885_imac24_init_verbs[] = { |
8804 | /* Internal speakers: output 0 (0x0c) */ | 8804 | /* Internal speakers: output 0 (0x0c) */ |
8805 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 8805 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
8806 | {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 8806 | {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -8869,7 +8869,7 @@ static void alc885_imac91_setup(struct hda_codec *codec) | |||
8869 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 8869 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
8870 | } | 8870 | } |
8871 | 8871 | ||
8872 | static struct hda_verb alc882_targa_verbs[] = { | 8872 | static const struct hda_verb alc882_targa_verbs[] = { |
8873 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 8873 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
8874 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 8874 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
8875 | 8875 | ||
@@ -8909,7 +8909,7 @@ static void alc882_targa_unsol_event(struct hda_codec *codec, unsigned int res) | |||
8909 | alc882_targa_automute(codec); | 8909 | alc882_targa_automute(codec); |
8910 | } | 8910 | } |
8911 | 8911 | ||
8912 | static struct hda_verb alc882_asus_a7j_verbs[] = { | 8912 | static const struct hda_verb alc882_asus_a7j_verbs[] = { |
8913 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 8913 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
8914 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 8914 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
8915 | 8915 | ||
@@ -8927,7 +8927,7 @@ static struct hda_verb alc882_asus_a7j_verbs[] = { | |||
8927 | { } /* end */ | 8927 | { } /* end */ |
8928 | }; | 8928 | }; |
8929 | 8929 | ||
8930 | static struct hda_verb alc882_asus_a7m_verbs[] = { | 8930 | static const struct hda_verb alc882_asus_a7m_verbs[] = { |
8931 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 8931 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
8932 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 8932 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
8933 | 8933 | ||
@@ -8994,7 +8994,7 @@ static void alc885_imac24_init_hook(struct hda_codec *codec) | |||
8994 | /* | 8994 | /* |
8995 | * generic initialization of ADC, input mixers and output mixers | 8995 | * generic initialization of ADC, input mixers and output mixers |
8996 | */ | 8996 | */ |
8997 | static struct hda_verb alc883_auto_init_verbs[] = { | 8997 | static const struct hda_verb alc883_auto_init_verbs[] = { |
8998 | /* | 8998 | /* |
8999 | * Unmute ADC0-2 and set the default input to mic-in | 8999 | * Unmute ADC0-2 and set the default input to mic-in |
9000 | */ | 9000 | */ |
@@ -9034,7 +9034,7 @@ static struct hda_verb alc883_auto_init_verbs[] = { | |||
9034 | }; | 9034 | }; |
9035 | 9035 | ||
9036 | /* 2ch mode (Speaker:front, Subwoofer:CLFE, Line:input, Headphones:front) */ | 9036 | /* 2ch mode (Speaker:front, Subwoofer:CLFE, Line:input, Headphones:front) */ |
9037 | static struct hda_verb alc889A_mb31_ch2_init[] = { | 9037 | static const struct hda_verb alc889A_mb31_ch2_init[] = { |
9038 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP as front */ | 9038 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP as front */ |
9039 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Subwoofer on */ | 9039 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Subwoofer on */ |
9040 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Line as input */ | 9040 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Line as input */ |
@@ -9043,7 +9043,7 @@ static struct hda_verb alc889A_mb31_ch2_init[] = { | |||
9043 | }; | 9043 | }; |
9044 | 9044 | ||
9045 | /* 4ch mode (Speaker:front, Subwoofer:CLFE, Line:CLFE, Headphones:front) */ | 9045 | /* 4ch mode (Speaker:front, Subwoofer:CLFE, Line:CLFE, Headphones:front) */ |
9046 | static struct hda_verb alc889A_mb31_ch4_init[] = { | 9046 | static const struct hda_verb alc889A_mb31_ch4_init[] = { |
9047 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP as front */ | 9047 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP as front */ |
9048 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Subwoofer on */ | 9048 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Subwoofer on */ |
9049 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, /* Line as output */ | 9049 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, /* Line as output */ |
@@ -9052,7 +9052,7 @@ static struct hda_verb alc889A_mb31_ch4_init[] = { | |||
9052 | }; | 9052 | }; |
9053 | 9053 | ||
9054 | /* 5ch mode (Speaker:front, Subwoofer:CLFE, Line:input, Headphones:rear) */ | 9054 | /* 5ch mode (Speaker:front, Subwoofer:CLFE, Line:input, Headphones:rear) */ |
9055 | static struct hda_verb alc889A_mb31_ch5_init[] = { | 9055 | static const struct hda_verb alc889A_mb31_ch5_init[] = { |
9056 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, /* HP as rear */ | 9056 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, /* HP as rear */ |
9057 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Subwoofer on */ | 9057 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Subwoofer on */ |
9058 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Line as input */ | 9058 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Line as input */ |
@@ -9061,7 +9061,7 @@ static struct hda_verb alc889A_mb31_ch5_init[] = { | |||
9061 | }; | 9061 | }; |
9062 | 9062 | ||
9063 | /* 6ch mode (Speaker:front, Subwoofer:off, Line:CLFE, Headphones:Rear) */ | 9063 | /* 6ch mode (Speaker:front, Subwoofer:off, Line:CLFE, Headphones:Rear) */ |
9064 | static struct hda_verb alc889A_mb31_ch6_init[] = { | 9064 | static const struct hda_verb alc889A_mb31_ch6_init[] = { |
9065 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, /* HP as front */ | 9065 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, /* HP as front */ |
9066 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Subwoofer off */ | 9066 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Subwoofer off */ |
9067 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, /* Line as output */ | 9067 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, /* Line as output */ |
@@ -9069,14 +9069,14 @@ static struct hda_verb alc889A_mb31_ch6_init[] = { | |||
9069 | { } /* end */ | 9069 | { } /* end */ |
9070 | }; | 9070 | }; |
9071 | 9071 | ||
9072 | static struct hda_channel_mode alc889A_mb31_6ch_modes[4] = { | 9072 | static const struct hda_channel_mode alc889A_mb31_6ch_modes[4] = { |
9073 | { 2, alc889A_mb31_ch2_init }, | 9073 | { 2, alc889A_mb31_ch2_init }, |
9074 | { 4, alc889A_mb31_ch4_init }, | 9074 | { 4, alc889A_mb31_ch4_init }, |
9075 | { 5, alc889A_mb31_ch5_init }, | 9075 | { 5, alc889A_mb31_ch5_init }, |
9076 | { 6, alc889A_mb31_ch6_init }, | 9076 | { 6, alc889A_mb31_ch6_init }, |
9077 | }; | 9077 | }; |
9078 | 9078 | ||
9079 | static struct hda_verb alc883_medion_eapd_verbs[] = { | 9079 | static const struct hda_verb alc883_medion_eapd_verbs[] = { |
9080 | /* eanable EAPD on medion laptop */ | 9080 | /* eanable EAPD on medion laptop */ |
9081 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, | 9081 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, |
9082 | {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, | 9082 | {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, |
@@ -9085,7 +9085,7 @@ static struct hda_verb alc883_medion_eapd_verbs[] = { | |||
9085 | 9085 | ||
9086 | #define alc883_base_mixer alc882_base_mixer | 9086 | #define alc883_base_mixer alc882_base_mixer |
9087 | 9087 | ||
9088 | static struct snd_kcontrol_new alc883_mitac_mixer[] = { | 9088 | static const struct snd_kcontrol_new alc883_mitac_mixer[] = { |
9089 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9089 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9090 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9090 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9091 | HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT), | 9091 | HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT), |
@@ -9102,7 +9102,7 @@ static struct snd_kcontrol_new alc883_mitac_mixer[] = { | |||
9102 | { } /* end */ | 9102 | { } /* end */ |
9103 | }; | 9103 | }; |
9104 | 9104 | ||
9105 | static struct snd_kcontrol_new alc883_clevo_m720_mixer[] = { | 9105 | static const struct snd_kcontrol_new alc883_clevo_m720_mixer[] = { |
9106 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9106 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9107 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), | 9107 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), |
9108 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 9108 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -9116,7 +9116,7 @@ static struct snd_kcontrol_new alc883_clevo_m720_mixer[] = { | |||
9116 | { } /* end */ | 9116 | { } /* end */ |
9117 | }; | 9117 | }; |
9118 | 9118 | ||
9119 | static struct snd_kcontrol_new alc883_2ch_fujitsu_pi2515_mixer[] = { | 9119 | static const struct snd_kcontrol_new alc883_2ch_fujitsu_pi2515_mixer[] = { |
9120 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9120 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9121 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), | 9121 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0c, 2, HDA_INPUT), |
9122 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 9122 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -9130,7 +9130,7 @@ static struct snd_kcontrol_new alc883_2ch_fujitsu_pi2515_mixer[] = { | |||
9130 | { } /* end */ | 9130 | { } /* end */ |
9131 | }; | 9131 | }; |
9132 | 9132 | ||
9133 | static struct snd_kcontrol_new alc883_3ST_2ch_mixer[] = { | 9133 | static const struct snd_kcontrol_new alc883_3ST_2ch_mixer[] = { |
9134 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9134 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9135 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9135 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9136 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | 9136 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), |
@@ -9147,7 +9147,7 @@ static struct snd_kcontrol_new alc883_3ST_2ch_mixer[] = { | |||
9147 | { } /* end */ | 9147 | { } /* end */ |
9148 | }; | 9148 | }; |
9149 | 9149 | ||
9150 | static struct snd_kcontrol_new alc883_3ST_6ch_mixer[] = { | 9150 | static const struct snd_kcontrol_new alc883_3ST_6ch_mixer[] = { |
9151 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9151 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9152 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9152 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9153 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 9153 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -9170,7 +9170,7 @@ static struct snd_kcontrol_new alc883_3ST_6ch_mixer[] = { | |||
9170 | { } /* end */ | 9170 | { } /* end */ |
9171 | }; | 9171 | }; |
9172 | 9172 | ||
9173 | static struct snd_kcontrol_new alc883_3ST_6ch_intel_mixer[] = { | 9173 | static const struct snd_kcontrol_new alc883_3ST_6ch_intel_mixer[] = { |
9174 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9174 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9175 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9175 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9176 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 9176 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -9194,7 +9194,7 @@ static struct snd_kcontrol_new alc883_3ST_6ch_intel_mixer[] = { | |||
9194 | { } /* end */ | 9194 | { } /* end */ |
9195 | }; | 9195 | }; |
9196 | 9196 | ||
9197 | static struct snd_kcontrol_new alc885_8ch_intel_mixer[] = { | 9197 | static const struct snd_kcontrol_new alc885_8ch_intel_mixer[] = { |
9198 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9198 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9199 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9199 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9200 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 9200 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -9218,7 +9218,7 @@ static struct snd_kcontrol_new alc885_8ch_intel_mixer[] = { | |||
9218 | { } /* end */ | 9218 | { } /* end */ |
9219 | }; | 9219 | }; |
9220 | 9220 | ||
9221 | static struct snd_kcontrol_new alc883_fivestack_mixer[] = { | 9221 | static const struct snd_kcontrol_new alc883_fivestack_mixer[] = { |
9222 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9222 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9223 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9223 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9224 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 9224 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -9241,7 +9241,7 @@ static struct snd_kcontrol_new alc883_fivestack_mixer[] = { | |||
9241 | { } /* end */ | 9241 | { } /* end */ |
9242 | }; | 9242 | }; |
9243 | 9243 | ||
9244 | static struct snd_kcontrol_new alc883_targa_mixer[] = { | 9244 | static const struct snd_kcontrol_new alc883_targa_mixer[] = { |
9245 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9245 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9246 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9246 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9247 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 9247 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -9262,7 +9262,7 @@ static struct snd_kcontrol_new alc883_targa_mixer[] = { | |||
9262 | { } /* end */ | 9262 | { } /* end */ |
9263 | }; | 9263 | }; |
9264 | 9264 | ||
9265 | static struct snd_kcontrol_new alc883_targa_2ch_mixer[] = { | 9265 | static const struct snd_kcontrol_new alc883_targa_2ch_mixer[] = { |
9266 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9266 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9267 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9267 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9268 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 9268 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -9278,7 +9278,7 @@ static struct snd_kcontrol_new alc883_targa_2ch_mixer[] = { | |||
9278 | { } /* end */ | 9278 | { } /* end */ |
9279 | }; | 9279 | }; |
9280 | 9280 | ||
9281 | static struct snd_kcontrol_new alc883_targa_8ch_mixer[] = { | 9281 | static const struct snd_kcontrol_new alc883_targa_8ch_mixer[] = { |
9282 | HDA_CODEC_VOLUME("Side Playback Volume", 0x0f, 0x0, HDA_OUTPUT), | 9282 | HDA_CODEC_VOLUME("Side Playback Volume", 0x0f, 0x0, HDA_OUTPUT), |
9283 | HDA_BIND_MUTE("Side Playback Switch", 0x0f, 2, HDA_INPUT), | 9283 | HDA_BIND_MUTE("Side Playback Switch", 0x0f, 2, HDA_INPUT), |
9284 | HDA_CODEC_VOLUME("Internal Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), | 9284 | HDA_CODEC_VOLUME("Internal Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), |
@@ -9287,7 +9287,7 @@ static struct snd_kcontrol_new alc883_targa_8ch_mixer[] = { | |||
9287 | { } /* end */ | 9287 | { } /* end */ |
9288 | }; | 9288 | }; |
9289 | 9289 | ||
9290 | static struct snd_kcontrol_new alc883_lenovo_101e_2ch_mixer[] = { | 9290 | static const struct snd_kcontrol_new alc883_lenovo_101e_2ch_mixer[] = { |
9291 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9291 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9292 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9292 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9293 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 9293 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -9299,7 +9299,7 @@ static struct snd_kcontrol_new alc883_lenovo_101e_2ch_mixer[] = { | |||
9299 | { } /* end */ | 9299 | { } /* end */ |
9300 | }; | 9300 | }; |
9301 | 9301 | ||
9302 | static struct snd_kcontrol_new alc883_lenovo_nb0763_mixer[] = { | 9302 | static const struct snd_kcontrol_new alc883_lenovo_nb0763_mixer[] = { |
9303 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9303 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9304 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 2, HDA_INPUT), | 9304 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 2, HDA_INPUT), |
9305 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 9305 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -9312,7 +9312,7 @@ static struct snd_kcontrol_new alc883_lenovo_nb0763_mixer[] = { | |||
9312 | { } /* end */ | 9312 | { } /* end */ |
9313 | }; | 9313 | }; |
9314 | 9314 | ||
9315 | static struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = { | 9315 | static const struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = { |
9316 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9316 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9317 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9317 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9318 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 9318 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -9322,7 +9322,7 @@ static struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = { | |||
9322 | { } /* end */ | 9322 | { } /* end */ |
9323 | }; | 9323 | }; |
9324 | 9324 | ||
9325 | static struct hda_verb alc883_medion_wim2160_verbs[] = { | 9325 | static const struct hda_verb alc883_medion_wim2160_verbs[] = { |
9326 | /* Unmute front mixer */ | 9326 | /* Unmute front mixer */ |
9327 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 9327 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
9328 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 9328 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
@@ -9350,7 +9350,7 @@ static void alc883_medion_wim2160_setup(struct hda_codec *codec) | |||
9350 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 9350 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
9351 | } | 9351 | } |
9352 | 9352 | ||
9353 | static struct snd_kcontrol_new alc883_acer_aspire_mixer[] = { | 9353 | static const struct snd_kcontrol_new alc883_acer_aspire_mixer[] = { |
9354 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9354 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9355 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9355 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9356 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 9356 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -9362,7 +9362,7 @@ static struct snd_kcontrol_new alc883_acer_aspire_mixer[] = { | |||
9362 | { } /* end */ | 9362 | { } /* end */ |
9363 | }; | 9363 | }; |
9364 | 9364 | ||
9365 | static struct snd_kcontrol_new alc888_acer_aspire_6530_mixer[] = { | 9365 | static const struct snd_kcontrol_new alc888_acer_aspire_6530_mixer[] = { |
9366 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9366 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9367 | HDA_CODEC_VOLUME("LFE Playback Volume", 0x0f, 0x0, HDA_OUTPUT), | 9367 | HDA_CODEC_VOLUME("LFE Playback Volume", 0x0f, 0x0, HDA_OUTPUT), |
9368 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), | 9368 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), |
@@ -9375,7 +9375,7 @@ static struct snd_kcontrol_new alc888_acer_aspire_6530_mixer[] = { | |||
9375 | { } /* end */ | 9375 | { } /* end */ |
9376 | }; | 9376 | }; |
9377 | 9377 | ||
9378 | static struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = { | 9378 | static const struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = { |
9379 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9379 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9380 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9380 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9381 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0e, 0x0, HDA_OUTPUT), | 9381 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0e, 0x0, HDA_OUTPUT), |
@@ -9400,7 +9400,7 @@ static struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = { | |||
9400 | { } /* end */ | 9400 | { } /* end */ |
9401 | }; | 9401 | }; |
9402 | 9402 | ||
9403 | static struct snd_kcontrol_new alc889A_mb31_mixer[] = { | 9403 | static const struct snd_kcontrol_new alc889A_mb31_mixer[] = { |
9404 | /* Output mixers */ | 9404 | /* Output mixers */ |
9405 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 9405 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
9406 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 0x02, HDA_INPUT), | 9406 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 0x02, HDA_INPUT), |
@@ -9426,7 +9426,7 @@ static struct snd_kcontrol_new alc889A_mb31_mixer[] = { | |||
9426 | { } /* end */ | 9426 | { } /* end */ |
9427 | }; | 9427 | }; |
9428 | 9428 | ||
9429 | static struct snd_kcontrol_new alc883_vaiott_mixer[] = { | 9429 | static const struct snd_kcontrol_new alc883_vaiott_mixer[] = { |
9430 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9430 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9431 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9431 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9432 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 9432 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -9436,7 +9436,7 @@ static struct snd_kcontrol_new alc883_vaiott_mixer[] = { | |||
9436 | { } /* end */ | 9436 | { } /* end */ |
9437 | }; | 9437 | }; |
9438 | 9438 | ||
9439 | static struct hda_bind_ctls alc883_bind_cap_vol = { | 9439 | static const struct hda_bind_ctls alc883_bind_cap_vol = { |
9440 | .ops = &snd_hda_bind_vol, | 9440 | .ops = &snd_hda_bind_vol, |
9441 | .values = { | 9441 | .values = { |
9442 | HDA_COMPOSE_AMP_VAL(0x08, 3, 0, HDA_INPUT), | 9442 | HDA_COMPOSE_AMP_VAL(0x08, 3, 0, HDA_INPUT), |
@@ -9445,7 +9445,7 @@ static struct hda_bind_ctls alc883_bind_cap_vol = { | |||
9445 | }, | 9445 | }, |
9446 | }; | 9446 | }; |
9447 | 9447 | ||
9448 | static struct hda_bind_ctls alc883_bind_cap_switch = { | 9448 | static const struct hda_bind_ctls alc883_bind_cap_switch = { |
9449 | .ops = &snd_hda_bind_sw, | 9449 | .ops = &snd_hda_bind_sw, |
9450 | .values = { | 9450 | .values = { |
9451 | HDA_COMPOSE_AMP_VAL(0x08, 3, 0, HDA_INPUT), | 9451 | HDA_COMPOSE_AMP_VAL(0x08, 3, 0, HDA_INPUT), |
@@ -9454,7 +9454,7 @@ static struct hda_bind_ctls alc883_bind_cap_switch = { | |||
9454 | }, | 9454 | }, |
9455 | }; | 9455 | }; |
9456 | 9456 | ||
9457 | static struct snd_kcontrol_new alc883_asus_eee1601_mixer[] = { | 9457 | static const struct snd_kcontrol_new alc883_asus_eee1601_mixer[] = { |
9458 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 9458 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
9459 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 9459 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
9460 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 9460 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -9466,7 +9466,7 @@ static struct snd_kcontrol_new alc883_asus_eee1601_mixer[] = { | |||
9466 | { } /* end */ | 9466 | { } /* end */ |
9467 | }; | 9467 | }; |
9468 | 9468 | ||
9469 | static struct snd_kcontrol_new alc883_asus_eee1601_cap_mixer[] = { | 9469 | static const struct snd_kcontrol_new alc883_asus_eee1601_cap_mixer[] = { |
9470 | HDA_BIND_VOL("Capture Volume", &alc883_bind_cap_vol), | 9470 | HDA_BIND_VOL("Capture Volume", &alc883_bind_cap_vol), |
9471 | HDA_BIND_SW("Capture Switch", &alc883_bind_cap_switch), | 9471 | HDA_BIND_SW("Capture Switch", &alc883_bind_cap_switch), |
9472 | { | 9472 | { |
@@ -9481,7 +9481,7 @@ static struct snd_kcontrol_new alc883_asus_eee1601_cap_mixer[] = { | |||
9481 | { } /* end */ | 9481 | { } /* end */ |
9482 | }; | 9482 | }; |
9483 | 9483 | ||
9484 | static struct snd_kcontrol_new alc883_chmode_mixer[] = { | 9484 | static const struct snd_kcontrol_new alc883_chmode_mixer[] = { |
9485 | { | 9485 | { |
9486 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 9486 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
9487 | .name = "Channel Mode", | 9487 | .name = "Channel Mode", |
@@ -9504,7 +9504,7 @@ static void alc883_mitac_setup(struct hda_codec *codec) | |||
9504 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 9504 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
9505 | } | 9505 | } |
9506 | 9506 | ||
9507 | static struct hda_verb alc883_mitac_verbs[] = { | 9507 | static const struct hda_verb alc883_mitac_verbs[] = { |
9508 | /* HP */ | 9508 | /* HP */ |
9509 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9509 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
9510 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9510 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -9519,7 +9519,7 @@ static struct hda_verb alc883_mitac_verbs[] = { | |||
9519 | { } /* end */ | 9519 | { } /* end */ |
9520 | }; | 9520 | }; |
9521 | 9521 | ||
9522 | static struct hda_verb alc883_clevo_m540r_verbs[] = { | 9522 | static const struct hda_verb alc883_clevo_m540r_verbs[] = { |
9523 | /* HP */ | 9523 | /* HP */ |
9524 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9524 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
9525 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9525 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -9535,7 +9535,7 @@ static struct hda_verb alc883_clevo_m540r_verbs[] = { | |||
9535 | { } /* end */ | 9535 | { } /* end */ |
9536 | }; | 9536 | }; |
9537 | 9537 | ||
9538 | static struct hda_verb alc883_clevo_m720_verbs[] = { | 9538 | static const struct hda_verb alc883_clevo_m720_verbs[] = { |
9539 | /* HP */ | 9539 | /* HP */ |
9540 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9540 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
9541 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9541 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -9550,7 +9550,7 @@ static struct hda_verb alc883_clevo_m720_verbs[] = { | |||
9550 | { } /* end */ | 9550 | { } /* end */ |
9551 | }; | 9551 | }; |
9552 | 9552 | ||
9553 | static struct hda_verb alc883_2ch_fujitsu_pi2515_verbs[] = { | 9553 | static const struct hda_verb alc883_2ch_fujitsu_pi2515_verbs[] = { |
9554 | /* HP */ | 9554 | /* HP */ |
9555 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9555 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, |
9556 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9556 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -9564,7 +9564,7 @@ static struct hda_verb alc883_2ch_fujitsu_pi2515_verbs[] = { | |||
9564 | { } /* end */ | 9564 | { } /* end */ |
9565 | }; | 9565 | }; |
9566 | 9566 | ||
9567 | static struct hda_verb alc883_targa_verbs[] = { | 9567 | static const struct hda_verb alc883_targa_verbs[] = { |
9568 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 9568 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
9569 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 9569 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
9570 | 9570 | ||
@@ -9593,14 +9593,14 @@ static struct hda_verb alc883_targa_verbs[] = { | |||
9593 | { } /* end */ | 9593 | { } /* end */ |
9594 | }; | 9594 | }; |
9595 | 9595 | ||
9596 | static struct hda_verb alc883_lenovo_101e_verbs[] = { | 9596 | static const struct hda_verb alc883_lenovo_101e_verbs[] = { |
9597 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9597 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
9598 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_FRONT_EVENT|AC_USRSP_EN}, | 9598 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_FRONT_EVENT|AC_USRSP_EN}, |
9599 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT|AC_USRSP_EN}, | 9599 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT|AC_USRSP_EN}, |
9600 | { } /* end */ | 9600 | { } /* end */ |
9601 | }; | 9601 | }; |
9602 | 9602 | ||
9603 | static struct hda_verb alc883_lenovo_nb0763_verbs[] = { | 9603 | static const struct hda_verb alc883_lenovo_nb0763_verbs[] = { |
9604 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9604 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
9605 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9605 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
9606 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | 9606 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, |
@@ -9608,7 +9608,7 @@ static struct hda_verb alc883_lenovo_nb0763_verbs[] = { | |||
9608 | { } /* end */ | 9608 | { } /* end */ |
9609 | }; | 9609 | }; |
9610 | 9610 | ||
9611 | static struct hda_verb alc888_lenovo_ms7195_verbs[] = { | 9611 | static const struct hda_verb alc888_lenovo_ms7195_verbs[] = { |
9612 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 9612 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
9613 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 9613 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
9614 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9614 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
@@ -9617,7 +9617,7 @@ static struct hda_verb alc888_lenovo_ms7195_verbs[] = { | |||
9617 | { } /* end */ | 9617 | { } /* end */ |
9618 | }; | 9618 | }; |
9619 | 9619 | ||
9620 | static struct hda_verb alc883_haier_w66_verbs[] = { | 9620 | static const struct hda_verb alc883_haier_w66_verbs[] = { |
9621 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 9621 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
9622 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 9622 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
9623 | 9623 | ||
@@ -9630,7 +9630,7 @@ static struct hda_verb alc883_haier_w66_verbs[] = { | |||
9630 | { } /* end */ | 9630 | { } /* end */ |
9631 | }; | 9631 | }; |
9632 | 9632 | ||
9633 | static struct hda_verb alc888_lenovo_sky_verbs[] = { | 9633 | static const struct hda_verb alc888_lenovo_sky_verbs[] = { |
9634 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 9634 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
9635 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 9635 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
9636 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 9636 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
@@ -9642,12 +9642,12 @@ static struct hda_verb alc888_lenovo_sky_verbs[] = { | |||
9642 | { } /* end */ | 9642 | { } /* end */ |
9643 | }; | 9643 | }; |
9644 | 9644 | ||
9645 | static struct hda_verb alc888_6st_dell_verbs[] = { | 9645 | static const struct hda_verb alc888_6st_dell_verbs[] = { |
9646 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | 9646 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, |
9647 | { } | 9647 | { } |
9648 | }; | 9648 | }; |
9649 | 9649 | ||
9650 | static struct hda_verb alc883_vaiott_verbs[] = { | 9650 | static const struct hda_verb alc883_vaiott_verbs[] = { |
9651 | /* HP */ | 9651 | /* HP */ |
9652 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 9652 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
9653 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9653 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -9670,7 +9670,7 @@ static void alc888_3st_hp_setup(struct hda_codec *codec) | |||
9670 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 9670 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
9671 | } | 9671 | } |
9672 | 9672 | ||
9673 | static struct hda_verb alc888_3st_hp_verbs[] = { | 9673 | static const struct hda_verb alc888_3st_hp_verbs[] = { |
9674 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Front: output 0 (0x0c) */ | 9674 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Front: output 0 (0x0c) */ |
9675 | {0x16, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Rear : output 1 (0x0d) */ | 9675 | {0x16, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Rear : output 1 (0x0d) */ |
9676 | {0x18, AC_VERB_SET_CONNECT_SEL, 0x02}, /* CLFE : output 2 (0x0e) */ | 9676 | {0x18, AC_VERB_SET_CONNECT_SEL, 0x02}, /* CLFE : output 2 (0x0e) */ |
@@ -9681,7 +9681,7 @@ static struct hda_verb alc888_3st_hp_verbs[] = { | |||
9681 | /* | 9681 | /* |
9682 | * 2ch mode | 9682 | * 2ch mode |
9683 | */ | 9683 | */ |
9684 | static struct hda_verb alc888_3st_hp_2ch_init[] = { | 9684 | static const struct hda_verb alc888_3st_hp_2ch_init[] = { |
9685 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 9685 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
9686 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 9686 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
9687 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 9687 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
@@ -9692,7 +9692,7 @@ static struct hda_verb alc888_3st_hp_2ch_init[] = { | |||
9692 | /* | 9692 | /* |
9693 | * 4ch mode | 9693 | * 4ch mode |
9694 | */ | 9694 | */ |
9695 | static struct hda_verb alc888_3st_hp_4ch_init[] = { | 9695 | static const struct hda_verb alc888_3st_hp_4ch_init[] = { |
9696 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 9696 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
9697 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 9697 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
9698 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 9698 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -9704,7 +9704,7 @@ static struct hda_verb alc888_3st_hp_4ch_init[] = { | |||
9704 | /* | 9704 | /* |
9705 | * 6ch mode | 9705 | * 6ch mode |
9706 | */ | 9706 | */ |
9707 | static struct hda_verb alc888_3st_hp_6ch_init[] = { | 9707 | static const struct hda_verb alc888_3st_hp_6ch_init[] = { |
9708 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 9708 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
9709 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 9709 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
9710 | { 0x18, AC_VERB_SET_CONNECT_SEL, 0x02 }, | 9710 | { 0x18, AC_VERB_SET_CONNECT_SEL, 0x02 }, |
@@ -9714,7 +9714,7 @@ static struct hda_verb alc888_3st_hp_6ch_init[] = { | |||
9714 | { } /* end */ | 9714 | { } /* end */ |
9715 | }; | 9715 | }; |
9716 | 9716 | ||
9717 | static struct hda_channel_mode alc888_3st_hp_modes[3] = { | 9717 | static const struct hda_channel_mode alc888_3st_hp_modes[3] = { |
9718 | { 2, alc888_3st_hp_2ch_init }, | 9718 | { 2, alc888_3st_hp_2ch_init }, |
9719 | { 4, alc888_3st_hp_4ch_init }, | 9719 | { 4, alc888_3st_hp_4ch_init }, |
9720 | { 6, alc888_3st_hp_6ch_init }, | 9720 | { 6, alc888_3st_hp_6ch_init }, |
@@ -9821,7 +9821,7 @@ static void alc883_acer_aspire_setup(struct hda_codec *codec) | |||
9821 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 9821 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
9822 | } | 9822 | } |
9823 | 9823 | ||
9824 | static struct hda_verb alc883_acer_eapd_verbs[] = { | 9824 | static const struct hda_verb alc883_acer_eapd_verbs[] = { |
9825 | /* HP Pin: output 0 (0x0c) */ | 9825 | /* HP Pin: output 0 (0x0c) */ |
9826 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9826 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
9827 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 9827 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -9877,7 +9877,7 @@ static void alc883_vaiott_setup(struct hda_codec *codec) | |||
9877 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 9877 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
9878 | } | 9878 | } |
9879 | 9879 | ||
9880 | static struct hda_verb alc888_asus_m90v_verbs[] = { | 9880 | static const struct hda_verb alc888_asus_m90v_verbs[] = { |
9881 | {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 9881 | {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
9882 | {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 9882 | {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
9883 | {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 9883 | {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
@@ -9904,7 +9904,7 @@ static void alc883_mode2_setup(struct hda_codec *codec) | |||
9904 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 9904 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
9905 | } | 9905 | } |
9906 | 9906 | ||
9907 | static struct hda_verb alc888_asus_eee1601_verbs[] = { | 9907 | static const struct hda_verb alc888_asus_eee1601_verbs[] = { |
9908 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 9908 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
9909 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 9909 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
9910 | {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 9910 | {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
@@ -9926,7 +9926,7 @@ static void alc883_eee1601_inithook(struct hda_codec *codec) | |||
9926 | alc_hp_automute(codec); | 9926 | alc_hp_automute(codec); |
9927 | } | 9927 | } |
9928 | 9928 | ||
9929 | static struct hda_verb alc889A_mb31_verbs[] = { | 9929 | static const struct hda_verb alc889A_mb31_verbs[] = { |
9930 | /* Init rear pin (used as headphone output) */ | 9930 | /* Init rear pin (used as headphone output) */ |
9931 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc4}, /* Apple Headphones */ | 9931 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc4}, /* Apple Headphones */ |
9932 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Connect to front */ | 9932 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Connect to front */ |
@@ -10035,7 +10035,7 @@ static const char * const alc882_models[ALC882_MODEL_LAST] = { | |||
10035 | [ALC882_AUTO] = "auto", | 10035 | [ALC882_AUTO] = "auto", |
10036 | }; | 10036 | }; |
10037 | 10037 | ||
10038 | static struct snd_pci_quirk alc882_cfg_tbl[] = { | 10038 | static const struct snd_pci_quirk alc882_cfg_tbl[] = { |
10039 | SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC882_6ST_DIG), | 10039 | SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC882_6ST_DIG), |
10040 | 10040 | ||
10041 | SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE), | 10041 | SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE), |
@@ -10162,7 +10162,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = { | |||
10162 | }; | 10162 | }; |
10163 | 10163 | ||
10164 | /* codec SSID table for Intel Mac */ | 10164 | /* codec SSID table for Intel Mac */ |
10165 | static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = { | 10165 | static const struct snd_pci_quirk alc882_ssid_cfg_tbl[] = { |
10166 | SND_PCI_QUIRK(0x106b, 0x00a0, "MacBookPro 3,1", ALC885_MBP3), | 10166 | SND_PCI_QUIRK(0x106b, 0x00a0, "MacBookPro 3,1", ALC885_MBP3), |
10167 | SND_PCI_QUIRK(0x106b, 0x00a1, "Macbook", ALC885_MBP3), | 10167 | SND_PCI_QUIRK(0x106b, 0x00a1, "Macbook", ALC885_MBP3), |
10168 | SND_PCI_QUIRK(0x106b, 0x00a4, "MacbookPro 4,1", ALC885_MBP3), | 10168 | SND_PCI_QUIRK(0x106b, 0x00a4, "MacbookPro 4,1", ALC885_MBP3), |
@@ -10189,7 +10189,7 @@ static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = { | |||
10189 | {} /* terminator */ | 10189 | {} /* terminator */ |
10190 | }; | 10190 | }; |
10191 | 10191 | ||
10192 | static struct alc_config_preset alc882_presets[] = { | 10192 | static const struct alc_config_preset alc882_presets[] = { |
10193 | [ALC882_3ST_DIG] = { | 10193 | [ALC882_3ST_DIG] = { |
10194 | .mixers = { alc882_base_mixer }, | 10194 | .mixers = { alc882_base_mixer }, |
10195 | .init_verbs = { alc882_base_init_verbs, | 10195 | .init_verbs = { alc882_base_init_verbs, |
@@ -10966,7 +10966,7 @@ static const struct alc_fixup alc882_fixups[] = { | |||
10966 | }, | 10966 | }, |
10967 | }; | 10967 | }; |
10968 | 10968 | ||
10969 | static struct snd_pci_quirk alc882_fixup_tbl[] = { | 10969 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { |
10970 | SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210), | 10970 | SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210), |
10971 | SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), | 10971 | SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), |
10972 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), | 10972 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), |
@@ -11382,7 +11382,7 @@ static hda_nid_t alc262_dmic_adc_nids[1] = { | |||
11382 | 11382 | ||
11383 | static hda_nid_t alc262_dmic_capsrc_nids[1] = { 0x22 }; | 11383 | static hda_nid_t alc262_dmic_capsrc_nids[1] = { 0x22 }; |
11384 | 11384 | ||
11385 | static struct snd_kcontrol_new alc262_base_mixer[] = { | 11385 | static const struct snd_kcontrol_new alc262_base_mixer[] = { |
11386 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11386 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11387 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 11387 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
11388 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | 11388 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), |
@@ -11443,7 +11443,7 @@ static void alc262_hp_wildwest_setup(struct hda_codec *codec) | |||
11443 | } | 11443 | } |
11444 | 11444 | ||
11445 | 11445 | ||
11446 | static struct snd_kcontrol_new alc262_HP_BPC_mixer[] = { | 11446 | static const struct snd_kcontrol_new alc262_HP_BPC_mixer[] = { |
11447 | ALC262_HP_MASTER_SWITCH, | 11447 | ALC262_HP_MASTER_SWITCH, |
11448 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11448 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11449 | HDA_CODEC_MUTE("Front Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 11449 | HDA_CODEC_MUTE("Front Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -11467,7 +11467,7 @@ static struct snd_kcontrol_new alc262_HP_BPC_mixer[] = { | |||
11467 | { } /* end */ | 11467 | { } /* end */ |
11468 | }; | 11468 | }; |
11469 | 11469 | ||
11470 | static struct snd_kcontrol_new alc262_HP_BPC_WildWest_mixer[] = { | 11470 | static const struct snd_kcontrol_new alc262_HP_BPC_WildWest_mixer[] = { |
11471 | ALC262_HP_MASTER_SWITCH, | 11471 | ALC262_HP_MASTER_SWITCH, |
11472 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11472 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11473 | HDA_CODEC_MUTE("Front Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | 11473 | HDA_CODEC_MUTE("Front Playback Switch", 0x1b, 0x0, HDA_OUTPUT), |
@@ -11487,7 +11487,7 @@ static struct snd_kcontrol_new alc262_HP_BPC_WildWest_mixer[] = { | |||
11487 | { } /* end */ | 11487 | { } /* end */ |
11488 | }; | 11488 | }; |
11489 | 11489 | ||
11490 | static struct snd_kcontrol_new alc262_HP_BPC_WildWest_option_mixer[] = { | 11490 | static const struct snd_kcontrol_new alc262_HP_BPC_WildWest_option_mixer[] = { |
11491 | HDA_CODEC_VOLUME("Rear Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 11491 | HDA_CODEC_VOLUME("Rear Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
11492 | HDA_CODEC_MUTE("Rear Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | 11492 | HDA_CODEC_MUTE("Rear Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), |
11493 | HDA_CODEC_VOLUME("Rear Mic Boost Volume", 0x18, 0, HDA_INPUT), | 11493 | HDA_CODEC_VOLUME("Rear Mic Boost Volume", 0x18, 0, HDA_INPUT), |
@@ -11505,7 +11505,7 @@ static void alc262_hp_t5735_setup(struct hda_codec *codec) | |||
11505 | spec->automute_mode = ALC_AUTOMUTE_PIN; | 11505 | spec->automute_mode = ALC_AUTOMUTE_PIN; |
11506 | } | 11506 | } |
11507 | 11507 | ||
11508 | static struct snd_kcontrol_new alc262_hp_t5735_mixer[] = { | 11508 | static const struct snd_kcontrol_new alc262_hp_t5735_mixer[] = { |
11509 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11509 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11510 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 11510 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
11511 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | 11511 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0d, 0x0, HDA_OUTPUT), |
@@ -11516,7 +11516,7 @@ static struct snd_kcontrol_new alc262_hp_t5735_mixer[] = { | |||
11516 | { } /* end */ | 11516 | { } /* end */ |
11517 | }; | 11517 | }; |
11518 | 11518 | ||
11519 | static struct hda_verb alc262_hp_t5735_verbs[] = { | 11519 | static const struct hda_verb alc262_hp_t5735_verbs[] = { |
11520 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 11520 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
11521 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 11521 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
11522 | 11522 | ||
@@ -11524,7 +11524,7 @@ static struct hda_verb alc262_hp_t5735_verbs[] = { | |||
11524 | { } | 11524 | { } |
11525 | }; | 11525 | }; |
11526 | 11526 | ||
11527 | static struct snd_kcontrol_new alc262_hp_rp5700_mixer[] = { | 11527 | static const struct snd_kcontrol_new alc262_hp_rp5700_mixer[] = { |
11528 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11528 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11529 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | 11529 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), |
11530 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0e, 0x0, HDA_OUTPUT), | 11530 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0e, 0x0, HDA_OUTPUT), |
@@ -11534,7 +11534,7 @@ static struct snd_kcontrol_new alc262_hp_rp5700_mixer[] = { | |||
11534 | { } /* end */ | 11534 | { } /* end */ |
11535 | }; | 11535 | }; |
11536 | 11536 | ||
11537 | static struct hda_verb alc262_hp_rp5700_verbs[] = { | 11537 | static const struct hda_verb alc262_hp_rp5700_verbs[] = { |
11538 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 11538 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
11539 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 11539 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
11540 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 11540 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
@@ -11548,7 +11548,7 @@ static struct hda_verb alc262_hp_rp5700_verbs[] = { | |||
11548 | {} | 11548 | {} |
11549 | }; | 11549 | }; |
11550 | 11550 | ||
11551 | static struct hda_input_mux alc262_hp_rp5700_capture_source = { | 11551 | static const struct hda_input_mux alc262_hp_rp5700_capture_source = { |
11552 | .num_items = 1, | 11552 | .num_items = 1, |
11553 | .items = { | 11553 | .items = { |
11554 | { "Line", 0x1 }, | 11554 | { "Line", 0x1 }, |
@@ -11575,7 +11575,7 @@ static struct hda_input_mux alc262_hp_rp5700_capture_source = { | |||
11575 | (SUBDEV_SPEAKER(0) << 16), \ | 11575 | (SUBDEV_SPEAKER(0) << 16), \ |
11576 | } | 11576 | } |
11577 | 11577 | ||
11578 | static struct snd_kcontrol_new alc262_hippo_mixer[] = { | 11578 | static const struct snd_kcontrol_new alc262_hippo_mixer[] = { |
11579 | ALC262_HIPPO_MASTER_SWITCH, | 11579 | ALC262_HIPPO_MASTER_SWITCH, |
11580 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11580 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11581 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | 11581 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), |
@@ -11592,7 +11592,7 @@ static struct snd_kcontrol_new alc262_hippo_mixer[] = { | |||
11592 | { } /* end */ | 11592 | { } /* end */ |
11593 | }; | 11593 | }; |
11594 | 11594 | ||
11595 | static struct snd_kcontrol_new alc262_hippo1_mixer[] = { | 11595 | static const struct snd_kcontrol_new alc262_hippo1_mixer[] = { |
11596 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11596 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11597 | ALC262_HIPPO_MASTER_SWITCH, | 11597 | ALC262_HIPPO_MASTER_SWITCH, |
11598 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | 11598 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), |
@@ -11630,7 +11630,7 @@ static void alc262_hippo1_setup(struct hda_codec *codec) | |||
11630 | } | 11630 | } |
11631 | 11631 | ||
11632 | 11632 | ||
11633 | static struct snd_kcontrol_new alc262_sony_mixer[] = { | 11633 | static const struct snd_kcontrol_new alc262_sony_mixer[] = { |
11634 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11634 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11635 | ALC262_HIPPO_MASTER_SWITCH, | 11635 | ALC262_HIPPO_MASTER_SWITCH, |
11636 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 11636 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
@@ -11640,7 +11640,7 @@ static struct snd_kcontrol_new alc262_sony_mixer[] = { | |||
11640 | { } /* end */ | 11640 | { } /* end */ |
11641 | }; | 11641 | }; |
11642 | 11642 | ||
11643 | static struct snd_kcontrol_new alc262_benq_t31_mixer[] = { | 11643 | static const struct snd_kcontrol_new alc262_benq_t31_mixer[] = { |
11644 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11644 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11645 | ALC262_HIPPO_MASTER_SWITCH, | 11645 | ALC262_HIPPO_MASTER_SWITCH, |
11646 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 11646 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -11651,7 +11651,7 @@ static struct snd_kcontrol_new alc262_benq_t31_mixer[] = { | |||
11651 | { } /* end */ | 11651 | { } /* end */ |
11652 | }; | 11652 | }; |
11653 | 11653 | ||
11654 | static struct snd_kcontrol_new alc262_tyan_mixer[] = { | 11654 | static const struct snd_kcontrol_new alc262_tyan_mixer[] = { |
11655 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11655 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11656 | HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT), | 11656 | HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT), |
11657 | HDA_CODEC_VOLUME("Aux Playback Volume", 0x0b, 0x06, HDA_INPUT), | 11657 | HDA_CODEC_VOLUME("Aux Playback Volume", 0x0b, 0x06, HDA_INPUT), |
@@ -11667,7 +11667,7 @@ static struct snd_kcontrol_new alc262_tyan_mixer[] = { | |||
11667 | { } /* end */ | 11667 | { } /* end */ |
11668 | }; | 11668 | }; |
11669 | 11669 | ||
11670 | static struct hda_verb alc262_tyan_verbs[] = { | 11670 | static const struct hda_verb alc262_tyan_verbs[] = { |
11671 | /* Headphone automute */ | 11671 | /* Headphone automute */ |
11672 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, | 11672 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, |
11673 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 11673 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -11700,7 +11700,7 @@ static void alc262_tyan_setup(struct hda_codec *codec) | |||
11700 | /* | 11700 | /* |
11701 | * generic initialization of ADC, input mixers and output mixers | 11701 | * generic initialization of ADC, input mixers and output mixers |
11702 | */ | 11702 | */ |
11703 | static struct hda_verb alc262_init_verbs[] = { | 11703 | static const struct hda_verb alc262_init_verbs[] = { |
11704 | /* | 11704 | /* |
11705 | * Unmute ADC0-2 and set the default input to mic-in | 11705 | * Unmute ADC0-2 and set the default input to mic-in |
11706 | */ | 11706 | */ |
@@ -11776,13 +11776,13 @@ static struct hda_verb alc262_init_verbs[] = { | |||
11776 | { } | 11776 | { } |
11777 | }; | 11777 | }; |
11778 | 11778 | ||
11779 | static struct hda_verb alc262_eapd_verbs[] = { | 11779 | static const struct hda_verb alc262_eapd_verbs[] = { |
11780 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 11780 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
11781 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 11781 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
11782 | { } | 11782 | { } |
11783 | }; | 11783 | }; |
11784 | 11784 | ||
11785 | static struct hda_verb alc262_hippo1_unsol_verbs[] = { | 11785 | static const struct hda_verb alc262_hippo1_unsol_verbs[] = { |
11786 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, | 11786 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, |
11787 | {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00}, | 11787 | {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00}, |
11788 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, | 11788 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, |
@@ -11792,7 +11792,7 @@ static struct hda_verb alc262_hippo1_unsol_verbs[] = { | |||
11792 | {} | 11792 | {} |
11793 | }; | 11793 | }; |
11794 | 11794 | ||
11795 | static struct hda_verb alc262_sony_unsol_verbs[] = { | 11795 | static const struct hda_verb alc262_sony_unsol_verbs[] = { |
11796 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, | 11796 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, |
11797 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 11797 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
11798 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, // Front Mic | 11798 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, // Front Mic |
@@ -11802,7 +11802,7 @@ static struct hda_verb alc262_sony_unsol_verbs[] = { | |||
11802 | {} | 11802 | {} |
11803 | }; | 11803 | }; |
11804 | 11804 | ||
11805 | static struct snd_kcontrol_new alc262_toshiba_s06_mixer[] = { | 11805 | static const struct snd_kcontrol_new alc262_toshiba_s06_mixer[] = { |
11806 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 11806 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
11807 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 11807 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
11808 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 11808 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -11811,7 +11811,7 @@ static struct snd_kcontrol_new alc262_toshiba_s06_mixer[] = { | |||
11811 | { } /* end */ | 11811 | { } /* end */ |
11812 | }; | 11812 | }; |
11813 | 11813 | ||
11814 | static struct hda_verb alc262_toshiba_s06_verbs[] = { | 11814 | static const struct hda_verb alc262_toshiba_s06_verbs[] = { |
11815 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 11815 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
11816 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 11816 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
11817 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 11817 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -11845,7 +11845,7 @@ static void alc262_toshiba_s06_setup(struct hda_codec *codec) | |||
11845 | * 0x18 = external mic | 11845 | * 0x18 = external mic |
11846 | */ | 11846 | */ |
11847 | 11847 | ||
11848 | static struct snd_kcontrol_new alc262_nec_mixer[] = { | 11848 | static const struct snd_kcontrol_new alc262_nec_mixer[] = { |
11849 | HDA_CODEC_VOLUME_MONO("Speaker Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT), | 11849 | HDA_CODEC_VOLUME_MONO("Speaker Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT), |
11850 | HDA_CODEC_MUTE_MONO("Speaker Playback Switch", 0x16, 0, 0x0, HDA_OUTPUT), | 11850 | HDA_CODEC_MUTE_MONO("Speaker Playback Switch", 0x16, 0, 0x0, HDA_OUTPUT), |
11851 | 11851 | ||
@@ -11858,7 +11858,7 @@ static struct snd_kcontrol_new alc262_nec_mixer[] = { | |||
11858 | { } /* end */ | 11858 | { } /* end */ |
11859 | }; | 11859 | }; |
11860 | 11860 | ||
11861 | static struct hda_verb alc262_nec_verbs[] = { | 11861 | static const struct hda_verb alc262_nec_verbs[] = { |
11862 | /* Unmute Speaker */ | 11862 | /* Unmute Speaker */ |
11863 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 11863 | {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
11864 | 11864 | ||
@@ -11881,7 +11881,7 @@ static struct hda_verb alc262_nec_verbs[] = { | |||
11881 | 11881 | ||
11882 | #define ALC_HP_EVENT 0x37 | 11882 | #define ALC_HP_EVENT 0x37 |
11883 | 11883 | ||
11884 | static struct hda_verb alc262_fujitsu_unsol_verbs[] = { | 11884 | static const struct hda_verb alc262_fujitsu_unsol_verbs[] = { |
11885 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT}, | 11885 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT}, |
11886 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 11886 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
11887 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT}, | 11887 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT}, |
@@ -11889,20 +11889,20 @@ static struct hda_verb alc262_fujitsu_unsol_verbs[] = { | |||
11889 | {} | 11889 | {} |
11890 | }; | 11890 | }; |
11891 | 11891 | ||
11892 | static struct hda_verb alc262_lenovo_3000_unsol_verbs[] = { | 11892 | static const struct hda_verb alc262_lenovo_3000_unsol_verbs[] = { |
11893 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT}, | 11893 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT}, |
11894 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 11894 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
11895 | {} | 11895 | {} |
11896 | }; | 11896 | }; |
11897 | 11897 | ||
11898 | static struct hda_verb alc262_lenovo_3000_init_verbs[] = { | 11898 | static const struct hda_verb alc262_lenovo_3000_init_verbs[] = { |
11899 | /* Front Mic pin: input vref at 50% */ | 11899 | /* Front Mic pin: input vref at 50% */ |
11900 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF50}, | 11900 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF50}, |
11901 | {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, | 11901 | {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, |
11902 | {} | 11902 | {} |
11903 | }; | 11903 | }; |
11904 | 11904 | ||
11905 | static struct hda_input_mux alc262_fujitsu_capture_source = { | 11905 | static const struct hda_input_mux alc262_fujitsu_capture_source = { |
11906 | .num_items = 3, | 11906 | .num_items = 3, |
11907 | .items = { | 11907 | .items = { |
11908 | { "Mic", 0x0 }, | 11908 | { "Mic", 0x0 }, |
@@ -11911,7 +11911,7 @@ static struct hda_input_mux alc262_fujitsu_capture_source = { | |||
11911 | }, | 11911 | }, |
11912 | }; | 11912 | }; |
11913 | 11913 | ||
11914 | static struct hda_input_mux alc262_HP_capture_source = { | 11914 | static const struct hda_input_mux alc262_HP_capture_source = { |
11915 | .num_items = 5, | 11915 | .num_items = 5, |
11916 | .items = { | 11916 | .items = { |
11917 | { "Mic", 0x0 }, | 11917 | { "Mic", 0x0 }, |
@@ -11922,7 +11922,7 @@ static struct hda_input_mux alc262_HP_capture_source = { | |||
11922 | }, | 11922 | }, |
11923 | }; | 11923 | }; |
11924 | 11924 | ||
11925 | static struct hda_input_mux alc262_HP_D7000_capture_source = { | 11925 | static const struct hda_input_mux alc262_HP_D7000_capture_source = { |
11926 | .num_items = 4, | 11926 | .num_items = 4, |
11927 | .items = { | 11927 | .items = { |
11928 | { "Mic", 0x0 }, | 11928 | { "Mic", 0x0 }, |
@@ -11944,7 +11944,7 @@ static void alc262_fujitsu_setup(struct hda_codec *codec) | |||
11944 | } | 11944 | } |
11945 | 11945 | ||
11946 | /* bind volumes of both NID 0x0c and 0x0d */ | 11946 | /* bind volumes of both NID 0x0c and 0x0d */ |
11947 | static struct hda_bind_ctls alc262_fujitsu_bind_master_vol = { | 11947 | static const struct hda_bind_ctls alc262_fujitsu_bind_master_vol = { |
11948 | .ops = &snd_hda_bind_vol, | 11948 | .ops = &snd_hda_bind_vol, |
11949 | .values = { | 11949 | .values = { |
11950 | HDA_COMPOSE_AMP_VAL(0x0c, 3, 0, HDA_OUTPUT), | 11950 | HDA_COMPOSE_AMP_VAL(0x0c, 3, 0, HDA_OUTPUT), |
@@ -11953,7 +11953,7 @@ static struct hda_bind_ctls alc262_fujitsu_bind_master_vol = { | |||
11953 | }, | 11953 | }, |
11954 | }; | 11954 | }; |
11955 | 11955 | ||
11956 | static struct snd_kcontrol_new alc262_fujitsu_mixer[] = { | 11956 | static const struct snd_kcontrol_new alc262_fujitsu_mixer[] = { |
11957 | HDA_BIND_VOL("Master Playback Volume", &alc262_fujitsu_bind_master_vol), | 11957 | HDA_BIND_VOL("Master Playback Volume", &alc262_fujitsu_bind_master_vol), |
11958 | { | 11958 | { |
11959 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 11959 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
@@ -11990,7 +11990,7 @@ static void alc262_lenovo_3000_setup(struct hda_codec *codec) | |||
11990 | spec->automute_mode = ALC_AUTOMUTE_AMP; | 11990 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
11991 | } | 11991 | } |
11992 | 11992 | ||
11993 | static struct snd_kcontrol_new alc262_lenovo_3000_mixer[] = { | 11993 | static const struct snd_kcontrol_new alc262_lenovo_3000_mixer[] = { |
11994 | HDA_BIND_VOL("Master Playback Volume", &alc262_fujitsu_bind_master_vol), | 11994 | HDA_BIND_VOL("Master Playback Volume", &alc262_fujitsu_bind_master_vol), |
11995 | { | 11995 | { |
11996 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 11996 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
@@ -12011,7 +12011,7 @@ static struct snd_kcontrol_new alc262_lenovo_3000_mixer[] = { | |||
12011 | { } /* end */ | 12011 | { } /* end */ |
12012 | }; | 12012 | }; |
12013 | 12013 | ||
12014 | static struct snd_kcontrol_new alc262_toshiba_rx1_mixer[] = { | 12014 | static const struct snd_kcontrol_new alc262_toshiba_rx1_mixer[] = { |
12015 | HDA_BIND_VOL("Master Playback Volume", &alc262_fujitsu_bind_master_vol), | 12015 | HDA_BIND_VOL("Master Playback Volume", &alc262_fujitsu_bind_master_vol), |
12016 | ALC262_HIPPO_MASTER_SWITCH, | 12016 | ALC262_HIPPO_MASTER_SWITCH, |
12017 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 12017 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
@@ -12024,13 +12024,13 @@ static struct snd_kcontrol_new alc262_toshiba_rx1_mixer[] = { | |||
12024 | }; | 12024 | }; |
12025 | 12025 | ||
12026 | /* additional init verbs for Benq laptops */ | 12026 | /* additional init verbs for Benq laptops */ |
12027 | static struct hda_verb alc262_EAPD_verbs[] = { | 12027 | static const struct hda_verb alc262_EAPD_verbs[] = { |
12028 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, | 12028 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, |
12029 | {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, | 12029 | {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, |
12030 | {} | 12030 | {} |
12031 | }; | 12031 | }; |
12032 | 12032 | ||
12033 | static struct hda_verb alc262_benq_t31_EAPD_verbs[] = { | 12033 | static const struct hda_verb alc262_benq_t31_EAPD_verbs[] = { |
12034 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 12034 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, |
12035 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, | 12035 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, |
12036 | 12036 | ||
@@ -12040,7 +12040,7 @@ static struct hda_verb alc262_benq_t31_EAPD_verbs[] = { | |||
12040 | }; | 12040 | }; |
12041 | 12041 | ||
12042 | /* Samsung Q1 Ultra Vista model setup */ | 12042 | /* Samsung Q1 Ultra Vista model setup */ |
12043 | static struct snd_kcontrol_new alc262_ultra_mixer[] = { | 12043 | static const struct snd_kcontrol_new alc262_ultra_mixer[] = { |
12044 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 12044 | HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
12045 | HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT), | 12045 | HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT), |
12046 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), | 12046 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), |
@@ -12050,7 +12050,7 @@ static struct snd_kcontrol_new alc262_ultra_mixer[] = { | |||
12050 | { } /* end */ | 12050 | { } /* end */ |
12051 | }; | 12051 | }; |
12052 | 12052 | ||
12053 | static struct hda_verb alc262_ultra_verbs[] = { | 12053 | static const struct hda_verb alc262_ultra_verbs[] = { |
12054 | /* output mixer */ | 12054 | /* output mixer */ |
12055 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 12055 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
12056 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, | 12056 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, |
@@ -12113,7 +12113,7 @@ static void alc262_ultra_unsol_event(struct hda_codec *codec, | |||
12113 | alc262_ultra_automute(codec); | 12113 | alc262_ultra_automute(codec); |
12114 | } | 12114 | } |
12115 | 12115 | ||
12116 | static struct hda_input_mux alc262_ultra_capture_source = { | 12116 | static const struct hda_input_mux alc262_ultra_capture_source = { |
12117 | .num_items = 2, | 12117 | .num_items = 2, |
12118 | .items = { | 12118 | .items = { |
12119 | { "Mic", 0x1 }, | 12119 | { "Mic", 0x1 }, |
@@ -12139,7 +12139,7 @@ static int alc262_ultra_mux_enum_put(struct snd_kcontrol *kcontrol, | |||
12139 | return ret; | 12139 | return ret; |
12140 | } | 12140 | } |
12141 | 12141 | ||
12142 | static struct snd_kcontrol_new alc262_ultra_capture_mixer[] = { | 12142 | static const struct snd_kcontrol_new alc262_ultra_capture_mixer[] = { |
12143 | HDA_CODEC_VOLUME("Capture Volume", 0x07, 0x0, HDA_INPUT), | 12143 | HDA_CODEC_VOLUME("Capture Volume", 0x07, 0x0, HDA_INPUT), |
12144 | HDA_CODEC_MUTE("Capture Switch", 0x07, 0x0, HDA_INPUT), | 12144 | HDA_CODEC_MUTE("Capture Switch", 0x07, 0x0, HDA_INPUT), |
12145 | { | 12145 | { |
@@ -12270,7 +12270,7 @@ static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, | |||
12270 | /* | 12270 | /* |
12271 | * generic initialization of ADC, input mixers and output mixers | 12271 | * generic initialization of ADC, input mixers and output mixers |
12272 | */ | 12272 | */ |
12273 | static struct hda_verb alc262_volume_init_verbs[] = { | 12273 | static const struct hda_verb alc262_volume_init_verbs[] = { |
12274 | /* | 12274 | /* |
12275 | * Unmute ADC0-2 and set the default input to mic-in | 12275 | * Unmute ADC0-2 and set the default input to mic-in |
12276 | */ | 12276 | */ |
@@ -12331,7 +12331,7 @@ static struct hda_verb alc262_volume_init_verbs[] = { | |||
12331 | { } | 12331 | { } |
12332 | }; | 12332 | }; |
12333 | 12333 | ||
12334 | static struct hda_verb alc262_HP_BPC_init_verbs[] = { | 12334 | static const struct hda_verb alc262_HP_BPC_init_verbs[] = { |
12335 | /* | 12335 | /* |
12336 | * Unmute ADC0-2 and set the default input to mic-in | 12336 | * Unmute ADC0-2 and set the default input to mic-in |
12337 | */ | 12337 | */ |
@@ -12435,7 +12435,7 @@ static struct hda_verb alc262_HP_BPC_init_verbs[] = { | |||
12435 | { } | 12435 | { } |
12436 | }; | 12436 | }; |
12437 | 12437 | ||
12438 | static struct hda_verb alc262_HP_BPC_WildWest_init_verbs[] = { | 12438 | static const struct hda_verb alc262_HP_BPC_WildWest_init_verbs[] = { |
12439 | /* | 12439 | /* |
12440 | * Unmute ADC0-2 and set the default input to mic-in | 12440 | * Unmute ADC0-2 and set the default input to mic-in |
12441 | */ | 12441 | */ |
@@ -12531,7 +12531,7 @@ static struct hda_verb alc262_HP_BPC_WildWest_init_verbs[] = { | |||
12531 | { } | 12531 | { } |
12532 | }; | 12532 | }; |
12533 | 12533 | ||
12534 | static struct hda_verb alc262_toshiba_rx1_unsol_verbs[] = { | 12534 | static const struct hda_verb alc262_toshiba_rx1_unsol_verbs[] = { |
12535 | 12535 | ||
12536 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, /* Front Speaker */ | 12536 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, /* Front Speaker */ |
12537 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 12537 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
@@ -12567,7 +12567,7 @@ static const struct alc_fixup alc262_fixups[] = { | |||
12567 | }, | 12567 | }, |
12568 | }; | 12568 | }; |
12569 | 12569 | ||
12570 | static struct snd_pci_quirk alc262_fixup_tbl[] = { | 12570 | static const struct snd_pci_quirk alc262_fixup_tbl[] = { |
12571 | SND_PCI_QUIRK(0x1734, 0x1147, "FSC Celsius H270", PINFIX_FSC_H270), | 12571 | SND_PCI_QUIRK(0x1734, 0x1147, "FSC Celsius H270", PINFIX_FSC_H270), |
12572 | {} | 12572 | {} |
12573 | }; | 12573 | }; |
@@ -12675,7 +12675,7 @@ static const char * const alc262_models[ALC262_MODEL_LAST] = { | |||
12675 | [ALC262_AUTO] = "auto", | 12675 | [ALC262_AUTO] = "auto", |
12676 | }; | 12676 | }; |
12677 | 12677 | ||
12678 | static struct snd_pci_quirk alc262_cfg_tbl[] = { | 12678 | static const struct snd_pci_quirk alc262_cfg_tbl[] = { |
12679 | SND_PCI_QUIRK(0x1002, 0x437b, "Hippo", ALC262_HIPPO), | 12679 | SND_PCI_QUIRK(0x1002, 0x437b, "Hippo", ALC262_HIPPO), |
12680 | SND_PCI_QUIRK(0x1033, 0x8895, "NEC Versa S9100", ALC262_NEC), | 12680 | SND_PCI_QUIRK(0x1033, 0x8895, "NEC Versa S9100", ALC262_NEC), |
12681 | SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1200, "HP xw series", | 12681 | SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1200, "HP xw series", |
@@ -12727,7 +12727,7 @@ static struct snd_pci_quirk alc262_cfg_tbl[] = { | |||
12727 | {} | 12727 | {} |
12728 | }; | 12728 | }; |
12729 | 12729 | ||
12730 | static struct alc_config_preset alc262_presets[] = { | 12730 | static const struct alc_config_preset alc262_presets[] = { |
12731 | [ALC262_BASIC] = { | 12731 | [ALC262_BASIC] = { |
12732 | .mixers = { alc262_base_mixer }, | 12732 | .mixers = { alc262_base_mixer }, |
12733 | .init_verbs = { alc262_init_verbs }, | 12733 | .init_verbs = { alc262_init_verbs }, |
@@ -13117,7 +13117,7 @@ static hda_nid_t alc268_adc_nids_alt[1] = { | |||
13117 | 13117 | ||
13118 | static hda_nid_t alc268_capsrc_nids[2] = { 0x23, 0x24 }; | 13118 | static hda_nid_t alc268_capsrc_nids[2] = { 0x23, 0x24 }; |
13119 | 13119 | ||
13120 | static struct snd_kcontrol_new alc268_base_mixer[] = { | 13120 | static const struct snd_kcontrol_new alc268_base_mixer[] = { |
13121 | /* output mixer control */ | 13121 | /* output mixer control */ |
13122 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), | 13122 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), |
13123 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 13123 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -13129,7 +13129,7 @@ static struct snd_kcontrol_new alc268_base_mixer[] = { | |||
13129 | { } | 13129 | { } |
13130 | }; | 13130 | }; |
13131 | 13131 | ||
13132 | static struct snd_kcontrol_new alc268_toshiba_mixer[] = { | 13132 | static const struct snd_kcontrol_new alc268_toshiba_mixer[] = { |
13133 | /* output mixer control */ | 13133 | /* output mixer control */ |
13134 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), | 13134 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), |
13135 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x3, 0x0, HDA_OUTPUT), | 13135 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x3, 0x0, HDA_OUTPUT), |
@@ -13141,7 +13141,7 @@ static struct snd_kcontrol_new alc268_toshiba_mixer[] = { | |||
13141 | }; | 13141 | }; |
13142 | 13142 | ||
13143 | /* bind Beep switches of both NID 0x0f and 0x10 */ | 13143 | /* bind Beep switches of both NID 0x0f and 0x10 */ |
13144 | static struct hda_bind_ctls alc268_bind_beep_sw = { | 13144 | static const struct hda_bind_ctls alc268_bind_beep_sw = { |
13145 | .ops = &snd_hda_bind_sw, | 13145 | .ops = &snd_hda_bind_sw, |
13146 | .values = { | 13146 | .values = { |
13147 | HDA_COMPOSE_AMP_VAL(0x0f, 3, 1, HDA_INPUT), | 13147 | HDA_COMPOSE_AMP_VAL(0x0f, 3, 1, HDA_INPUT), |
@@ -13150,27 +13150,27 @@ static struct hda_bind_ctls alc268_bind_beep_sw = { | |||
13150 | }, | 13150 | }, |
13151 | }; | 13151 | }; |
13152 | 13152 | ||
13153 | static struct snd_kcontrol_new alc268_beep_mixer[] = { | 13153 | static const struct snd_kcontrol_new alc268_beep_mixer[] = { |
13154 | HDA_CODEC_VOLUME("Beep Playback Volume", 0x1d, 0x0, HDA_INPUT), | 13154 | HDA_CODEC_VOLUME("Beep Playback Volume", 0x1d, 0x0, HDA_INPUT), |
13155 | HDA_BIND_SW("Beep Playback Switch", &alc268_bind_beep_sw), | 13155 | HDA_BIND_SW("Beep Playback Switch", &alc268_bind_beep_sw), |
13156 | { } | 13156 | { } |
13157 | }; | 13157 | }; |
13158 | 13158 | ||
13159 | static struct hda_verb alc268_eapd_verbs[] = { | 13159 | static const struct hda_verb alc268_eapd_verbs[] = { |
13160 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 13160 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
13161 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 13161 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
13162 | { } | 13162 | { } |
13163 | }; | 13163 | }; |
13164 | 13164 | ||
13165 | /* Toshiba specific */ | 13165 | /* Toshiba specific */ |
13166 | static struct hda_verb alc268_toshiba_verbs[] = { | 13166 | static const struct hda_verb alc268_toshiba_verbs[] = { |
13167 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | 13167 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, |
13168 | { } /* end */ | 13168 | { } /* end */ |
13169 | }; | 13169 | }; |
13170 | 13170 | ||
13171 | /* Acer specific */ | 13171 | /* Acer specific */ |
13172 | /* bind volumes of both NID 0x02 and 0x03 */ | 13172 | /* bind volumes of both NID 0x02 and 0x03 */ |
13173 | static struct hda_bind_ctls alc268_acer_bind_master_vol = { | 13173 | static const struct hda_bind_ctls alc268_acer_bind_master_vol = { |
13174 | .ops = &snd_hda_bind_vol, | 13174 | .ops = &snd_hda_bind_vol, |
13175 | .values = { | 13175 | .values = { |
13176 | HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), | 13176 | HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), |
@@ -13192,7 +13192,7 @@ static void alc268_acer_setup(struct hda_codec *codec) | |||
13192 | #define alc268_acer_master_sw_get alc262_hp_master_sw_get | 13192 | #define alc268_acer_master_sw_get alc262_hp_master_sw_get |
13193 | #define alc268_acer_master_sw_put alc262_hp_master_sw_put | 13193 | #define alc268_acer_master_sw_put alc262_hp_master_sw_put |
13194 | 13194 | ||
13195 | static struct snd_kcontrol_new alc268_acer_aspire_one_mixer[] = { | 13195 | static const struct snd_kcontrol_new alc268_acer_aspire_one_mixer[] = { |
13196 | /* output mixer control */ | 13196 | /* output mixer control */ |
13197 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), | 13197 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), |
13198 | { | 13198 | { |
@@ -13207,7 +13207,7 @@ static struct snd_kcontrol_new alc268_acer_aspire_one_mixer[] = { | |||
13207 | { } | 13207 | { } |
13208 | }; | 13208 | }; |
13209 | 13209 | ||
13210 | static struct snd_kcontrol_new alc268_acer_mixer[] = { | 13210 | static const struct snd_kcontrol_new alc268_acer_mixer[] = { |
13211 | /* output mixer control */ | 13211 | /* output mixer control */ |
13212 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), | 13212 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), |
13213 | { | 13213 | { |
@@ -13224,7 +13224,7 @@ static struct snd_kcontrol_new alc268_acer_mixer[] = { | |||
13224 | { } | 13224 | { } |
13225 | }; | 13225 | }; |
13226 | 13226 | ||
13227 | static struct snd_kcontrol_new alc268_acer_dmic_mixer[] = { | 13227 | static const struct snd_kcontrol_new alc268_acer_dmic_mixer[] = { |
13228 | /* output mixer control */ | 13228 | /* output mixer control */ |
13229 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), | 13229 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), |
13230 | { | 13230 | { |
@@ -13240,7 +13240,7 @@ static struct snd_kcontrol_new alc268_acer_dmic_mixer[] = { | |||
13240 | { } | 13240 | { } |
13241 | }; | 13241 | }; |
13242 | 13242 | ||
13243 | static struct hda_verb alc268_acer_aspire_one_verbs[] = { | 13243 | static const struct hda_verb alc268_acer_aspire_one_verbs[] = { |
13244 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 13244 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
13245 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 13245 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
13246 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | 13246 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, |
@@ -13250,7 +13250,7 @@ static struct hda_verb alc268_acer_aspire_one_verbs[] = { | |||
13250 | { } | 13250 | { } |
13251 | }; | 13251 | }; |
13252 | 13252 | ||
13253 | static struct hda_verb alc268_acer_verbs[] = { | 13253 | static const struct hda_verb alc268_acer_verbs[] = { |
13254 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* internal dmic? */ | 13254 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* internal dmic? */ |
13255 | {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 13255 | {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
13256 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 13256 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -13279,7 +13279,7 @@ static void alc268_acer_lc_setup(struct hda_codec *codec) | |||
13279 | spec->auto_mic = 1; | 13279 | spec->auto_mic = 1; |
13280 | } | 13280 | } |
13281 | 13281 | ||
13282 | static struct snd_kcontrol_new alc268_dell_mixer[] = { | 13282 | static const struct snd_kcontrol_new alc268_dell_mixer[] = { |
13283 | /* output mixer control */ | 13283 | /* output mixer control */ |
13284 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 13284 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
13285 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 13285 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -13290,7 +13290,7 @@ static struct snd_kcontrol_new alc268_dell_mixer[] = { | |||
13290 | { } | 13290 | { } |
13291 | }; | 13291 | }; |
13292 | 13292 | ||
13293 | static struct hda_verb alc268_dell_verbs[] = { | 13293 | static const struct hda_verb alc268_dell_verbs[] = { |
13294 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 13294 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
13295 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 13295 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
13296 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | 13296 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, |
@@ -13314,7 +13314,7 @@ static void alc268_dell_setup(struct hda_codec *codec) | |||
13314 | spec->automute_mode = ALC_AUTOMUTE_PIN; | 13314 | spec->automute_mode = ALC_AUTOMUTE_PIN; |
13315 | } | 13315 | } |
13316 | 13316 | ||
13317 | static struct snd_kcontrol_new alc267_quanta_il1_mixer[] = { | 13317 | static const struct snd_kcontrol_new alc267_quanta_il1_mixer[] = { |
13318 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x2, 0x0, HDA_OUTPUT), | 13318 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x2, 0x0, HDA_OUTPUT), |
13319 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 13319 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
13320 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x3, 0x0, HDA_OUTPUT), | 13320 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x3, 0x0, HDA_OUTPUT), |
@@ -13326,7 +13326,7 @@ static struct snd_kcontrol_new alc267_quanta_il1_mixer[] = { | |||
13326 | { } | 13326 | { } |
13327 | }; | 13327 | }; |
13328 | 13328 | ||
13329 | static struct hda_verb alc267_quanta_il1_verbs[] = { | 13329 | static const struct hda_verb alc267_quanta_il1_verbs[] = { |
13330 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | 13330 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, |
13331 | {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_MIC_EVENT | AC_USRSP_EN}, | 13331 | {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_MIC_EVENT | AC_USRSP_EN}, |
13332 | { } | 13332 | { } |
@@ -13349,7 +13349,7 @@ static void alc267_quanta_il1_setup(struct hda_codec *codec) | |||
13349 | /* | 13349 | /* |
13350 | * generic initialization of ADC, input mixers and output mixers | 13350 | * generic initialization of ADC, input mixers and output mixers |
13351 | */ | 13351 | */ |
13352 | static struct hda_verb alc268_base_init_verbs[] = { | 13352 | static const struct hda_verb alc268_base_init_verbs[] = { |
13353 | /* Unmute DAC0-1 and set vol = 0 */ | 13353 | /* Unmute DAC0-1 and set vol = 0 */ |
13354 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 13354 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
13355 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 13355 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
@@ -13397,7 +13397,7 @@ static struct hda_verb alc268_base_init_verbs[] = { | |||
13397 | /* | 13397 | /* |
13398 | * generic initialization of ADC, input mixers and output mixers | 13398 | * generic initialization of ADC, input mixers and output mixers |
13399 | */ | 13399 | */ |
13400 | static struct hda_verb alc268_volume_init_verbs[] = { | 13400 | static const struct hda_verb alc268_volume_init_verbs[] = { |
13401 | /* set output DAC */ | 13401 | /* set output DAC */ |
13402 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 13402 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
13403 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 13403 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
@@ -13423,20 +13423,20 @@ static struct hda_verb alc268_volume_init_verbs[] = { | |||
13423 | { } | 13423 | { } |
13424 | }; | 13424 | }; |
13425 | 13425 | ||
13426 | static struct snd_kcontrol_new alc268_capture_nosrc_mixer[] = { | 13426 | static const struct snd_kcontrol_new alc268_capture_nosrc_mixer[] = { |
13427 | HDA_CODEC_VOLUME("Capture Volume", 0x23, 0x0, HDA_OUTPUT), | 13427 | HDA_CODEC_VOLUME("Capture Volume", 0x23, 0x0, HDA_OUTPUT), |
13428 | HDA_CODEC_MUTE("Capture Switch", 0x23, 0x0, HDA_OUTPUT), | 13428 | HDA_CODEC_MUTE("Capture Switch", 0x23, 0x0, HDA_OUTPUT), |
13429 | { } /* end */ | 13429 | { } /* end */ |
13430 | }; | 13430 | }; |
13431 | 13431 | ||
13432 | static struct snd_kcontrol_new alc268_capture_alt_mixer[] = { | 13432 | static const struct snd_kcontrol_new alc268_capture_alt_mixer[] = { |
13433 | HDA_CODEC_VOLUME("Capture Volume", 0x23, 0x0, HDA_OUTPUT), | 13433 | HDA_CODEC_VOLUME("Capture Volume", 0x23, 0x0, HDA_OUTPUT), |
13434 | HDA_CODEC_MUTE("Capture Switch", 0x23, 0x0, HDA_OUTPUT), | 13434 | HDA_CODEC_MUTE("Capture Switch", 0x23, 0x0, HDA_OUTPUT), |
13435 | _DEFINE_CAPSRC(1), | 13435 | _DEFINE_CAPSRC(1), |
13436 | { } /* end */ | 13436 | { } /* end */ |
13437 | }; | 13437 | }; |
13438 | 13438 | ||
13439 | static struct snd_kcontrol_new alc268_capture_mixer[] = { | 13439 | static const struct snd_kcontrol_new alc268_capture_mixer[] = { |
13440 | HDA_CODEC_VOLUME("Capture Volume", 0x23, 0x0, HDA_OUTPUT), | 13440 | HDA_CODEC_VOLUME("Capture Volume", 0x23, 0x0, HDA_OUTPUT), |
13441 | HDA_CODEC_MUTE("Capture Switch", 0x23, 0x0, HDA_OUTPUT), | 13441 | HDA_CODEC_MUTE("Capture Switch", 0x23, 0x0, HDA_OUTPUT), |
13442 | HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x24, 0x0, HDA_OUTPUT), | 13442 | HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x24, 0x0, HDA_OUTPUT), |
@@ -13445,7 +13445,7 @@ static struct snd_kcontrol_new alc268_capture_mixer[] = { | |||
13445 | { } /* end */ | 13445 | { } /* end */ |
13446 | }; | 13446 | }; |
13447 | 13447 | ||
13448 | static struct hda_input_mux alc268_capture_source = { | 13448 | static const struct hda_input_mux alc268_capture_source = { |
13449 | .num_items = 4, | 13449 | .num_items = 4, |
13450 | .items = { | 13450 | .items = { |
13451 | { "Mic", 0x0 }, | 13451 | { "Mic", 0x0 }, |
@@ -13455,7 +13455,7 @@ static struct hda_input_mux alc268_capture_source = { | |||
13455 | }, | 13455 | }, |
13456 | }; | 13456 | }; |
13457 | 13457 | ||
13458 | static struct hda_input_mux alc268_acer_capture_source = { | 13458 | static const struct hda_input_mux alc268_acer_capture_source = { |
13459 | .num_items = 3, | 13459 | .num_items = 3, |
13460 | .items = { | 13460 | .items = { |
13461 | { "Mic", 0x0 }, | 13461 | { "Mic", 0x0 }, |
@@ -13464,7 +13464,7 @@ static struct hda_input_mux alc268_acer_capture_source = { | |||
13464 | }, | 13464 | }, |
13465 | }; | 13465 | }; |
13466 | 13466 | ||
13467 | static struct hda_input_mux alc268_acer_dmic_capture_source = { | 13467 | static const struct hda_input_mux alc268_acer_dmic_capture_source = { |
13468 | .num_items = 3, | 13468 | .num_items = 3, |
13469 | .items = { | 13469 | .items = { |
13470 | { "Mic", 0x0 }, | 13470 | { "Mic", 0x0 }, |
@@ -13474,7 +13474,7 @@ static struct hda_input_mux alc268_acer_dmic_capture_source = { | |||
13474 | }; | 13474 | }; |
13475 | 13475 | ||
13476 | #ifdef CONFIG_SND_DEBUG | 13476 | #ifdef CONFIG_SND_DEBUG |
13477 | static struct snd_kcontrol_new alc268_test_mixer[] = { | 13477 | static const struct snd_kcontrol_new alc268_test_mixer[] = { |
13478 | /* Volume widgets */ | 13478 | /* Volume widgets */ |
13479 | HDA_CODEC_VOLUME("LOUT1 Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 13479 | HDA_CODEC_VOLUME("LOUT1 Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
13480 | HDA_CODEC_VOLUME("LOUT2 Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 13480 | HDA_CODEC_VOLUME("LOUT2 Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -13806,7 +13806,7 @@ static const char * const alc268_models[ALC268_MODEL_LAST] = { | |||
13806 | [ALC268_AUTO] = "auto", | 13806 | [ALC268_AUTO] = "auto", |
13807 | }; | 13807 | }; |
13808 | 13808 | ||
13809 | static struct snd_pci_quirk alc268_cfg_tbl[] = { | 13809 | static const struct snd_pci_quirk alc268_cfg_tbl[] = { |
13810 | SND_PCI_QUIRK(0x1025, 0x011e, "Acer Aspire 5720z", ALC268_ACER), | 13810 | SND_PCI_QUIRK(0x1025, 0x011e, "Acer Aspire 5720z", ALC268_ACER), |
13811 | SND_PCI_QUIRK(0x1025, 0x0126, "Acer", ALC268_ACER), | 13811 | SND_PCI_QUIRK(0x1025, 0x0126, "Acer", ALC268_ACER), |
13812 | SND_PCI_QUIRK(0x1025, 0x012e, "Acer Aspire 5310", ALC268_ACER), | 13812 | SND_PCI_QUIRK(0x1025, 0x012e, "Acer Aspire 5310", ALC268_ACER), |
@@ -13831,7 +13831,7 @@ static struct snd_pci_quirk alc268_cfg_tbl[] = { | |||
13831 | }; | 13831 | }; |
13832 | 13832 | ||
13833 | /* Toshiba laptops have no unique PCI SSID but only codec SSID */ | 13833 | /* Toshiba laptops have no unique PCI SSID but only codec SSID */ |
13834 | static struct snd_pci_quirk alc268_ssid_cfg_tbl[] = { | 13834 | static const struct snd_pci_quirk alc268_ssid_cfg_tbl[] = { |
13835 | SND_PCI_QUIRK(0x1179, 0xff0a, "TOSHIBA X-200", ALC268_AUTO), | 13835 | SND_PCI_QUIRK(0x1179, 0xff0a, "TOSHIBA X-200", ALC268_AUTO), |
13836 | SND_PCI_QUIRK(0x1179, 0xff0e, "TOSHIBA X-200 HDMI", ALC268_AUTO), | 13836 | SND_PCI_QUIRK(0x1179, 0xff0e, "TOSHIBA X-200 HDMI", ALC268_AUTO), |
13837 | SND_PCI_QUIRK_MASK(0x1179, 0xff00, 0xff00, "TOSHIBA A/Lx05", | 13837 | SND_PCI_QUIRK_MASK(0x1179, 0xff00, 0xff00, "TOSHIBA A/Lx05", |
@@ -13839,7 +13839,7 @@ static struct snd_pci_quirk alc268_ssid_cfg_tbl[] = { | |||
13839 | {} | 13839 | {} |
13840 | }; | 13840 | }; |
13841 | 13841 | ||
13842 | static struct alc_config_preset alc268_presets[] = { | 13842 | static const struct alc_config_preset alc268_presets[] = { |
13843 | [ALC267_QUANTA_IL1] = { | 13843 | [ALC267_QUANTA_IL1] = { |
13844 | .mixers = { alc267_quanta_il1_mixer, alc268_beep_mixer, | 13844 | .mixers = { alc267_quanta_il1_mixer, alc268_beep_mixer, |
13845 | alc268_capture_nosrc_mixer }, | 13845 | alc268_capture_nosrc_mixer }, |
@@ -14138,7 +14138,7 @@ static hda_nid_t alc269_adc_candidates[] = { | |||
14138 | #define alc269_modes alc260_modes | 14138 | #define alc269_modes alc260_modes |
14139 | #define alc269_capture_source alc880_lg_lw_capture_source | 14139 | #define alc269_capture_source alc880_lg_lw_capture_source |
14140 | 14140 | ||
14141 | static struct snd_kcontrol_new alc269_base_mixer[] = { | 14141 | static const struct snd_kcontrol_new alc269_base_mixer[] = { |
14142 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 14142 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
14143 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 14143 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
14144 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), | 14144 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), |
@@ -14154,7 +14154,7 @@ static struct snd_kcontrol_new alc269_base_mixer[] = { | |||
14154 | { } /* end */ | 14154 | { } /* end */ |
14155 | }; | 14155 | }; |
14156 | 14156 | ||
14157 | static struct snd_kcontrol_new alc269_quanta_fl1_mixer[] = { | 14157 | static const struct snd_kcontrol_new alc269_quanta_fl1_mixer[] = { |
14158 | /* output mixer control */ | 14158 | /* output mixer control */ |
14159 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), | 14159 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), |
14160 | { | 14160 | { |
@@ -14175,7 +14175,7 @@ static struct snd_kcontrol_new alc269_quanta_fl1_mixer[] = { | |||
14175 | { } | 14175 | { } |
14176 | }; | 14176 | }; |
14177 | 14177 | ||
14178 | static struct snd_kcontrol_new alc269_lifebook_mixer[] = { | 14178 | static const struct snd_kcontrol_new alc269_lifebook_mixer[] = { |
14179 | /* output mixer control */ | 14179 | /* output mixer control */ |
14180 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), | 14180 | HDA_BIND_VOL("Master Playback Volume", &alc268_acer_bind_master_vol), |
14181 | { | 14181 | { |
@@ -14199,7 +14199,7 @@ static struct snd_kcontrol_new alc269_lifebook_mixer[] = { | |||
14199 | { } | 14199 | { } |
14200 | }; | 14200 | }; |
14201 | 14201 | ||
14202 | static struct snd_kcontrol_new alc269_laptop_mixer[] = { | 14202 | static const struct snd_kcontrol_new alc269_laptop_mixer[] = { |
14203 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 14203 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
14204 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 14204 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
14205 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), | 14205 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), |
@@ -14207,7 +14207,7 @@ static struct snd_kcontrol_new alc269_laptop_mixer[] = { | |||
14207 | { } /* end */ | 14207 | { } /* end */ |
14208 | }; | 14208 | }; |
14209 | 14209 | ||
14210 | static struct snd_kcontrol_new alc269vb_laptop_mixer[] = { | 14210 | static const struct snd_kcontrol_new alc269vb_laptop_mixer[] = { |
14211 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 14211 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
14212 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 14212 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
14213 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x21, 0x0, HDA_OUTPUT), | 14213 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x21, 0x0, HDA_OUTPUT), |
@@ -14215,14 +14215,14 @@ static struct snd_kcontrol_new alc269vb_laptop_mixer[] = { | |||
14215 | { } /* end */ | 14215 | { } /* end */ |
14216 | }; | 14216 | }; |
14217 | 14217 | ||
14218 | static struct snd_kcontrol_new alc269_asus_mixer[] = { | 14218 | static const struct snd_kcontrol_new alc269_asus_mixer[] = { |
14219 | HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 14219 | HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
14220 | HDA_CODEC_MUTE("Master Playback Switch", 0x0c, 0x0, HDA_INPUT), | 14220 | HDA_CODEC_MUTE("Master Playback Switch", 0x0c, 0x0, HDA_INPUT), |
14221 | { } /* end */ | 14221 | { } /* end */ |
14222 | }; | 14222 | }; |
14223 | 14223 | ||
14224 | /* capture mixer elements */ | 14224 | /* capture mixer elements */ |
14225 | static struct snd_kcontrol_new alc269_laptop_analog_capture_mixer[] = { | 14225 | static const struct snd_kcontrol_new alc269_laptop_analog_capture_mixer[] = { |
14226 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), | 14226 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), |
14227 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), | 14227 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), |
14228 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), | 14228 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), |
@@ -14230,14 +14230,14 @@ static struct snd_kcontrol_new alc269_laptop_analog_capture_mixer[] = { | |||
14230 | { } /* end */ | 14230 | { } /* end */ |
14231 | }; | 14231 | }; |
14232 | 14232 | ||
14233 | static struct snd_kcontrol_new alc269_laptop_digital_capture_mixer[] = { | 14233 | static const struct snd_kcontrol_new alc269_laptop_digital_capture_mixer[] = { |
14234 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), | 14234 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), |
14235 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), | 14235 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), |
14236 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), | 14236 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), |
14237 | { } /* end */ | 14237 | { } /* end */ |
14238 | }; | 14238 | }; |
14239 | 14239 | ||
14240 | static struct snd_kcontrol_new alc269vb_laptop_analog_capture_mixer[] = { | 14240 | static const struct snd_kcontrol_new alc269vb_laptop_analog_capture_mixer[] = { |
14241 | HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT), | 14241 | HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT), |
14242 | HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT), | 14242 | HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT), |
14243 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), | 14243 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), |
@@ -14245,7 +14245,7 @@ static struct snd_kcontrol_new alc269vb_laptop_analog_capture_mixer[] = { | |||
14245 | { } /* end */ | 14245 | { } /* end */ |
14246 | }; | 14246 | }; |
14247 | 14247 | ||
14248 | static struct snd_kcontrol_new alc269vb_laptop_digital_capture_mixer[] = { | 14248 | static const struct snd_kcontrol_new alc269vb_laptop_digital_capture_mixer[] = { |
14249 | HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT), | 14249 | HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT), |
14250 | HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT), | 14250 | HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT), |
14251 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), | 14251 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), |
@@ -14255,7 +14255,7 @@ static struct snd_kcontrol_new alc269vb_laptop_digital_capture_mixer[] = { | |||
14255 | /* FSC amilo */ | 14255 | /* FSC amilo */ |
14256 | #define alc269_fujitsu_mixer alc269_laptop_mixer | 14256 | #define alc269_fujitsu_mixer alc269_laptop_mixer |
14257 | 14257 | ||
14258 | static struct hda_verb alc269_quanta_fl1_verbs[] = { | 14258 | static const struct hda_verb alc269_quanta_fl1_verbs[] = { |
14259 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14259 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14260 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 14260 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
14261 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 14261 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -14265,7 +14265,7 @@ static struct hda_verb alc269_quanta_fl1_verbs[] = { | |||
14265 | { } | 14265 | { } |
14266 | }; | 14266 | }; |
14267 | 14267 | ||
14268 | static struct hda_verb alc269_lifebook_verbs[] = { | 14268 | static const struct hda_verb alc269_lifebook_verbs[] = { |
14269 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14269 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14270 | {0x1a, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14270 | {0x1a, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14271 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 14271 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
@@ -14378,7 +14378,7 @@ static void alc269_lifebook_init_hook(struct hda_codec *codec) | |||
14378 | alc269_lifebook_mic_autoswitch(codec); | 14378 | alc269_lifebook_mic_autoswitch(codec); |
14379 | } | 14379 | } |
14380 | 14380 | ||
14381 | static struct hda_verb alc269_laptop_dmic_init_verbs[] = { | 14381 | static const struct hda_verb alc269_laptop_dmic_init_verbs[] = { |
14382 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14382 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14383 | {0x23, AC_VERB_SET_CONNECT_SEL, 0x05}, | 14383 | {0x23, AC_VERB_SET_CONNECT_SEL, 0x05}, |
14384 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, | 14384 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, |
@@ -14389,7 +14389,7 @@ static struct hda_verb alc269_laptop_dmic_init_verbs[] = { | |||
14389 | {} | 14389 | {} |
14390 | }; | 14390 | }; |
14391 | 14391 | ||
14392 | static struct hda_verb alc269_laptop_amic_init_verbs[] = { | 14392 | static const struct hda_verb alc269_laptop_amic_init_verbs[] = { |
14393 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14393 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14394 | {0x23, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14394 | {0x23, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14395 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, | 14395 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, |
@@ -14399,7 +14399,7 @@ static struct hda_verb alc269_laptop_amic_init_verbs[] = { | |||
14399 | {} | 14399 | {} |
14400 | }; | 14400 | }; |
14401 | 14401 | ||
14402 | static struct hda_verb alc269vb_laptop_dmic_init_verbs[] = { | 14402 | static const struct hda_verb alc269vb_laptop_dmic_init_verbs[] = { |
14403 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14403 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14404 | {0x22, AC_VERB_SET_CONNECT_SEL, 0x06}, | 14404 | {0x22, AC_VERB_SET_CONNECT_SEL, 0x06}, |
14405 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, | 14405 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, |
@@ -14410,7 +14410,7 @@ static struct hda_verb alc269vb_laptop_dmic_init_verbs[] = { | |||
14410 | {} | 14410 | {} |
14411 | }; | 14411 | }; |
14412 | 14412 | ||
14413 | static struct hda_verb alc269vb_laptop_amic_init_verbs[] = { | 14413 | static const struct hda_verb alc269vb_laptop_amic_init_verbs[] = { |
14414 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14414 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14415 | {0x22, AC_VERB_SET_CONNECT_SEL, 0x01}, | 14415 | {0x22, AC_VERB_SET_CONNECT_SEL, 0x01}, |
14416 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, | 14416 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, 0xb026 }, |
@@ -14421,7 +14421,7 @@ static struct hda_verb alc269vb_laptop_amic_init_verbs[] = { | |||
14421 | {} | 14421 | {} |
14422 | }; | 14422 | }; |
14423 | 14423 | ||
14424 | static struct hda_verb alc271_acer_dmic_verbs[] = { | 14424 | static const struct hda_verb alc271_acer_dmic_verbs[] = { |
14425 | {0x20, AC_VERB_SET_COEF_INDEX, 0x0d}, | 14425 | {0x20, AC_VERB_SET_COEF_INDEX, 0x0d}, |
14426 | {0x20, AC_VERB_SET_PROC_COEF, 0x4000}, | 14426 | {0x20, AC_VERB_SET_PROC_COEF, 0x4000}, |
14427 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 14427 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
@@ -14498,7 +14498,7 @@ static void alc269vb_laptop_dmic_setup(struct hda_codec *codec) | |||
14498 | /* | 14498 | /* |
14499 | * generic initialization of ADC, input mixers and output mixers | 14499 | * generic initialization of ADC, input mixers and output mixers |
14500 | */ | 14500 | */ |
14501 | static struct hda_verb alc269_init_verbs[] = { | 14501 | static const struct hda_verb alc269_init_verbs[] = { |
14502 | /* | 14502 | /* |
14503 | * Unmute ADC0 and set the default input to mic-in | 14503 | * Unmute ADC0 and set the default input to mic-in |
14504 | */ | 14504 | */ |
@@ -14541,7 +14541,7 @@ static struct hda_verb alc269_init_verbs[] = { | |||
14541 | { } | 14541 | { } |
14542 | }; | 14542 | }; |
14543 | 14543 | ||
14544 | static struct hda_verb alc269vb_init_verbs[] = { | 14544 | static const struct hda_verb alc269vb_init_verbs[] = { |
14545 | /* | 14545 | /* |
14546 | * Unmute ADC0 and set the default input to mic-in | 14546 | * Unmute ADC0 and set the default input to mic-in |
14547 | */ | 14547 | */ |
@@ -14599,7 +14599,7 @@ static struct hda_verb alc269vb_init_verbs[] = { | |||
14599 | #define alc269_pcm_digital_playback alc880_pcm_digital_playback | 14599 | #define alc269_pcm_digital_playback alc880_pcm_digital_playback |
14600 | #define alc269_pcm_digital_capture alc880_pcm_digital_capture | 14600 | #define alc269_pcm_digital_capture alc880_pcm_digital_capture |
14601 | 14601 | ||
14602 | static struct hda_pcm_stream alc269_44k_pcm_analog_playback = { | 14602 | static const struct hda_pcm_stream alc269_44k_pcm_analog_playback = { |
14603 | .substreams = 1, | 14603 | .substreams = 1, |
14604 | .channels_min = 2, | 14604 | .channels_min = 2, |
14605 | .channels_max = 8, | 14605 | .channels_max = 8, |
@@ -14612,7 +14612,7 @@ static struct hda_pcm_stream alc269_44k_pcm_analog_playback = { | |||
14612 | }, | 14612 | }, |
14613 | }; | 14613 | }; |
14614 | 14614 | ||
14615 | static struct hda_pcm_stream alc269_44k_pcm_analog_capture = { | 14615 | static const struct hda_pcm_stream alc269_44k_pcm_analog_capture = { |
14616 | .substreams = 1, | 14616 | .substreams = 1, |
14617 | .channels_min = 2, | 14617 | .channels_min = 2, |
14618 | .channels_max = 2, | 14618 | .channels_max = 2, |
@@ -14825,7 +14825,7 @@ static void alc269_fixup_hweq(struct hda_codec *codec, | |||
14825 | static void alc271_fixup_dmic(struct hda_codec *codec, | 14825 | static void alc271_fixup_dmic(struct hda_codec *codec, |
14826 | const struct alc_fixup *fix, int action) | 14826 | const struct alc_fixup *fix, int action) |
14827 | { | 14827 | { |
14828 | static struct hda_verb verbs[] = { | 14828 | static const struct hda_verb verbs[] = { |
14829 | {0x20, AC_VERB_SET_COEF_INDEX, 0x0d}, | 14829 | {0x20, AC_VERB_SET_COEF_INDEX, 0x0d}, |
14830 | {0x20, AC_VERB_SET_PROC_COEF, 0x4000}, | 14830 | {0x20, AC_VERB_SET_PROC_COEF, 0x4000}, |
14831 | {} | 14831 | {} |
@@ -14908,7 +14908,7 @@ static const struct alc_fixup alc269_fixups[] = { | |||
14908 | }, | 14908 | }, |
14909 | }; | 14909 | }; |
14910 | 14910 | ||
14911 | static struct snd_pci_quirk alc269_fixup_tbl[] = { | 14911 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
14912 | SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2), | 14912 | SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2), |
14913 | SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), | 14913 | SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), |
14914 | SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), | 14914 | SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), |
@@ -14939,7 +14939,7 @@ static const char * const alc269_models[ALC269_MODEL_LAST] = { | |||
14939 | [ALC269_AUTO] = "auto", | 14939 | [ALC269_AUTO] = "auto", |
14940 | }; | 14940 | }; |
14941 | 14941 | ||
14942 | static struct snd_pci_quirk alc269_cfg_tbl[] = { | 14942 | static const struct snd_pci_quirk alc269_cfg_tbl[] = { |
14943 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_QUANTA_FL1), | 14943 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_QUANTA_FL1), |
14944 | SND_PCI_QUIRK(0x1025, 0x047c, "ACER ZGA", ALC271_ACER), | 14944 | SND_PCI_QUIRK(0x1025, 0x047c, "ACER ZGA", ALC271_ACER), |
14945 | SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A", | 14945 | SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A", |
@@ -14997,7 +14997,7 @@ static struct snd_pci_quirk alc269_cfg_tbl[] = { | |||
14997 | {} | 14997 | {} |
14998 | }; | 14998 | }; |
14999 | 14999 | ||
15000 | static struct alc_config_preset alc269_presets[] = { | 15000 | static const struct alc_config_preset alc269_presets[] = { |
15001 | [ALC269_BASIC] = { | 15001 | [ALC269_BASIC] = { |
15002 | .mixers = { alc269_base_mixer }, | 15002 | .mixers = { alc269_base_mixer }, |
15003 | .init_verbs = { alc269_init_verbs }, | 15003 | .init_verbs = { alc269_init_verbs }, |
@@ -15301,7 +15301,7 @@ static int patch_alc269(struct hda_codec *codec) | |||
15301 | * set the path ways for 2 channel output | 15301 | * set the path ways for 2 channel output |
15302 | * need to set the codec line out and mic 1 pin widgets to inputs | 15302 | * need to set the codec line out and mic 1 pin widgets to inputs |
15303 | */ | 15303 | */ |
15304 | static struct hda_verb alc861_threestack_ch2_init[] = { | 15304 | static const struct hda_verb alc861_threestack_ch2_init[] = { |
15305 | /* set pin widget 1Ah (line in) for input */ | 15305 | /* set pin widget 1Ah (line in) for input */ |
15306 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, | 15306 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, |
15307 | /* set pin widget 18h (mic1/2) for input, for mic also enable | 15307 | /* set pin widget 18h (mic1/2) for input, for mic also enable |
@@ -15320,7 +15320,7 @@ static struct hda_verb alc861_threestack_ch2_init[] = { | |||
15320 | * 6ch mode | 15320 | * 6ch mode |
15321 | * need to set the codec line out and mic 1 pin widgets to outputs | 15321 | * need to set the codec line out and mic 1 pin widgets to outputs |
15322 | */ | 15322 | */ |
15323 | static struct hda_verb alc861_threestack_ch6_init[] = { | 15323 | static const struct hda_verb alc861_threestack_ch6_init[] = { |
15324 | /* set pin widget 1Ah (line in) for output (Back Surround)*/ | 15324 | /* set pin widget 1Ah (line in) for output (Back Surround)*/ |
15325 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, | 15325 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, |
15326 | /* set pin widget 18h (mic1) for output (CLFE)*/ | 15326 | /* set pin widget 18h (mic1) for output (CLFE)*/ |
@@ -15337,30 +15337,30 @@ static struct hda_verb alc861_threestack_ch6_init[] = { | |||
15337 | { } /* end */ | 15337 | { } /* end */ |
15338 | }; | 15338 | }; |
15339 | 15339 | ||
15340 | static struct hda_channel_mode alc861_threestack_modes[2] = { | 15340 | static const struct hda_channel_mode alc861_threestack_modes[2] = { |
15341 | { 2, alc861_threestack_ch2_init }, | 15341 | { 2, alc861_threestack_ch2_init }, |
15342 | { 6, alc861_threestack_ch6_init }, | 15342 | { 6, alc861_threestack_ch6_init }, |
15343 | }; | 15343 | }; |
15344 | /* Set mic1 as input and unmute the mixer */ | 15344 | /* Set mic1 as input and unmute the mixer */ |
15345 | static struct hda_verb alc861_uniwill_m31_ch2_init[] = { | 15345 | static const struct hda_verb alc861_uniwill_m31_ch2_init[] = { |
15346 | { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, | 15346 | { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, |
15347 | { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x01 << 8)) }, /*mic*/ | 15347 | { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x01 << 8)) }, /*mic*/ |
15348 | { } /* end */ | 15348 | { } /* end */ |
15349 | }; | 15349 | }; |
15350 | /* Set mic1 as output and mute mixer */ | 15350 | /* Set mic1 as output and mute mixer */ |
15351 | static struct hda_verb alc861_uniwill_m31_ch4_init[] = { | 15351 | static const struct hda_verb alc861_uniwill_m31_ch4_init[] = { |
15352 | { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, | 15352 | { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, |
15353 | { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8)) }, /*mic*/ | 15353 | { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8)) }, /*mic*/ |
15354 | { } /* end */ | 15354 | { } /* end */ |
15355 | }; | 15355 | }; |
15356 | 15356 | ||
15357 | static struct hda_channel_mode alc861_uniwill_m31_modes[2] = { | 15357 | static const struct hda_channel_mode alc861_uniwill_m31_modes[2] = { |
15358 | { 2, alc861_uniwill_m31_ch2_init }, | 15358 | { 2, alc861_uniwill_m31_ch2_init }, |
15359 | { 4, alc861_uniwill_m31_ch4_init }, | 15359 | { 4, alc861_uniwill_m31_ch4_init }, |
15360 | }; | 15360 | }; |
15361 | 15361 | ||
15362 | /* Set mic1 and line-in as input and unmute the mixer */ | 15362 | /* Set mic1 and line-in as input and unmute the mixer */ |
15363 | static struct hda_verb alc861_asus_ch2_init[] = { | 15363 | static const struct hda_verb alc861_asus_ch2_init[] = { |
15364 | /* set pin widget 1Ah (line in) for input */ | 15364 | /* set pin widget 1Ah (line in) for input */ |
15365 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, | 15365 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, |
15366 | /* set pin widget 18h (mic1/2) for input, for mic also enable | 15366 | /* set pin widget 18h (mic1/2) for input, for mic also enable |
@@ -15376,7 +15376,7 @@ static struct hda_verb alc861_asus_ch2_init[] = { | |||
15376 | { } /* end */ | 15376 | { } /* end */ |
15377 | }; | 15377 | }; |
15378 | /* Set mic1 nad line-in as output and mute mixer */ | 15378 | /* Set mic1 nad line-in as output and mute mixer */ |
15379 | static struct hda_verb alc861_asus_ch6_init[] = { | 15379 | static const struct hda_verb alc861_asus_ch6_init[] = { |
15380 | /* set pin widget 1Ah (line in) for output (Back Surround)*/ | 15380 | /* set pin widget 1Ah (line in) for output (Back Surround)*/ |
15381 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, | 15381 | { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, |
15382 | /* { 0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, */ | 15382 | /* { 0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, */ |
@@ -15394,14 +15394,14 @@ static struct hda_verb alc861_asus_ch6_init[] = { | |||
15394 | { } /* end */ | 15394 | { } /* end */ |
15395 | }; | 15395 | }; |
15396 | 15396 | ||
15397 | static struct hda_channel_mode alc861_asus_modes[2] = { | 15397 | static const struct hda_channel_mode alc861_asus_modes[2] = { |
15398 | { 2, alc861_asus_ch2_init }, | 15398 | { 2, alc861_asus_ch2_init }, |
15399 | { 6, alc861_asus_ch6_init }, | 15399 | { 6, alc861_asus_ch6_init }, |
15400 | }; | 15400 | }; |
15401 | 15401 | ||
15402 | /* patch-ALC861 */ | 15402 | /* patch-ALC861 */ |
15403 | 15403 | ||
15404 | static struct snd_kcontrol_new alc861_base_mixer[] = { | 15404 | static const struct snd_kcontrol_new alc861_base_mixer[] = { |
15405 | /* output mixer control */ | 15405 | /* output mixer control */ |
15406 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), | 15406 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), |
15407 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), | 15407 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), |
@@ -15424,7 +15424,7 @@ static struct snd_kcontrol_new alc861_base_mixer[] = { | |||
15424 | { } /* end */ | 15424 | { } /* end */ |
15425 | }; | 15425 | }; |
15426 | 15426 | ||
15427 | static struct snd_kcontrol_new alc861_3ST_mixer[] = { | 15427 | static const struct snd_kcontrol_new alc861_3ST_mixer[] = { |
15428 | /* output mixer control */ | 15428 | /* output mixer control */ |
15429 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), | 15429 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), |
15430 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), | 15430 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), |
@@ -15455,7 +15455,7 @@ static struct snd_kcontrol_new alc861_3ST_mixer[] = { | |||
15455 | { } /* end */ | 15455 | { } /* end */ |
15456 | }; | 15456 | }; |
15457 | 15457 | ||
15458 | static struct snd_kcontrol_new alc861_toshiba_mixer[] = { | 15458 | static const struct snd_kcontrol_new alc861_toshiba_mixer[] = { |
15459 | /* output mixer control */ | 15459 | /* output mixer control */ |
15460 | HDA_CODEC_MUTE("Master Playback Switch", 0x03, 0x0, HDA_OUTPUT), | 15460 | HDA_CODEC_MUTE("Master Playback Switch", 0x03, 0x0, HDA_OUTPUT), |
15461 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x15, 0x01, HDA_INPUT), | 15461 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x15, 0x01, HDA_INPUT), |
@@ -15464,7 +15464,7 @@ static struct snd_kcontrol_new alc861_toshiba_mixer[] = { | |||
15464 | { } /* end */ | 15464 | { } /* end */ |
15465 | }; | 15465 | }; |
15466 | 15466 | ||
15467 | static struct snd_kcontrol_new alc861_uniwill_m31_mixer[] = { | 15467 | static const struct snd_kcontrol_new alc861_uniwill_m31_mixer[] = { |
15468 | /* output mixer control */ | 15468 | /* output mixer control */ |
15469 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), | 15469 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), |
15470 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), | 15470 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), |
@@ -15495,7 +15495,7 @@ static struct snd_kcontrol_new alc861_uniwill_m31_mixer[] = { | |||
15495 | { } /* end */ | 15495 | { } /* end */ |
15496 | }; | 15496 | }; |
15497 | 15497 | ||
15498 | static struct snd_kcontrol_new alc861_asus_mixer[] = { | 15498 | static const struct snd_kcontrol_new alc861_asus_mixer[] = { |
15499 | /* output mixer control */ | 15499 | /* output mixer control */ |
15500 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), | 15500 | HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), |
15501 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), | 15501 | HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), |
@@ -15527,7 +15527,7 @@ static struct snd_kcontrol_new alc861_asus_mixer[] = { | |||
15527 | }; | 15527 | }; |
15528 | 15528 | ||
15529 | /* additional mixer */ | 15529 | /* additional mixer */ |
15530 | static struct snd_kcontrol_new alc861_asus_laptop_mixer[] = { | 15530 | static const struct snd_kcontrol_new alc861_asus_laptop_mixer[] = { |
15531 | HDA_CODEC_VOLUME("CD Playback Volume", 0x15, 0x0, HDA_INPUT), | 15531 | HDA_CODEC_VOLUME("CD Playback Volume", 0x15, 0x0, HDA_INPUT), |
15532 | HDA_CODEC_MUTE("CD Playback Switch", 0x15, 0x0, HDA_INPUT), | 15532 | HDA_CODEC_MUTE("CD Playback Switch", 0x15, 0x0, HDA_INPUT), |
15533 | { } | 15533 | { } |
@@ -15536,7 +15536,7 @@ static struct snd_kcontrol_new alc861_asus_laptop_mixer[] = { | |||
15536 | /* | 15536 | /* |
15537 | * generic initialization of ADC, input mixers and output mixers | 15537 | * generic initialization of ADC, input mixers and output mixers |
15538 | */ | 15538 | */ |
15539 | static struct hda_verb alc861_base_init_verbs[] = { | 15539 | static const struct hda_verb alc861_base_init_verbs[] = { |
15540 | /* | 15540 | /* |
15541 | * Unmute ADC0 and set the default input to mic-in | 15541 | * Unmute ADC0 and set the default input to mic-in |
15542 | */ | 15542 | */ |
@@ -15602,7 +15602,7 @@ static struct hda_verb alc861_base_init_verbs[] = { | |||
15602 | { } | 15602 | { } |
15603 | }; | 15603 | }; |
15604 | 15604 | ||
15605 | static struct hda_verb alc861_threestack_init_verbs[] = { | 15605 | static const struct hda_verb alc861_threestack_init_verbs[] = { |
15606 | /* | 15606 | /* |
15607 | * Unmute ADC0 and set the default input to mic-in | 15607 | * Unmute ADC0 and set the default input to mic-in |
15608 | */ | 15608 | */ |
@@ -15663,7 +15663,7 @@ static struct hda_verb alc861_threestack_init_verbs[] = { | |||
15663 | { } | 15663 | { } |
15664 | }; | 15664 | }; |
15665 | 15665 | ||
15666 | static struct hda_verb alc861_uniwill_m31_init_verbs[] = { | 15666 | static const struct hda_verb alc861_uniwill_m31_init_verbs[] = { |
15667 | /* | 15667 | /* |
15668 | * Unmute ADC0 and set the default input to mic-in | 15668 | * Unmute ADC0 and set the default input to mic-in |
15669 | */ | 15669 | */ |
@@ -15725,7 +15725,7 @@ static struct hda_verb alc861_uniwill_m31_init_verbs[] = { | |||
15725 | { } | 15725 | { } |
15726 | }; | 15726 | }; |
15727 | 15727 | ||
15728 | static struct hda_verb alc861_asus_init_verbs[] = { | 15728 | static const struct hda_verb alc861_asus_init_verbs[] = { |
15729 | /* | 15729 | /* |
15730 | * Unmute ADC0 and set the default input to mic-in | 15730 | * Unmute ADC0 and set the default input to mic-in |
15731 | */ | 15731 | */ |
@@ -15791,7 +15791,7 @@ static struct hda_verb alc861_asus_init_verbs[] = { | |||
15791 | }; | 15791 | }; |
15792 | 15792 | ||
15793 | /* additional init verbs for ASUS laptops */ | 15793 | /* additional init verbs for ASUS laptops */ |
15794 | static struct hda_verb alc861_asus_laptop_init_verbs[] = { | 15794 | static const struct hda_verb alc861_asus_laptop_init_verbs[] = { |
15795 | { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x45 }, /* HP-out */ | 15795 | { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x45 }, /* HP-out */ |
15796 | { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2) }, /* mute line-in */ | 15796 | { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2) }, /* mute line-in */ |
15797 | { } | 15797 | { } |
@@ -15800,7 +15800,7 @@ static struct hda_verb alc861_asus_laptop_init_verbs[] = { | |||
15800 | /* | 15800 | /* |
15801 | * generic initialization of ADC, input mixers and output mixers | 15801 | * generic initialization of ADC, input mixers and output mixers |
15802 | */ | 15802 | */ |
15803 | static struct hda_verb alc861_auto_init_verbs[] = { | 15803 | static const struct hda_verb alc861_auto_init_verbs[] = { |
15804 | /* | 15804 | /* |
15805 | * Unmute ADC0 and set the default input to mic-in | 15805 | * Unmute ADC0 and set the default input to mic-in |
15806 | */ | 15806 | */ |
@@ -15849,7 +15849,7 @@ static struct hda_verb alc861_auto_init_verbs[] = { | |||
15849 | { } | 15849 | { } |
15850 | }; | 15850 | }; |
15851 | 15851 | ||
15852 | static struct hda_verb alc861_toshiba_init_verbs[] = { | 15852 | static const struct hda_verb alc861_toshiba_init_verbs[] = { |
15853 | {0x0f, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, | 15853 | {0x0f, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, |
15854 | 15854 | ||
15855 | { } | 15855 | { } |
@@ -15882,7 +15882,7 @@ static void alc861_toshiba_unsol_event(struct hda_codec *codec, | |||
15882 | 15882 | ||
15883 | #define ALC861_DIGOUT_NID 0x07 | 15883 | #define ALC861_DIGOUT_NID 0x07 |
15884 | 15884 | ||
15885 | static struct hda_channel_mode alc861_8ch_modes[1] = { | 15885 | static const struct hda_channel_mode alc861_8ch_modes[1] = { |
15886 | { 8, NULL } | 15886 | { 8, NULL } |
15887 | }; | 15887 | }; |
15888 | 15888 | ||
@@ -15901,7 +15901,7 @@ static hda_nid_t alc861_adc_nids[1] = { | |||
15901 | 0x08, | 15901 | 0x08, |
15902 | }; | 15902 | }; |
15903 | 15903 | ||
15904 | static struct hda_input_mux alc861_capture_source = { | 15904 | static const struct hda_input_mux alc861_capture_source = { |
15905 | .num_items = 5, | 15905 | .num_items = 5, |
15906 | .items = { | 15906 | .items = { |
15907 | { "Mic", 0x0 }, | 15907 | { "Mic", 0x0 }, |
@@ -16174,7 +16174,7 @@ static void alc861_auto_init(struct hda_codec *codec) | |||
16174 | } | 16174 | } |
16175 | 16175 | ||
16176 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 16176 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
16177 | static struct hda_amp_list alc861_loopbacks[] = { | 16177 | static const struct hda_amp_list alc861_loopbacks[] = { |
16178 | { 0x15, HDA_INPUT, 0 }, | 16178 | { 0x15, HDA_INPUT, 0 }, |
16179 | { 0x15, HDA_INPUT, 1 }, | 16179 | { 0x15, HDA_INPUT, 1 }, |
16180 | { 0x15, HDA_INPUT, 2 }, | 16180 | { 0x15, HDA_INPUT, 2 }, |
@@ -16199,7 +16199,7 @@ static const char * const alc861_models[ALC861_MODEL_LAST] = { | |||
16199 | [ALC861_AUTO] = "auto", | 16199 | [ALC861_AUTO] = "auto", |
16200 | }; | 16200 | }; |
16201 | 16201 | ||
16202 | static struct snd_pci_quirk alc861_cfg_tbl[] = { | 16202 | static const struct snd_pci_quirk alc861_cfg_tbl[] = { |
16203 | SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC861_3ST), | 16203 | SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC861_3ST), |
16204 | SND_PCI_QUIRK(0x1043, 0x1335, "ASUS F2/3", ALC861_ASUS_LAPTOP), | 16204 | SND_PCI_QUIRK(0x1043, 0x1335, "ASUS F2/3", ALC861_ASUS_LAPTOP), |
16205 | SND_PCI_QUIRK(0x1043, 0x1338, "ASUS F2/3", ALC861_ASUS_LAPTOP), | 16205 | SND_PCI_QUIRK(0x1043, 0x1338, "ASUS F2/3", ALC861_ASUS_LAPTOP), |
@@ -16223,7 +16223,7 @@ static struct snd_pci_quirk alc861_cfg_tbl[] = { | |||
16223 | {} | 16223 | {} |
16224 | }; | 16224 | }; |
16225 | 16225 | ||
16226 | static struct alc_config_preset alc861_presets[] = { | 16226 | static const struct alc_config_preset alc861_presets[] = { |
16227 | [ALC861_3ST] = { | 16227 | [ALC861_3ST] = { |
16228 | .mixers = { alc861_3ST_mixer }, | 16228 | .mixers = { alc861_3ST_mixer }, |
16229 | .init_verbs = { alc861_threestack_init_verbs }, | 16229 | .init_verbs = { alc861_threestack_init_verbs }, |
@@ -16346,7 +16346,7 @@ static const struct alc_fixup alc861_fixups[] = { | |||
16346 | }, | 16346 | }, |
16347 | }; | 16347 | }; |
16348 | 16348 | ||
16349 | static struct snd_pci_quirk alc861_fixup_tbl[] = { | 16349 | static const struct snd_pci_quirk alc861_fixup_tbl[] = { |
16350 | SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505), | 16350 | SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505), |
16351 | {} | 16351 | {} |
16352 | }; | 16352 | }; |
@@ -16465,7 +16465,7 @@ static hda_nid_t alc861vd_capsrc_nids[1] = { 0x22 }; | |||
16465 | 16465 | ||
16466 | /* input MUX */ | 16466 | /* input MUX */ |
16467 | /* FIXME: should be a matrix-type input source selection */ | 16467 | /* FIXME: should be a matrix-type input source selection */ |
16468 | static struct hda_input_mux alc861vd_capture_source = { | 16468 | static const struct hda_input_mux alc861vd_capture_source = { |
16469 | .num_items = 4, | 16469 | .num_items = 4, |
16470 | .items = { | 16470 | .items = { |
16471 | { "Mic", 0x0 }, | 16471 | { "Mic", 0x0 }, |
@@ -16475,7 +16475,7 @@ static struct hda_input_mux alc861vd_capture_source = { | |||
16475 | }, | 16475 | }, |
16476 | }; | 16476 | }; |
16477 | 16477 | ||
16478 | static struct hda_input_mux alc861vd_dallas_capture_source = { | 16478 | static const struct hda_input_mux alc861vd_dallas_capture_source = { |
16479 | .num_items = 2, | 16479 | .num_items = 2, |
16480 | .items = { | 16480 | .items = { |
16481 | { "Mic", 0x0 }, | 16481 | { "Mic", 0x0 }, |
@@ -16483,7 +16483,7 @@ static struct hda_input_mux alc861vd_dallas_capture_source = { | |||
16483 | }, | 16483 | }, |
16484 | }; | 16484 | }; |
16485 | 16485 | ||
16486 | static struct hda_input_mux alc861vd_hp_capture_source = { | 16486 | static const struct hda_input_mux alc861vd_hp_capture_source = { |
16487 | .num_items = 2, | 16487 | .num_items = 2, |
16488 | .items = { | 16488 | .items = { |
16489 | { "Front Mic", 0x0 }, | 16489 | { "Front Mic", 0x0 }, |
@@ -16494,14 +16494,14 @@ static struct hda_input_mux alc861vd_hp_capture_source = { | |||
16494 | /* | 16494 | /* |
16495 | * 2ch mode | 16495 | * 2ch mode |
16496 | */ | 16496 | */ |
16497 | static struct hda_channel_mode alc861vd_3stack_2ch_modes[1] = { | 16497 | static const struct hda_channel_mode alc861vd_3stack_2ch_modes[1] = { |
16498 | { 2, NULL } | 16498 | { 2, NULL } |
16499 | }; | 16499 | }; |
16500 | 16500 | ||
16501 | /* | 16501 | /* |
16502 | * 6ch mode | 16502 | * 6ch mode |
16503 | */ | 16503 | */ |
16504 | static struct hda_verb alc861vd_6stack_ch6_init[] = { | 16504 | static const struct hda_verb alc861vd_6stack_ch6_init[] = { |
16505 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, | 16505 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, |
16506 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 16506 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
16507 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 16507 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -16512,7 +16512,7 @@ static struct hda_verb alc861vd_6stack_ch6_init[] = { | |||
16512 | /* | 16512 | /* |
16513 | * 8ch mode | 16513 | * 8ch mode |
16514 | */ | 16514 | */ |
16515 | static struct hda_verb alc861vd_6stack_ch8_init[] = { | 16515 | static const struct hda_verb alc861vd_6stack_ch8_init[] = { |
16516 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 16516 | { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
16517 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 16517 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
16518 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 16518 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -16520,12 +16520,12 @@ static struct hda_verb alc861vd_6stack_ch8_init[] = { | |||
16520 | { } /* end */ | 16520 | { } /* end */ |
16521 | }; | 16521 | }; |
16522 | 16522 | ||
16523 | static struct hda_channel_mode alc861vd_6stack_modes[2] = { | 16523 | static const struct hda_channel_mode alc861vd_6stack_modes[2] = { |
16524 | { 6, alc861vd_6stack_ch6_init }, | 16524 | { 6, alc861vd_6stack_ch6_init }, |
16525 | { 8, alc861vd_6stack_ch8_init }, | 16525 | { 8, alc861vd_6stack_ch8_init }, |
16526 | }; | 16526 | }; |
16527 | 16527 | ||
16528 | static struct snd_kcontrol_new alc861vd_chmode_mixer[] = { | 16528 | static const struct snd_kcontrol_new alc861vd_chmode_mixer[] = { |
16529 | { | 16529 | { |
16530 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 16530 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
16531 | .name = "Channel Mode", | 16531 | .name = "Channel Mode", |
@@ -16539,7 +16539,7 @@ static struct snd_kcontrol_new alc861vd_chmode_mixer[] = { | |||
16539 | /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 | 16539 | /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 |
16540 | * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b | 16540 | * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b |
16541 | */ | 16541 | */ |
16542 | static struct snd_kcontrol_new alc861vd_6st_mixer[] = { | 16542 | static const struct snd_kcontrol_new alc861vd_6st_mixer[] = { |
16543 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 16543 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
16544 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 16544 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
16545 | 16545 | ||
@@ -16575,7 +16575,7 @@ static struct snd_kcontrol_new alc861vd_6st_mixer[] = { | |||
16575 | { } /* end */ | 16575 | { } /* end */ |
16576 | }; | 16576 | }; |
16577 | 16577 | ||
16578 | static struct snd_kcontrol_new alc861vd_3st_mixer[] = { | 16578 | static const struct snd_kcontrol_new alc861vd_3st_mixer[] = { |
16579 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 16579 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
16580 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 16580 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
16581 | 16581 | ||
@@ -16598,7 +16598,7 @@ static struct snd_kcontrol_new alc861vd_3st_mixer[] = { | |||
16598 | { } /* end */ | 16598 | { } /* end */ |
16599 | }; | 16599 | }; |
16600 | 16600 | ||
16601 | static struct snd_kcontrol_new alc861vd_lenovo_mixer[] = { | 16601 | static const struct snd_kcontrol_new alc861vd_lenovo_mixer[] = { |
16602 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 16602 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
16603 | /*HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT),*/ | 16603 | /*HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT),*/ |
16604 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 16604 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -16622,7 +16622,7 @@ static struct snd_kcontrol_new alc861vd_lenovo_mixer[] = { | |||
16622 | /* Pin assignment: Speaker=0x14, HP = 0x15, | 16622 | /* Pin assignment: Speaker=0x14, HP = 0x15, |
16623 | * Mic=0x18, Internal Mic = 0x19, CD = 0x1c, PC Beep = 0x1d | 16623 | * Mic=0x18, Internal Mic = 0x19, CD = 0x1c, PC Beep = 0x1d |
16624 | */ | 16624 | */ |
16625 | static struct snd_kcontrol_new alc861vd_dallas_mixer[] = { | 16625 | static const struct snd_kcontrol_new alc861vd_dallas_mixer[] = { |
16626 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 16626 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
16627 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 2, HDA_INPUT), | 16627 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 2, HDA_INPUT), |
16628 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 16628 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -16639,7 +16639,7 @@ static struct snd_kcontrol_new alc861vd_dallas_mixer[] = { | |||
16639 | /* Pin assignment: Speaker=0x14, Line-out = 0x15, | 16639 | /* Pin assignment: Speaker=0x14, Line-out = 0x15, |
16640 | * Front Mic=0x18, ATAPI Mic = 0x19, | 16640 | * Front Mic=0x18, ATAPI Mic = 0x19, |
16641 | */ | 16641 | */ |
16642 | static struct snd_kcontrol_new alc861vd_hp_mixer[] = { | 16642 | static const struct snd_kcontrol_new alc861vd_hp_mixer[] = { |
16643 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 16643 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
16644 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 16644 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
16645 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 16645 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -16655,7 +16655,7 @@ static struct snd_kcontrol_new alc861vd_hp_mixer[] = { | |||
16655 | /* | 16655 | /* |
16656 | * generic initialization of ADC, input mixers and output mixers | 16656 | * generic initialization of ADC, input mixers and output mixers |
16657 | */ | 16657 | */ |
16658 | static struct hda_verb alc861vd_volume_init_verbs[] = { | 16658 | static const struct hda_verb alc861vd_volume_init_verbs[] = { |
16659 | /* | 16659 | /* |
16660 | * Unmute ADC0 and set the default input to mic-in | 16660 | * Unmute ADC0 and set the default input to mic-in |
16661 | */ | 16661 | */ |
@@ -16705,7 +16705,7 @@ static struct hda_verb alc861vd_volume_init_verbs[] = { | |||
16705 | * 3-stack pin configuration: | 16705 | * 3-stack pin configuration: |
16706 | * front = 0x14, mic/clfe = 0x18, HP = 0x19, line/surr = 0x1a, f-mic = 0x1b | 16706 | * front = 0x14, mic/clfe = 0x18, HP = 0x19, line/surr = 0x1a, f-mic = 0x1b |
16707 | */ | 16707 | */ |
16708 | static struct hda_verb alc861vd_3stack_init_verbs[] = { | 16708 | static const struct hda_verb alc861vd_3stack_init_verbs[] = { |
16709 | /* | 16709 | /* |
16710 | * Set pin mode and muting | 16710 | * Set pin mode and muting |
16711 | */ | 16711 | */ |
@@ -16736,7 +16736,7 @@ static struct hda_verb alc861vd_3stack_init_verbs[] = { | |||
16736 | /* | 16736 | /* |
16737 | * 6-stack pin configuration: | 16737 | * 6-stack pin configuration: |
16738 | */ | 16738 | */ |
16739 | static struct hda_verb alc861vd_6stack_init_verbs[] = { | 16739 | static const struct hda_verb alc861vd_6stack_init_verbs[] = { |
16740 | /* | 16740 | /* |
16741 | * Set pin mode and muting | 16741 | * Set pin mode and muting |
16742 | */ | 16742 | */ |
@@ -16777,18 +16777,18 @@ static struct hda_verb alc861vd_6stack_init_verbs[] = { | |||
16777 | { } | 16777 | { } |
16778 | }; | 16778 | }; |
16779 | 16779 | ||
16780 | static struct hda_verb alc861vd_eapd_verbs[] = { | 16780 | static const struct hda_verb alc861vd_eapd_verbs[] = { |
16781 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 16781 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
16782 | { } | 16782 | { } |
16783 | }; | 16783 | }; |
16784 | 16784 | ||
16785 | static struct hda_verb alc660vd_eapd_verbs[] = { | 16785 | static const struct hda_verb alc660vd_eapd_verbs[] = { |
16786 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 16786 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
16787 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 16787 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
16788 | { } | 16788 | { } |
16789 | }; | 16789 | }; |
16790 | 16790 | ||
16791 | static struct hda_verb alc861vd_lenovo_unsol_verbs[] = { | 16791 | static const struct hda_verb alc861vd_lenovo_unsol_verbs[] = { |
16792 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 16792 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
16793 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | 16793 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, |
16794 | {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, | 16794 | {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)}, |
@@ -16825,7 +16825,7 @@ static void alc861vd_lenovo_unsol_event(struct hda_codec *codec, | |||
16825 | } | 16825 | } |
16826 | } | 16826 | } |
16827 | 16827 | ||
16828 | static struct hda_verb alc861vd_dallas_verbs[] = { | 16828 | static const struct hda_verb alc861vd_dallas_verbs[] = { |
16829 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 16829 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
16830 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 16830 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
16831 | {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 16831 | {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
@@ -16907,7 +16907,7 @@ static const char * const alc861vd_models[ALC861VD_MODEL_LAST] = { | |||
16907 | [ALC861VD_AUTO] = "auto", | 16907 | [ALC861VD_AUTO] = "auto", |
16908 | }; | 16908 | }; |
16909 | 16909 | ||
16910 | static struct snd_pci_quirk alc861vd_cfg_tbl[] = { | 16910 | static const struct snd_pci_quirk alc861vd_cfg_tbl[] = { |
16911 | SND_PCI_QUIRK(0x1019, 0xa88d, "Realtek ALC660 demo", ALC660VD_3ST), | 16911 | SND_PCI_QUIRK(0x1019, 0xa88d, "Realtek ALC660 demo", ALC660VD_3ST), |
16912 | SND_PCI_QUIRK(0x103c, 0x30bf, "HP TX1000", ALC861VD_HP), | 16912 | SND_PCI_QUIRK(0x103c, 0x30bf, "HP TX1000", ALC861VD_HP), |
16913 | SND_PCI_QUIRK(0x1043, 0x12e2, "Asus z35m", ALC660VD_3ST), | 16913 | SND_PCI_QUIRK(0x1043, 0x12e2, "Asus z35m", ALC660VD_3ST), |
@@ -16926,7 +16926,7 @@ static struct snd_pci_quirk alc861vd_cfg_tbl[] = { | |||
16926 | {} | 16926 | {} |
16927 | }; | 16927 | }; |
16928 | 16928 | ||
16929 | static struct alc_config_preset alc861vd_presets[] = { | 16929 | static const struct alc_config_preset alc861vd_presets[] = { |
16930 | [ALC660VD_3ST] = { | 16930 | [ALC660VD_3ST] = { |
16931 | .mixers = { alc861vd_3st_mixer }, | 16931 | .mixers = { alc861vd_3st_mixer }, |
16932 | .init_verbs = { alc861vd_volume_init_verbs, | 16932 | .init_verbs = { alc861vd_volume_init_verbs, |
@@ -17321,7 +17321,7 @@ static const struct alc_fixup alc861vd_fixups[] = { | |||
17321 | }, | 17321 | }, |
17322 | }; | 17322 | }; |
17323 | 17323 | ||
17324 | static struct snd_pci_quirk alc861vd_fixup_tbl[] = { | 17324 | static const struct snd_pci_quirk alc861vd_fixup_tbl[] = { |
17325 | SND_PCI_QUIRK(0x1043, 0x1339, "ASUS A7-K", ALC660VD_FIX_ASUS_GPIO1), | 17325 | SND_PCI_QUIRK(0x1043, 0x1339, "ASUS A7-K", ALC660VD_FIX_ASUS_GPIO1), |
17326 | {} | 17326 | {} |
17327 | }; | 17327 | }; |
@@ -17452,7 +17452,7 @@ static hda_nid_t alc272_capsrc_nids[1] = { 0x23 }; | |||
17452 | 17452 | ||
17453 | /* input MUX */ | 17453 | /* input MUX */ |
17454 | /* FIXME: should be a matrix-type input source selection */ | 17454 | /* FIXME: should be a matrix-type input source selection */ |
17455 | static struct hda_input_mux alc662_capture_source = { | 17455 | static const struct hda_input_mux alc662_capture_source = { |
17456 | .num_items = 4, | 17456 | .num_items = 4, |
17457 | .items = { | 17457 | .items = { |
17458 | { "Mic", 0x0 }, | 17458 | { "Mic", 0x0 }, |
@@ -17462,7 +17462,7 @@ static struct hda_input_mux alc662_capture_source = { | |||
17462 | }, | 17462 | }, |
17463 | }; | 17463 | }; |
17464 | 17464 | ||
17465 | static struct hda_input_mux alc662_lenovo_101e_capture_source = { | 17465 | static const struct hda_input_mux alc662_lenovo_101e_capture_source = { |
17466 | .num_items = 2, | 17466 | .num_items = 2, |
17467 | .items = { | 17467 | .items = { |
17468 | { "Mic", 0x1 }, | 17468 | { "Mic", 0x1 }, |
@@ -17470,7 +17470,7 @@ static struct hda_input_mux alc662_lenovo_101e_capture_source = { | |||
17470 | }, | 17470 | }, |
17471 | }; | 17471 | }; |
17472 | 17472 | ||
17473 | static struct hda_input_mux alc663_capture_source = { | 17473 | static const struct hda_input_mux alc663_capture_source = { |
17474 | .num_items = 3, | 17474 | .num_items = 3, |
17475 | .items = { | 17475 | .items = { |
17476 | { "Mic", 0x0 }, | 17476 | { "Mic", 0x0 }, |
@@ -17480,7 +17480,7 @@ static struct hda_input_mux alc663_capture_source = { | |||
17480 | }; | 17480 | }; |
17481 | 17481 | ||
17482 | #if 0 /* set to 1 for testing other input sources below */ | 17482 | #if 0 /* set to 1 for testing other input sources below */ |
17483 | static struct hda_input_mux alc272_nc10_capture_source = { | 17483 | static const struct hda_input_mux alc272_nc10_capture_source = { |
17484 | .num_items = 16, | 17484 | .num_items = 16, |
17485 | .items = { | 17485 | .items = { |
17486 | { "Autoselect Mic", 0x0 }, | 17486 | { "Autoselect Mic", 0x0 }, |
@@ -17506,14 +17506,14 @@ static struct hda_input_mux alc272_nc10_capture_source = { | |||
17506 | /* | 17506 | /* |
17507 | * 2ch mode | 17507 | * 2ch mode |
17508 | */ | 17508 | */ |
17509 | static struct hda_channel_mode alc662_3ST_2ch_modes[1] = { | 17509 | static const struct hda_channel_mode alc662_3ST_2ch_modes[1] = { |
17510 | { 2, NULL } | 17510 | { 2, NULL } |
17511 | }; | 17511 | }; |
17512 | 17512 | ||
17513 | /* | 17513 | /* |
17514 | * 2ch mode | 17514 | * 2ch mode |
17515 | */ | 17515 | */ |
17516 | static struct hda_verb alc662_3ST_ch2_init[] = { | 17516 | static const struct hda_verb alc662_3ST_ch2_init[] = { |
17517 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, | 17517 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, |
17518 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, | 17518 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, |
17519 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, | 17519 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, |
@@ -17524,7 +17524,7 @@ static struct hda_verb alc662_3ST_ch2_init[] = { | |||
17524 | /* | 17524 | /* |
17525 | * 6ch mode | 17525 | * 6ch mode |
17526 | */ | 17526 | */ |
17527 | static struct hda_verb alc662_3ST_ch6_init[] = { | 17527 | static const struct hda_verb alc662_3ST_ch6_init[] = { |
17528 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 17528 | { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
17529 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, | 17529 | { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, |
17530 | { 0x18, AC_VERB_SET_CONNECT_SEL, 0x02 }, | 17530 | { 0x18, AC_VERB_SET_CONNECT_SEL, 0x02 }, |
@@ -17534,7 +17534,7 @@ static struct hda_verb alc662_3ST_ch6_init[] = { | |||
17534 | { } /* end */ | 17534 | { } /* end */ |
17535 | }; | 17535 | }; |
17536 | 17536 | ||
17537 | static struct hda_channel_mode alc662_3ST_6ch_modes[2] = { | 17537 | static const struct hda_channel_mode alc662_3ST_6ch_modes[2] = { |
17538 | { 2, alc662_3ST_ch2_init }, | 17538 | { 2, alc662_3ST_ch2_init }, |
17539 | { 6, alc662_3ST_ch6_init }, | 17539 | { 6, alc662_3ST_ch6_init }, |
17540 | }; | 17540 | }; |
@@ -17542,7 +17542,7 @@ static struct hda_channel_mode alc662_3ST_6ch_modes[2] = { | |||
17542 | /* | 17542 | /* |
17543 | * 2ch mode | 17543 | * 2ch mode |
17544 | */ | 17544 | */ |
17545 | static struct hda_verb alc662_sixstack_ch6_init[] = { | 17545 | static const struct hda_verb alc662_sixstack_ch6_init[] = { |
17546 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, | 17546 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, |
17547 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, | 17547 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x00 }, |
17548 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 17548 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
@@ -17552,14 +17552,14 @@ static struct hda_verb alc662_sixstack_ch6_init[] = { | |||
17552 | /* | 17552 | /* |
17553 | * 6ch mode | 17553 | * 6ch mode |
17554 | */ | 17554 | */ |
17555 | static struct hda_verb alc662_sixstack_ch8_init[] = { | 17555 | static const struct hda_verb alc662_sixstack_ch8_init[] = { |
17556 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 17556 | { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
17557 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 17557 | { 0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
17558 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 17558 | { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
17559 | { } /* end */ | 17559 | { } /* end */ |
17560 | }; | 17560 | }; |
17561 | 17561 | ||
17562 | static struct hda_channel_mode alc662_5stack_modes[2] = { | 17562 | static const struct hda_channel_mode alc662_5stack_modes[2] = { |
17563 | { 2, alc662_sixstack_ch6_init }, | 17563 | { 2, alc662_sixstack_ch6_init }, |
17564 | { 6, alc662_sixstack_ch8_init }, | 17564 | { 6, alc662_sixstack_ch8_init }, |
17565 | }; | 17565 | }; |
@@ -17568,7 +17568,7 @@ static struct hda_channel_mode alc662_5stack_modes[2] = { | |||
17568 | * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b | 17568 | * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b |
17569 | */ | 17569 | */ |
17570 | 17570 | ||
17571 | static struct snd_kcontrol_new alc662_base_mixer[] = { | 17571 | static const struct snd_kcontrol_new alc662_base_mixer[] = { |
17572 | /* output mixer control */ | 17572 | /* output mixer control */ |
17573 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), | 17573 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), |
17574 | HDA_CODEC_MUTE("Front Playback Switch", 0x0c, 0x0, HDA_INPUT), | 17574 | HDA_CODEC_MUTE("Front Playback Switch", 0x0c, 0x0, HDA_INPUT), |
@@ -17592,7 +17592,7 @@ static struct snd_kcontrol_new alc662_base_mixer[] = { | |||
17592 | { } /* end */ | 17592 | { } /* end */ |
17593 | }; | 17593 | }; |
17594 | 17594 | ||
17595 | static struct snd_kcontrol_new alc662_3ST_2ch_mixer[] = { | 17595 | static const struct snd_kcontrol_new alc662_3ST_2ch_mixer[] = { |
17596 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17596 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17597 | HDA_CODEC_MUTE("Front Playback Switch", 0x0c, 0x0, HDA_INPUT), | 17597 | HDA_CODEC_MUTE("Front Playback Switch", 0x0c, 0x0, HDA_INPUT), |
17598 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | 17598 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), |
@@ -17607,7 +17607,7 @@ static struct snd_kcontrol_new alc662_3ST_2ch_mixer[] = { | |||
17607 | { } /* end */ | 17607 | { } /* end */ |
17608 | }; | 17608 | }; |
17609 | 17609 | ||
17610 | static struct snd_kcontrol_new alc662_3ST_6ch_mixer[] = { | 17610 | static const struct snd_kcontrol_new alc662_3ST_6ch_mixer[] = { |
17611 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17611 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17612 | HDA_CODEC_MUTE("Front Playback Switch", 0x0c, 0x0, HDA_INPUT), | 17612 | HDA_CODEC_MUTE("Front Playback Switch", 0x0c, 0x0, HDA_INPUT), |
17613 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 17613 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -17628,7 +17628,7 @@ static struct snd_kcontrol_new alc662_3ST_6ch_mixer[] = { | |||
17628 | { } /* end */ | 17628 | { } /* end */ |
17629 | }; | 17629 | }; |
17630 | 17630 | ||
17631 | static struct snd_kcontrol_new alc662_lenovo_101e_mixer[] = { | 17631 | static const struct snd_kcontrol_new alc662_lenovo_101e_mixer[] = { |
17632 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17632 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17633 | HDA_BIND_MUTE("Front Playback Switch", 0x02, 2, HDA_INPUT), | 17633 | HDA_BIND_MUTE("Front Playback Switch", 0x02, 2, HDA_INPUT), |
17634 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 17634 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -17641,7 +17641,7 @@ static struct snd_kcontrol_new alc662_lenovo_101e_mixer[] = { | |||
17641 | { } /* end */ | 17641 | { } /* end */ |
17642 | }; | 17642 | }; |
17643 | 17643 | ||
17644 | static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = { | 17644 | static const struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = { |
17645 | HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17645 | HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17646 | ALC262_HIPPO_MASTER_SWITCH, | 17646 | ALC262_HIPPO_MASTER_SWITCH, |
17647 | 17647 | ||
@@ -17655,7 +17655,7 @@ static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = { | |||
17655 | { } /* end */ | 17655 | { } /* end */ |
17656 | }; | 17656 | }; |
17657 | 17657 | ||
17658 | static struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = { | 17658 | static const struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = { |
17659 | ALC262_HIPPO_MASTER_SWITCH, | 17659 | ALC262_HIPPO_MASTER_SWITCH, |
17660 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17660 | HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17661 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 17661 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -17669,7 +17669,7 @@ static struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = { | |||
17669 | { } /* end */ | 17669 | { } /* end */ |
17670 | }; | 17670 | }; |
17671 | 17671 | ||
17672 | static struct hda_bind_ctls alc663_asus_bind_master_vol = { | 17672 | static const struct hda_bind_ctls alc663_asus_bind_master_vol = { |
17673 | .ops = &snd_hda_bind_vol, | 17673 | .ops = &snd_hda_bind_vol, |
17674 | .values = { | 17674 | .values = { |
17675 | HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), | 17675 | HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), |
@@ -17678,7 +17678,7 @@ static struct hda_bind_ctls alc663_asus_bind_master_vol = { | |||
17678 | }, | 17678 | }, |
17679 | }; | 17679 | }; |
17680 | 17680 | ||
17681 | static struct hda_bind_ctls alc663_asus_one_bind_switch = { | 17681 | static const struct hda_bind_ctls alc663_asus_one_bind_switch = { |
17682 | .ops = &snd_hda_bind_sw, | 17682 | .ops = &snd_hda_bind_sw, |
17683 | .values = { | 17683 | .values = { |
17684 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), | 17684 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), |
@@ -17687,7 +17687,7 @@ static struct hda_bind_ctls alc663_asus_one_bind_switch = { | |||
17687 | }, | 17687 | }, |
17688 | }; | 17688 | }; |
17689 | 17689 | ||
17690 | static struct snd_kcontrol_new alc663_m51va_mixer[] = { | 17690 | static const struct snd_kcontrol_new alc663_m51va_mixer[] = { |
17691 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), | 17691 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), |
17692 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_one_bind_switch), | 17692 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_one_bind_switch), |
17693 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 17693 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
@@ -17695,7 +17695,7 @@ static struct snd_kcontrol_new alc663_m51va_mixer[] = { | |||
17695 | { } /* end */ | 17695 | { } /* end */ |
17696 | }; | 17696 | }; |
17697 | 17697 | ||
17698 | static struct hda_bind_ctls alc663_asus_tree_bind_switch = { | 17698 | static const struct hda_bind_ctls alc663_asus_tree_bind_switch = { |
17699 | .ops = &snd_hda_bind_sw, | 17699 | .ops = &snd_hda_bind_sw, |
17700 | .values = { | 17700 | .values = { |
17701 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), | 17701 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), |
@@ -17705,7 +17705,7 @@ static struct hda_bind_ctls alc663_asus_tree_bind_switch = { | |||
17705 | }, | 17705 | }, |
17706 | }; | 17706 | }; |
17707 | 17707 | ||
17708 | static struct snd_kcontrol_new alc663_two_hp_m1_mixer[] = { | 17708 | static const struct snd_kcontrol_new alc663_two_hp_m1_mixer[] = { |
17709 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), | 17709 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), |
17710 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_tree_bind_switch), | 17710 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_tree_bind_switch), |
17711 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 17711 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
@@ -17716,7 +17716,7 @@ static struct snd_kcontrol_new alc663_two_hp_m1_mixer[] = { | |||
17716 | { } /* end */ | 17716 | { } /* end */ |
17717 | }; | 17717 | }; |
17718 | 17718 | ||
17719 | static struct hda_bind_ctls alc663_asus_four_bind_switch = { | 17719 | static const struct hda_bind_ctls alc663_asus_four_bind_switch = { |
17720 | .ops = &snd_hda_bind_sw, | 17720 | .ops = &snd_hda_bind_sw, |
17721 | .values = { | 17721 | .values = { |
17722 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), | 17722 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), |
@@ -17726,7 +17726,7 @@ static struct hda_bind_ctls alc663_asus_four_bind_switch = { | |||
17726 | }, | 17726 | }, |
17727 | }; | 17727 | }; |
17728 | 17728 | ||
17729 | static struct snd_kcontrol_new alc663_two_hp_m2_mixer[] = { | 17729 | static const struct snd_kcontrol_new alc663_two_hp_m2_mixer[] = { |
17730 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), | 17730 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), |
17731 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_four_bind_switch), | 17731 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_four_bind_switch), |
17732 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 17732 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
@@ -17736,7 +17736,7 @@ static struct snd_kcontrol_new alc663_two_hp_m2_mixer[] = { | |||
17736 | { } /* end */ | 17736 | { } /* end */ |
17737 | }; | 17737 | }; |
17738 | 17738 | ||
17739 | static struct snd_kcontrol_new alc662_1bjd_mixer[] = { | 17739 | static const struct snd_kcontrol_new alc662_1bjd_mixer[] = { |
17740 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17740 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17741 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 17741 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
17742 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | 17742 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), |
@@ -17747,7 +17747,7 @@ static struct snd_kcontrol_new alc662_1bjd_mixer[] = { | |||
17747 | { } /* end */ | 17747 | { } /* end */ |
17748 | }; | 17748 | }; |
17749 | 17749 | ||
17750 | static struct hda_bind_ctls alc663_asus_two_bind_master_vol = { | 17750 | static const struct hda_bind_ctls alc663_asus_two_bind_master_vol = { |
17751 | .ops = &snd_hda_bind_vol, | 17751 | .ops = &snd_hda_bind_vol, |
17752 | .values = { | 17752 | .values = { |
17753 | HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), | 17753 | HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), |
@@ -17756,7 +17756,7 @@ static struct hda_bind_ctls alc663_asus_two_bind_master_vol = { | |||
17756 | }, | 17756 | }, |
17757 | }; | 17757 | }; |
17758 | 17758 | ||
17759 | static struct hda_bind_ctls alc663_asus_two_bind_switch = { | 17759 | static const struct hda_bind_ctls alc663_asus_two_bind_switch = { |
17760 | .ops = &snd_hda_bind_sw, | 17760 | .ops = &snd_hda_bind_sw, |
17761 | .values = { | 17761 | .values = { |
17762 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), | 17762 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), |
@@ -17765,7 +17765,7 @@ static struct hda_bind_ctls alc663_asus_two_bind_switch = { | |||
17765 | }, | 17765 | }, |
17766 | }; | 17766 | }; |
17767 | 17767 | ||
17768 | static struct snd_kcontrol_new alc663_asus_21jd_clfe_mixer[] = { | 17768 | static const struct snd_kcontrol_new alc663_asus_21jd_clfe_mixer[] = { |
17769 | HDA_BIND_VOL("Master Playback Volume", | 17769 | HDA_BIND_VOL("Master Playback Volume", |
17770 | &alc663_asus_two_bind_master_vol), | 17770 | &alc663_asus_two_bind_master_vol), |
17771 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_two_bind_switch), | 17771 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_two_bind_switch), |
@@ -17776,7 +17776,7 @@ static struct snd_kcontrol_new alc663_asus_21jd_clfe_mixer[] = { | |||
17776 | { } /* end */ | 17776 | { } /* end */ |
17777 | }; | 17777 | }; |
17778 | 17778 | ||
17779 | static struct snd_kcontrol_new alc663_asus_15jd_clfe_mixer[] = { | 17779 | static const struct snd_kcontrol_new alc663_asus_15jd_clfe_mixer[] = { |
17780 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), | 17780 | HDA_BIND_VOL("Master Playback Volume", &alc663_asus_bind_master_vol), |
17781 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_two_bind_switch), | 17781 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_two_bind_switch), |
17782 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 17782 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -17786,7 +17786,7 @@ static struct snd_kcontrol_new alc663_asus_15jd_clfe_mixer[] = { | |||
17786 | { } /* end */ | 17786 | { } /* end */ |
17787 | }; | 17787 | }; |
17788 | 17788 | ||
17789 | static struct snd_kcontrol_new alc663_g71v_mixer[] = { | 17789 | static const struct snd_kcontrol_new alc663_g71v_mixer[] = { |
17790 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17790 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17791 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 17791 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
17792 | HDA_CODEC_VOLUME("Front Playback Volume", 0x03, 0x0, HDA_OUTPUT), | 17792 | HDA_CODEC_VOLUME("Front Playback Volume", 0x03, 0x0, HDA_OUTPUT), |
@@ -17800,7 +17800,7 @@ static struct snd_kcontrol_new alc663_g71v_mixer[] = { | |||
17800 | { } /* end */ | 17800 | { } /* end */ |
17801 | }; | 17801 | }; |
17802 | 17802 | ||
17803 | static struct snd_kcontrol_new alc663_g50v_mixer[] = { | 17803 | static const struct snd_kcontrol_new alc663_g50v_mixer[] = { |
17804 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 17804 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
17805 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 17805 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
17806 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x21, 0x0, HDA_OUTPUT), | 17806 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x21, 0x0, HDA_OUTPUT), |
@@ -17814,7 +17814,7 @@ static struct snd_kcontrol_new alc663_g50v_mixer[] = { | |||
17814 | { } /* end */ | 17814 | { } /* end */ |
17815 | }; | 17815 | }; |
17816 | 17816 | ||
17817 | static struct hda_bind_ctls alc663_asus_mode7_8_all_bind_switch = { | 17817 | static const struct hda_bind_ctls alc663_asus_mode7_8_all_bind_switch = { |
17818 | .ops = &snd_hda_bind_sw, | 17818 | .ops = &snd_hda_bind_sw, |
17819 | .values = { | 17819 | .values = { |
17820 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), | 17820 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), |
@@ -17826,7 +17826,7 @@ static struct hda_bind_ctls alc663_asus_mode7_8_all_bind_switch = { | |||
17826 | }, | 17826 | }, |
17827 | }; | 17827 | }; |
17828 | 17828 | ||
17829 | static struct hda_bind_ctls alc663_asus_mode7_8_sp_bind_switch = { | 17829 | static const struct hda_bind_ctls alc663_asus_mode7_8_sp_bind_switch = { |
17830 | .ops = &snd_hda_bind_sw, | 17830 | .ops = &snd_hda_bind_sw, |
17831 | .values = { | 17831 | .values = { |
17832 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), | 17832 | HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_OUTPUT), |
@@ -17835,7 +17835,7 @@ static struct hda_bind_ctls alc663_asus_mode7_8_sp_bind_switch = { | |||
17835 | }, | 17835 | }, |
17836 | }; | 17836 | }; |
17837 | 17837 | ||
17838 | static struct snd_kcontrol_new alc663_mode7_mixer[] = { | 17838 | static const struct snd_kcontrol_new alc663_mode7_mixer[] = { |
17839 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_mode7_8_all_bind_switch), | 17839 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_mode7_8_all_bind_switch), |
17840 | HDA_BIND_VOL("Speaker Playback Volume", &alc663_asus_bind_master_vol), | 17840 | HDA_BIND_VOL("Speaker Playback Volume", &alc663_asus_bind_master_vol), |
17841 | HDA_BIND_SW("Speaker Playback Switch", &alc663_asus_mode7_8_sp_bind_switch), | 17841 | HDA_BIND_SW("Speaker Playback Switch", &alc663_asus_mode7_8_sp_bind_switch), |
@@ -17848,7 +17848,7 @@ static struct snd_kcontrol_new alc663_mode7_mixer[] = { | |||
17848 | { } /* end */ | 17848 | { } /* end */ |
17849 | }; | 17849 | }; |
17850 | 17850 | ||
17851 | static struct snd_kcontrol_new alc663_mode8_mixer[] = { | 17851 | static const struct snd_kcontrol_new alc663_mode8_mixer[] = { |
17852 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_mode7_8_all_bind_switch), | 17852 | HDA_BIND_SW("Master Playback Switch", &alc663_asus_mode7_8_all_bind_switch), |
17853 | HDA_BIND_VOL("Speaker Playback Volume", &alc663_asus_bind_master_vol), | 17853 | HDA_BIND_VOL("Speaker Playback Volume", &alc663_asus_bind_master_vol), |
17854 | HDA_BIND_SW("Speaker Playback Switch", &alc663_asus_mode7_8_sp_bind_switch), | 17854 | HDA_BIND_SW("Speaker Playback Switch", &alc663_asus_mode7_8_sp_bind_switch), |
@@ -17860,7 +17860,7 @@ static struct snd_kcontrol_new alc663_mode8_mixer[] = { | |||
17860 | }; | 17860 | }; |
17861 | 17861 | ||
17862 | 17862 | ||
17863 | static struct snd_kcontrol_new alc662_chmode_mixer[] = { | 17863 | static const struct snd_kcontrol_new alc662_chmode_mixer[] = { |
17864 | { | 17864 | { |
17865 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 17865 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
17866 | .name = "Channel Mode", | 17866 | .name = "Channel Mode", |
@@ -17871,7 +17871,7 @@ static struct snd_kcontrol_new alc662_chmode_mixer[] = { | |||
17871 | { } /* end */ | 17871 | { } /* end */ |
17872 | }; | 17872 | }; |
17873 | 17873 | ||
17874 | static struct hda_verb alc662_init_verbs[] = { | 17874 | static const struct hda_verb alc662_init_verbs[] = { |
17875 | /* ADC: mute amp left and right */ | 17875 | /* ADC: mute amp left and right */ |
17876 | {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 17876 | {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
17877 | {0x09, AC_VERB_SET_CONNECT_SEL, 0x00}, | 17877 | {0x09, AC_VERB_SET_CONNECT_SEL, 0x00}, |
@@ -17920,33 +17920,33 @@ static struct hda_verb alc662_init_verbs[] = { | |||
17920 | { } | 17920 | { } |
17921 | }; | 17921 | }; |
17922 | 17922 | ||
17923 | static struct hda_verb alc662_eapd_init_verbs[] = { | 17923 | static const struct hda_verb alc662_eapd_init_verbs[] = { |
17924 | /* always trun on EAPD */ | 17924 | /* always trun on EAPD */ |
17925 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 17925 | {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
17926 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, | 17926 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2}, |
17927 | { } | 17927 | { } |
17928 | }; | 17928 | }; |
17929 | 17929 | ||
17930 | static struct hda_verb alc662_sue_init_verbs[] = { | 17930 | static const struct hda_verb alc662_sue_init_verbs[] = { |
17931 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN|ALC880_FRONT_EVENT}, | 17931 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN|ALC880_FRONT_EVENT}, |
17932 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN|ALC880_HP_EVENT}, | 17932 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN|ALC880_HP_EVENT}, |
17933 | {} | 17933 | {} |
17934 | }; | 17934 | }; |
17935 | 17935 | ||
17936 | static struct hda_verb alc662_eeepc_sue_init_verbs[] = { | 17936 | static const struct hda_verb alc662_eeepc_sue_init_verbs[] = { |
17937 | {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT}, | 17937 | {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT}, |
17938 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, | 17938 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, |
17939 | {} | 17939 | {} |
17940 | }; | 17940 | }; |
17941 | 17941 | ||
17942 | /* Set Unsolicited Event*/ | 17942 | /* Set Unsolicited Event*/ |
17943 | static struct hda_verb alc662_eeepc_ep20_sue_init_verbs[] = { | 17943 | static const struct hda_verb alc662_eeepc_ep20_sue_init_verbs[] = { |
17944 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 17944 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
17945 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, | 17945 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, |
17946 | {} | 17946 | {} |
17947 | }; | 17947 | }; |
17948 | 17948 | ||
17949 | static struct hda_verb alc663_m51va_init_verbs[] = { | 17949 | static const struct hda_verb alc663_m51va_init_verbs[] = { |
17950 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 17950 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
17951 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 17951 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
17952 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 17952 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
@@ -17959,7 +17959,7 @@ static struct hda_verb alc663_m51va_init_verbs[] = { | |||
17959 | {} | 17959 | {} |
17960 | }; | 17960 | }; |
17961 | 17961 | ||
17962 | static struct hda_verb alc663_21jd_amic_init_verbs[] = { | 17962 | static const struct hda_verb alc663_21jd_amic_init_verbs[] = { |
17963 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 17963 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
17964 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 17964 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
17965 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Headphone */ | 17965 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Headphone */ |
@@ -17970,7 +17970,7 @@ static struct hda_verb alc663_21jd_amic_init_verbs[] = { | |||
17970 | {} | 17970 | {} |
17971 | }; | 17971 | }; |
17972 | 17972 | ||
17973 | static struct hda_verb alc662_1bjd_amic_init_verbs[] = { | 17973 | static const struct hda_verb alc662_1bjd_amic_init_verbs[] = { |
17974 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 17974 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
17975 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 17975 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
17976 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 17976 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -17982,7 +17982,7 @@ static struct hda_verb alc662_1bjd_amic_init_verbs[] = { | |||
17982 | {} | 17982 | {} |
17983 | }; | 17983 | }; |
17984 | 17984 | ||
17985 | static struct hda_verb alc663_15jd_amic_init_verbs[] = { | 17985 | static const struct hda_verb alc663_15jd_amic_init_verbs[] = { |
17986 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 17986 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
17987 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 17987 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
17988 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Headphone */ | 17988 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Headphone */ |
@@ -17993,7 +17993,7 @@ static struct hda_verb alc663_15jd_amic_init_verbs[] = { | |||
17993 | {} | 17993 | {} |
17994 | }; | 17994 | }; |
17995 | 17995 | ||
17996 | static struct hda_verb alc663_two_hp_amic_m1_init_verbs[] = { | 17996 | static const struct hda_verb alc663_two_hp_amic_m1_init_verbs[] = { |
17997 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 17997 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
17998 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 17998 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
17999 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 17999 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -18009,7 +18009,7 @@ static struct hda_verb alc663_two_hp_amic_m1_init_verbs[] = { | |||
18009 | {} | 18009 | {} |
18010 | }; | 18010 | }; |
18011 | 18011 | ||
18012 | static struct hda_verb alc663_two_hp_amic_m2_init_verbs[] = { | 18012 | static const struct hda_verb alc663_two_hp_amic_m2_init_verbs[] = { |
18013 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18013 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18014 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 18014 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
18015 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 18015 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -18025,7 +18025,7 @@ static struct hda_verb alc663_two_hp_amic_m2_init_verbs[] = { | |||
18025 | {} | 18025 | {} |
18026 | }; | 18026 | }; |
18027 | 18027 | ||
18028 | static struct hda_verb alc663_g71v_init_verbs[] = { | 18028 | static const struct hda_verb alc663_g71v_init_verbs[] = { |
18029 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 18029 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
18030 | /* {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, */ | 18030 | /* {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, */ |
18031 | /* {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, */ /* Headphone */ | 18031 | /* {0x15, AC_VERB_SET_CONNECT_SEL, 0x01}, */ /* Headphone */ |
@@ -18040,7 +18040,7 @@ static struct hda_verb alc663_g71v_init_verbs[] = { | |||
18040 | {} | 18040 | {} |
18041 | }; | 18041 | }; |
18042 | 18042 | ||
18043 | static struct hda_verb alc663_g50v_init_verbs[] = { | 18043 | static const struct hda_verb alc663_g50v_init_verbs[] = { |
18044 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 18044 | {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
18045 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 18045 | {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
18046 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Headphone */ | 18046 | {0x21, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Headphone */ |
@@ -18050,7 +18050,7 @@ static struct hda_verb alc663_g50v_init_verbs[] = { | |||
18050 | {} | 18050 | {} |
18051 | }; | 18051 | }; |
18052 | 18052 | ||
18053 | static struct hda_verb alc662_ecs_init_verbs[] = { | 18053 | static const struct hda_verb alc662_ecs_init_verbs[] = { |
18054 | {0x09, AC_VERB_SET_AMP_GAIN_MUTE, 0x701f}, | 18054 | {0x09, AC_VERB_SET_AMP_GAIN_MUTE, 0x701f}, |
18055 | {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 18055 | {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
18056 | {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT}, | 18056 | {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT}, |
@@ -18058,7 +18058,7 @@ static struct hda_verb alc662_ecs_init_verbs[] = { | |||
18058 | {} | 18058 | {} |
18059 | }; | 18059 | }; |
18060 | 18060 | ||
18061 | static struct hda_verb alc272_dell_zm1_init_verbs[] = { | 18061 | static const struct hda_verb alc272_dell_zm1_init_verbs[] = { |
18062 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18062 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18063 | {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18063 | {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18064 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18064 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
@@ -18073,7 +18073,7 @@ static struct hda_verb alc272_dell_zm1_init_verbs[] = { | |||
18073 | {} | 18073 | {} |
18074 | }; | 18074 | }; |
18075 | 18075 | ||
18076 | static struct hda_verb alc272_dell_init_verbs[] = { | 18076 | static const struct hda_verb alc272_dell_init_verbs[] = { |
18077 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18077 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18078 | {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18078 | {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18079 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18079 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
@@ -18088,7 +18088,7 @@ static struct hda_verb alc272_dell_init_verbs[] = { | |||
18088 | {} | 18088 | {} |
18089 | }; | 18089 | }; |
18090 | 18090 | ||
18091 | static struct hda_verb alc663_mode7_init_verbs[] = { | 18091 | static const struct hda_verb alc663_mode7_init_verbs[] = { |
18092 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18092 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18093 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18093 | {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18094 | {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 18094 | {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
@@ -18107,7 +18107,7 @@ static struct hda_verb alc663_mode7_init_verbs[] = { | |||
18107 | {} | 18107 | {} |
18108 | }; | 18108 | }; |
18109 | 18109 | ||
18110 | static struct hda_verb alc663_mode8_init_verbs[] = { | 18110 | static const struct hda_verb alc663_mode8_init_verbs[] = { |
18111 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | 18111 | {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, |
18112 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | 18112 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, |
18113 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 18113 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -18127,13 +18127,13 @@ static struct hda_verb alc663_mode8_init_verbs[] = { | |||
18127 | {} | 18127 | {} |
18128 | }; | 18128 | }; |
18129 | 18129 | ||
18130 | static struct snd_kcontrol_new alc662_auto_capture_mixer[] = { | 18130 | static const struct snd_kcontrol_new alc662_auto_capture_mixer[] = { |
18131 | HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT), | 18131 | HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT), |
18132 | HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT), | 18132 | HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT), |
18133 | { } /* end */ | 18133 | { } /* end */ |
18134 | }; | 18134 | }; |
18135 | 18135 | ||
18136 | static struct snd_kcontrol_new alc272_auto_capture_mixer[] = { | 18136 | static const struct snd_kcontrol_new alc272_auto_capture_mixer[] = { |
18137 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), | 18137 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), |
18138 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), | 18138 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), |
18139 | { } /* end */ | 18139 | { } /* end */ |
@@ -18342,7 +18342,7 @@ static void alc663_g71v_setup(struct hda_codec *codec) | |||
18342 | 18342 | ||
18343 | #define alc663_g50v_setup alc663_m51va_setup | 18343 | #define alc663_g50v_setup alc663_m51va_setup |
18344 | 18344 | ||
18345 | static struct snd_kcontrol_new alc662_ecs_mixer[] = { | 18345 | static const struct snd_kcontrol_new alc662_ecs_mixer[] = { |
18346 | HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 18346 | HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
18347 | ALC262_HIPPO_MASTER_SWITCH, | 18347 | ALC262_HIPPO_MASTER_SWITCH, |
18348 | 18348 | ||
@@ -18356,7 +18356,7 @@ static struct snd_kcontrol_new alc662_ecs_mixer[] = { | |||
18356 | { } /* end */ | 18356 | { } /* end */ |
18357 | }; | 18357 | }; |
18358 | 18358 | ||
18359 | static struct snd_kcontrol_new alc272_nc10_mixer[] = { | 18359 | static const struct snd_kcontrol_new alc272_nc10_mixer[] = { |
18360 | /* Master Playback automatically created from Speaker and Headphone */ | 18360 | /* Master Playback automatically created from Speaker and Headphone */ |
18361 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), | 18361 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x02, 0x0, HDA_OUTPUT), |
18362 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 18362 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -18414,7 +18414,7 @@ static const char * const alc662_models[ALC662_MODEL_LAST] = { | |||
18414 | [ALC662_AUTO] = "auto", | 18414 | [ALC662_AUTO] = "auto", |
18415 | }; | 18415 | }; |
18416 | 18416 | ||
18417 | static struct snd_pci_quirk alc662_cfg_tbl[] = { | 18417 | static const struct snd_pci_quirk alc662_cfg_tbl[] = { |
18418 | SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_ECS), | 18418 | SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_ECS), |
18419 | SND_PCI_QUIRK(0x1028, 0x02d6, "DELL", ALC272_DELL), | 18419 | SND_PCI_QUIRK(0x1028, 0x02d6, "DELL", ALC272_DELL), |
18420 | SND_PCI_QUIRK(0x1028, 0x02f4, "DELL ZM1", ALC272_DELL_ZM1), | 18420 | SND_PCI_QUIRK(0x1028, 0x02f4, "DELL ZM1", ALC272_DELL_ZM1), |
@@ -18496,7 +18496,7 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = { | |||
18496 | {} | 18496 | {} |
18497 | }; | 18497 | }; |
18498 | 18498 | ||
18499 | static struct alc_config_preset alc662_presets[] = { | 18499 | static const struct alc_config_preset alc662_presets[] = { |
18500 | [ALC662_3ST_2ch_DIG] = { | 18500 | [ALC662_3ST_2ch_DIG] = { |
18501 | .mixers = { alc662_3ST_2ch_mixer }, | 18501 | .mixers = { alc662_3ST_2ch_mixer }, |
18502 | .init_verbs = { alc662_init_verbs, alc662_eapd_init_verbs }, | 18502 | .init_verbs = { alc662_init_verbs, alc662_eapd_init_verbs }, |
@@ -19247,7 +19247,7 @@ static int alc_auto_ch_mode_put(struct snd_kcontrol *kcontrol, | |||
19247 | return 1; | 19247 | return 1; |
19248 | } | 19248 | } |
19249 | 19249 | ||
19250 | static struct snd_kcontrol_new alc_auto_channel_mode_enum = { | 19250 | static const struct snd_kcontrol_new alc_auto_channel_mode_enum = { |
19251 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 19251 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
19252 | .name = "Channel Mode", | 19252 | .name = "Channel Mode", |
19253 | .info = alc_auto_ch_mode_info, | 19253 | .info = alc_auto_ch_mode_info, |
@@ -19417,7 +19417,7 @@ static const struct alc_fixup alc662_fixups[] = { | |||
19417 | }, | 19417 | }, |
19418 | }; | 19418 | }; |
19419 | 19419 | ||
19420 | static struct snd_pci_quirk alc662_fixup_tbl[] = { | 19420 | static const struct snd_pci_quirk alc662_fixup_tbl[] = { |
19421 | SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), | 19421 | SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), |
19422 | SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE), | 19422 | SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE), |
19423 | SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), | 19423 | SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), |
@@ -19644,7 +19644,7 @@ static int alc680_capture_pcm_cleanup(struct hda_pcm_stream *hinfo, | |||
19644 | return 0; | 19644 | return 0; |
19645 | } | 19645 | } |
19646 | 19646 | ||
19647 | static struct hda_pcm_stream alc680_pcm_analog_auto_capture = { | 19647 | static const struct hda_pcm_stream alc680_pcm_analog_auto_capture = { |
19648 | .substreams = 1, /* can be overridden */ | 19648 | .substreams = 1, /* can be overridden */ |
19649 | .channels_min = 2, | 19649 | .channels_min = 2, |
19650 | .channels_max = 2, | 19650 | .channels_max = 2, |
@@ -19655,7 +19655,7 @@ static struct hda_pcm_stream alc680_pcm_analog_auto_capture = { | |||
19655 | }, | 19655 | }, |
19656 | }; | 19656 | }; |
19657 | 19657 | ||
19658 | static struct snd_kcontrol_new alc680_base_mixer[] = { | 19658 | static const struct snd_kcontrol_new alc680_base_mixer[] = { |
19659 | /* output mixer control */ | 19659 | /* output mixer control */ |
19660 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), | 19660 | HDA_CODEC_VOLUME("Front Playback Volume", 0x2, 0x0, HDA_OUTPUT), |
19661 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), | 19661 | HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), |
@@ -19667,7 +19667,7 @@ static struct snd_kcontrol_new alc680_base_mixer[] = { | |||
19667 | { } | 19667 | { } |
19668 | }; | 19668 | }; |
19669 | 19669 | ||
19670 | static struct hda_bind_ctls alc680_bind_cap_vol = { | 19670 | static const struct hda_bind_ctls alc680_bind_cap_vol = { |
19671 | .ops = &snd_hda_bind_vol, | 19671 | .ops = &snd_hda_bind_vol, |
19672 | .values = { | 19672 | .values = { |
19673 | HDA_COMPOSE_AMP_VAL(0x07, 3, 0, HDA_INPUT), | 19673 | HDA_COMPOSE_AMP_VAL(0x07, 3, 0, HDA_INPUT), |
@@ -19677,7 +19677,7 @@ static struct hda_bind_ctls alc680_bind_cap_vol = { | |||
19677 | }, | 19677 | }, |
19678 | }; | 19678 | }; |
19679 | 19679 | ||
19680 | static struct hda_bind_ctls alc680_bind_cap_switch = { | 19680 | static const struct hda_bind_ctls alc680_bind_cap_switch = { |
19681 | .ops = &snd_hda_bind_sw, | 19681 | .ops = &snd_hda_bind_sw, |
19682 | .values = { | 19682 | .values = { |
19683 | HDA_COMPOSE_AMP_VAL(0x07, 3, 0, HDA_INPUT), | 19683 | HDA_COMPOSE_AMP_VAL(0x07, 3, 0, HDA_INPUT), |
@@ -19687,7 +19687,7 @@ static struct hda_bind_ctls alc680_bind_cap_switch = { | |||
19687 | }, | 19687 | }, |
19688 | }; | 19688 | }; |
19689 | 19689 | ||
19690 | static struct snd_kcontrol_new alc680_master_capture_mixer[] = { | 19690 | static const struct snd_kcontrol_new alc680_master_capture_mixer[] = { |
19691 | HDA_BIND_VOL("Capture Volume", &alc680_bind_cap_vol), | 19691 | HDA_BIND_VOL("Capture Volume", &alc680_bind_cap_vol), |
19692 | HDA_BIND_SW("Capture Switch", &alc680_bind_cap_switch), | 19692 | HDA_BIND_SW("Capture Switch", &alc680_bind_cap_switch), |
19693 | { } /* end */ | 19693 | { } /* end */ |
@@ -19696,7 +19696,7 @@ static struct snd_kcontrol_new alc680_master_capture_mixer[] = { | |||
19696 | /* | 19696 | /* |
19697 | * generic initialization of ADC, input mixers and output mixers | 19697 | * generic initialization of ADC, input mixers and output mixers |
19698 | */ | 19698 | */ |
19699 | static struct hda_verb alc680_init_verbs[] = { | 19699 | static const struct hda_verb alc680_init_verbs[] = { |
19700 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 19700 | {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
19701 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 19701 | {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
19702 | {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 19702 | {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
@@ -19930,12 +19930,12 @@ static const char * const alc680_models[ALC680_MODEL_LAST] = { | |||
19930 | [ALC680_AUTO] = "auto", | 19930 | [ALC680_AUTO] = "auto", |
19931 | }; | 19931 | }; |
19932 | 19932 | ||
19933 | static struct snd_pci_quirk alc680_cfg_tbl[] = { | 19933 | static const struct snd_pci_quirk alc680_cfg_tbl[] = { |
19934 | SND_PCI_QUIRK(0x1043, 0x12f3, "ASUS NX90", ALC680_BASE), | 19934 | SND_PCI_QUIRK(0x1043, 0x12f3, "ASUS NX90", ALC680_BASE), |
19935 | {} | 19935 | {} |
19936 | }; | 19936 | }; |
19937 | 19937 | ||
19938 | static struct alc_config_preset alc680_presets[] = { | 19938 | static const struct alc_config_preset alc680_presets[] = { |
19939 | [ALC680_BASE] = { | 19939 | [ALC680_BASE] = { |
19940 | .mixers = { alc680_base_mixer }, | 19940 | .mixers = { alc680_base_mixer }, |
19941 | .cap_mixer = alc680_master_capture_mixer, | 19941 | .cap_mixer = alc680_master_capture_mixer, |
@@ -20016,7 +20016,7 @@ static int patch_alc680(struct hda_codec *codec) | |||
20016 | /* | 20016 | /* |
20017 | * patch entries | 20017 | * patch entries |
20018 | */ | 20018 | */ |
20019 | static struct hda_codec_preset snd_hda_preset_realtek[] = { | 20019 | static const struct hda_codec_preset snd_hda_preset_realtek[] = { |
20020 | { .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 }, | 20020 | { .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 }, |
20021 | { .id = 0x10ec0262, .name = "ALC262", .patch = patch_alc262 }, | 20021 | { .id = 0x10ec0262, .name = "ALC262", .patch = patch_alc262 }, |
20022 | { .id = 0x10ec0267, .name = "ALC267", .patch = patch_alc268 }, | 20022 | { .id = 0x10ec0267, .name = "ALC267", .patch = patch_alc268 }, |