aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c1006
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
314struct alc_spec { 314struct 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 */
437struct alc_config_preset { 437struct 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 */
589static char *alc_pin_mode_names[] = { 589static 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};
593static unsigned char alc_pin_mode_values[] = { 593static 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 */
612static signed char alc_pin_mode_dir_info[5][2] = { 612static 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 */
929static void add_mixer(struct alc_spec *spec, struct snd_kcontrol_new *mix) 929static 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 */
1000static struct hda_verb alc_gpio1_init_verbs[] = { 1000static 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
1007static struct hda_verb alc_gpio2_init_verbs[] = { 1007static 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
1014static struct hda_verb alc_gpio3_init_verbs[] = { 1014static 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
1506static struct snd_kcontrol_new alc_automute_mode_enum = { 1506static 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 */
2089static struct hda_verb alc888_4ST_ch2_intel_init[] = { 2089static 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 */
2104static struct hda_verb alc888_4ST_ch4_intel_init[] = { 2104static 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 */
2119static struct hda_verb alc888_4ST_ch6_intel_init[] = { 2119static 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 */
2134static struct hda_verb alc888_4ST_ch8_intel_init[] = { 2134static 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
2146static struct hda_channel_mode alc888_4ST_8ch_intel_modes[4] = { 2146static 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
2157static struct hda_verb alc888_fujitsu_xa3530_verbs[] = { 2157static 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
2226static struct hda_verb alc888_acer_aspire_4930g_verbs[] = { 2226static 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
2249static struct hda_verb alc888_acer_aspire_6530g_verbs[] = { 2249static 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
2279static struct hda_verb alc888_acer_aspire_7730G_verbs[] = { 2279static 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
2309static struct hda_verb alc889_acer_aspire_8930g_verbs[] = { 2309static 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
2355static struct hda_input_mux alc888_2_capture_sources[2] = { 2355static 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
2376static struct hda_input_mux alc888_acer_aspire_6530_sources[2] = { 2376static 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
2399static struct hda_input_mux alc889_capture_sources[3] = { 2399static 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
2431static struct snd_kcontrol_new alc888_base_mixer[] = { 2431static 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
2453static struct snd_kcontrol_new alc888_acer_aspire_4930g_mixer[] = { 2453static 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
2475static struct snd_kcontrol_new alc889_acer_aspire_8930g_mixer[] = { 2475static 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
2572static struct hda_input_mux alc880_capture_source = { 2572static 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 */
2584static struct hda_verb alc880_threestack_ch2_init[] = { 2584static 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 */
2595static struct hda_verb alc880_threestack_ch6_init[] = { 2595static 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
2605static struct hda_channel_mode alc880_threestack_modes[2] = { 2605static 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
2610static struct snd_kcontrol_new alc880_three_stack_mixer[] = { 2610static 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) \
2755static struct snd_kcontrol_new alc_capture_mixer ## num[] = { \ 2755static 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) \
2762static struct snd_kcontrol_new alc_capture_mixer_nosrc ## num[] = { \ 2762static 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 */
2785static struct snd_kcontrol_new alc880_five_stack_mixer[] = { 2785static 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 */
2793static struct hda_verb alc880_fivestack_ch6_init[] = { 2793static 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 */
2801static struct hda_verb alc880_fivestack_ch8_init[] = { 2801static 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
2808static struct hda_channel_mode alc880_fivestack_modes[2] = { 2808static 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
2828static struct hda_input_mux alc880_6stack_capture_source = { 2828static 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 */
2839static struct hda_channel_mode alc880_sixstack_modes[1] = { 2839static const struct hda_channel_mode alc880_sixstack_modes[1] = {
2840 { 8, NULL }, 2840 { 8, NULL },
2841}; 2841};
2842 2842
2843static struct snd_kcontrol_new alc880_six_stack_mixer[] = { 2843static 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 */
2904static struct hda_channel_mode alc880_w810_modes[1] = { 2904static 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 */
2909static struct snd_kcontrol_new alc880_w810_base_mixer[] = { 2909static 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 */
2937static struct hda_channel_mode alc880_2_jack_modes[1] = { 2937static const struct hda_channel_mode alc880_2_jack_modes[1] = {
2938 { 2, NULL } 2938 { 2, NULL }
2939}; 2939};
2940 2940
2941static struct snd_kcontrol_new alc880_z71v_mixer[] = { 2941static 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
2966static struct snd_kcontrol_new alc880_f1734_mixer[] = { 2966static 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
2978static struct hda_input_mux alc880_f1734_capture_source = { 2978static 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
2998static struct snd_kcontrol_new alc880_asus_mixer[] = { 2998static 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 */
3032static struct snd_kcontrol_new alc880_asus_w1v_mixer[] = { 3032static 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 */
3039static struct snd_kcontrol_new alc880_tcl_s700_mixer[] = { 3039static 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 */
3053static struct snd_kcontrol_new alc880_uniwill_mixer[] = { 3053static 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
3080static struct snd_kcontrol_new alc880_fujitsu_mixer[] = { 3080static 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
3094static struct snd_kcontrol_new alc880_uniwill_p53_mixer[] = { 3094static 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 */
3157static struct snd_kcontrol_new alc_beep_mixer[] = { 3157static 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 */
3322static struct hda_verb alc880_volume_init_verbs[] = { 3322static 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 */
3373static struct hda_verb alc880_pin_3stack_init_verbs[] = { 3373static 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 */
3411static struct hda_verb alc880_pin_5stack_init_verbs[] = { 3411static 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 */
3455static struct hda_verb alc880_pin_w810_init_verbs[] = { 3455static 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 */
3476static struct hda_verb alc880_pin_z71v_init_verbs[] = { 3476static 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 */
3495static struct hda_verb alc880_pin_6stack_init_verbs[] = { 3495static 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 */
3525static struct hda_verb alc880_uniwill_init_verbs[] = { 3525static 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 */
3563static struct hda_verb alc880_uniwill_p53_init_verbs[] = { 3563static 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
3592static struct hda_verb alc880_beep_init_verbs[] = { 3592static 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 */
3680static struct hda_verb alc880_pin_f1734_init_verbs[] = { 3680static 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 */
3712static struct hda_verb alc880_pin_asus_init_verbs[] = { 3712static 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 */
3746static struct hda_verb alc880_pin_clevo_init_verbs[] = { 3746static 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
3774static struct hda_verb alc880_pin_tcl_S700_init_verbs[] = { 3774static 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 */
3817static struct hda_input_mux alc880_lg_capture_source = { 3817static 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 */
3827static struct hda_verb alc880_lg_ch2_init[] = { 3827static 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
3834static struct hda_verb alc880_lg_ch4_init[] = { 3834static 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
3841static struct hda_verb alc880_lg_ch6_init[] = { 3841static 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
3848static struct hda_channel_mode alc880_lg_ch_modes[3] = { 3848static 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
3854static struct snd_kcontrol_new alc880_lg_mixer[] = { 3854static 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
3879static struct hda_verb alc880_lg_init_verbs[] = { 3879static 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
3933static struct hda_input_mux alc880_lg_lw_capture_source = { 3933static 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
3944static struct snd_kcontrol_new alc880_lg_lw_mixer[] = { 3944static 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
3969static struct hda_verb alc880_lg_lw_init_verbs[] = { 3969static 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
4007static struct snd_kcontrol_new alc880_medion_rim_mixer[] = { 4007static 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
4017static struct hda_input_mux alc880_medion_rim_capture_source = { 4017static 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
4025static struct hda_verb alc880_medion_rim_init_verbs[] = { 4025static 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
4081static struct hda_amp_list alc880_loopbacks[] = { 4081static 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
4090static struct hda_amp_list alc880_lg_loopbacks[] = { 4090static 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
4262static struct hda_pcm_stream dualmic_pcm_analog_capture = { 4262static 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 */
4275static struct hda_pcm_stream alc880_pcm_analog_playback = { 4275static 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
4287static struct hda_pcm_stream alc880_pcm_analog_capture = { 4287static 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
4294static struct hda_pcm_stream alc880_pcm_analog_alt_playback = { 4294static 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
4301static struct hda_pcm_stream alc880_pcm_analog_alt_capture = { 4301static 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
4312static struct hda_pcm_stream alc880_pcm_digital_playback = { 4312static 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
4325static struct hda_pcm_stream alc880_pcm_digital_capture = { 4325static 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 */
4333static struct hda_pcm_stream alc_pcm_null_stream = { 4333static 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 */
4510static struct hda_codec_ops alc_patch_ops = { 4510static 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
4549static struct hda_input_mux alc880_test_capture_source = { 4549static 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
4562static struct hda_channel_mode alc880_test_modes[4] = { 4562static 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
4708static struct snd_kcontrol_new alc880_test_mixer[] = { 4708static 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
4749static struct hda_verb alc880_test_init_verbs[] = { 4749static 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
4833static struct snd_pci_quirk alc880_cfg_tbl[] = { 4833static 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 */
4913static struct alc_config_preset alc880_presets[] = { 4913static 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};
5221static struct snd_kcontrol_new alc880_control_templates[] = { 5221static 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)
5801static void set_capture_mixer(struct hda_codec *codec) 5801static 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
5896static struct snd_pci_quirk beep_white_list[] = { 5896static 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
6033static struct hda_input_mux alc260_capture_source = { 6033static 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 */
6049static struct hda_input_mux alc260_fujitsu_capture_sources[2] = { 6049static 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 */
6073static struct hda_input_mux alc260_acer_capture_sources[2] = { 6073static 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 */
6096static struct hda_input_mux alc260_favorit100_capture_sources[2] = { 6096static 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 */
6120static struct hda_channel_mode alc260_modes[1] = { 6120static 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
6134static struct snd_kcontrol_new alc260_base_output_mixer[] = { 6134static 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
6144static struct snd_kcontrol_new alc260_input_mixer[] = { 6144static 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
6190static struct snd_kcontrol_new alc260_hp_output_mixer[] = { 6190static 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
6209static struct hda_verb alc260_hp_unsol_verbs[] = { 6209static 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
6225static struct snd_kcontrol_new alc260_hp_3013_mixer[] = { 6225static 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
6256static struct hda_bind_ctls alc260_dc7600_bind_master_vol = { 6256static 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
6266static struct hda_bind_ctls alc260_dc7600_bind_switch = { 6266static 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
6275static struct snd_kcontrol_new alc260_hp_dc7600_mixer[] = { 6275static 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
6283static struct hda_verb alc260_hp_3013_unsol_verbs[] = { 6283static 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 */
6303static struct snd_kcontrol_new alc260_fujitsu_mixer[] = { 6303static 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 */
6340static struct snd_kcontrol_new alc260_acer_mixer[] = { 6340static 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 */
6361static struct snd_kcontrol_new alc260_favorit100_mixer[] = { 6361static 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 */
6374static struct snd_kcontrol_new alc260_will_mixer[] = { 6374static 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 */
6391static struct snd_kcontrol_new alc260_replacer_672v_mixer[] = { 6391static 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 */
6408static struct hda_verb alc260_init_verbs[] = { 6408static 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? */
6472static struct hda_verb alc260_hp_init_verbs[] = { 6472static 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
6522static struct hda_verb alc260_hp_3013_init_verbs[] = { 6522static 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 */
6575static struct hda_verb alc260_fujitsu_init_verbs[] = { 6575static 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 */
6657static struct hda_verb alc260_acer_init_verbs[] = { 6657static 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 */
6745static struct hda_verb alc260_favorit100_init_verbs[] = { 6745static 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
6825static struct hda_verb alc260_will_verbs[] = { 6825static 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
6835static struct hda_verb alc260_replacer_672v_verbs[] = { 6835static 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
6877static struct hda_verb alc260_hp_dc7600_verbs[] = { 6877static 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 */
6905static struct hda_input_mux alc260_test_capture_sources[2] = { 6905static 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};
6932static struct snd_kcontrol_new alc260_test_mixer[] = { 6932static 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};
6996static struct hda_verb alc260_test_init_verbs[] = { 6996static 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 */
7232static struct hda_verb alc260_volume_init_verbs[] = { 7232static 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
7322static struct hda_amp_list alc260_loopbacks[] = { 7322static 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
7349static struct snd_pci_quirk alc260_fixup_tbl[] = { 7349static 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
7373static struct snd_pci_quirk alc260_cfg_tbl[] = { 7373static 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
7397static struct alc_config_preset alc260_presets[] = { 7397static 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
7642static struct hda_channel_mode alc882_ch_modes[1] = { 7642static 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
7670static struct hda_input_mux alc882_capture_source = { 7670static 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
7682static struct hda_input_mux alc889_capture_source = { 7682static 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
7691static struct hda_input_mux mb5_capture_source = { 7691static 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
7700static struct hda_input_mux macmini3_capture_source = { 7700static 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
7708static struct hda_input_mux alc883_3stack_6ch_intel = { 7708static 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
7718static struct hda_input_mux alc883_lenovo_101e_capture_source = { 7718static 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
7726static struct hda_input_mux alc883_lenovo_nb0763_capture_source = { 7726static 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
7736static struct hda_input_mux alc883_fujitsu_pi2515_capture_source = { 7736static 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
7744static struct hda_input_mux alc883_lenovo_sky_capture_source = { 7744static 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
7753static struct hda_input_mux alc883_asus_eee1601_capture_source = { 7753static 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
7761static struct hda_input_mux alc889A_mb31_capture_source = { 7761static 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
7772static struct hda_input_mux alc889A_imac91_capture_source = { 7772static 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 */
7783static struct hda_channel_mode alc883_3ST_2ch_modes[1] = { 7783static 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 */
7790static struct hda_verb alc882_3ST_ch2_init[] = { 7790static 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 */
7801static struct hda_verb alc882_3ST_ch4_init[] = { 7801static 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 */
7813static struct hda_verb alc882_3ST_ch6_init[] = { 7813static 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
7823static struct hda_channel_mode alc882_3ST_6ch_modes[3] = { 7823static 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 */
7834static struct hda_verb alc883_3ST_ch2_clevo_init[] = { 7834static 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 */
7846static struct hda_verb alc883_3ST_ch4_clevo_init[] = { 7846static 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 */
7859static struct hda_verb alc883_3ST_ch6_clevo_init[] = { 7859static 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
7870static struct hda_channel_mode alc883_3ST_6ch_clevo_modes[3] = { 7870static 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 */
7880static struct hda_verb alc882_sixstack_ch6_init[] = { 7880static 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 */
7891static struct hda_verb alc882_sixstack_ch8_init[] = { 7891static 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
7899static struct hda_channel_mode alc882_sixstack_modes[2] = { 7899static 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
7907static struct hda_channel_mode alc885_mba21_ch_modes[1] = { 7907static 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 */
7918static struct hda_verb alc885_mbp_ch2_init[] = { 7918static 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 */
7928static struct hda_verb alc885_mbp_ch4_init[] = { 7928static 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
7937static struct hda_channel_mode alc885_mbp_4ch_modes[2] = { 7937static 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 */
7947static struct hda_verb alc885_mb5_ch2_init[] = { 7947static 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 */
7959static struct hda_verb alc885_mb5_ch6_init[] = { 7959static 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
7966static struct hda_channel_mode alc885_mb5_6ch_modes[2] = { 7966static 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 */
7976static struct hda_verb alc883_4ST_ch2_init[] = { 7976static 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 */
7989static struct hda_verb alc883_4ST_ch4_init[] = { 7989static 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 */
8003static struct hda_verb alc883_4ST_ch6_init[] = { 8003static 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 */
8018static struct hda_verb alc883_4ST_ch8_init[] = { 8018static 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
8031static struct hda_channel_mode alc883_4ST_8ch_modes[4] = { 8031static 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 */
8042static struct hda_verb alc883_3ST_ch2_intel_init[] = { 8042static 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 */
8053static struct hda_verb alc883_3ST_ch4_intel_init[] = { 8053static 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 */
8065static struct hda_verb alc883_3ST_ch6_intel_init[] = { 8065static 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
8075static struct hda_channel_mode alc883_3ST_6ch_intel_modes[3] = { 8075static 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 */
8084static struct hda_verb alc889_ch2_intel_init[] = { 8084static 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 */
8097static struct hda_verb alc889_ch6_intel_init[] = { 8097static 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 */
8110static struct hda_verb alc889_ch8_intel_init[] = { 8110static 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
8121static struct hda_channel_mode alc889_8ch_intel_modes[3] = { 8121static 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 */
8130static struct hda_verb alc883_sixstack_ch6_init[] = { 8130static 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 */
8141static struct hda_verb alc883_sixstack_ch8_init[] = { 8141static 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
8149static struct hda_channel_mode alc883_sixstack_modes[2] = { 8149static 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 */
8158static struct snd_kcontrol_new alc882_base_mixer[] = { 8158static 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
8185static struct snd_kcontrol_new alc885_mba21_mixer[] = { 8185static 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
8192static struct snd_kcontrol_new alc885_mbp3_mixer[] = { 8192static 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
8207static struct snd_kcontrol_new alc885_mb5_mixer[] = { 8207static 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
8225static struct snd_kcontrol_new alc885_macmini3_mixer[] = { 8225static 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
8240static struct snd_kcontrol_new alc885_imac91_mixer[] = { 8240static 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
8247static struct snd_kcontrol_new alc882_w2jc_mixer[] = { 8247static 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
8260static struct snd_kcontrol_new alc882_targa_mixer[] = { 8260static 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 */
8280static struct snd_kcontrol_new alc882_asus_a7j_mixer[] = { 8280static 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
8297static struct snd_kcontrol_new alc882_asus_a7m_mixer[] = { 8297static 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
8311static struct snd_kcontrol_new alc882_chmode_mixer[] = { 8311static 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
8322static struct hda_verb alc882_base_init_verbs[] = { 8322static 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
8384static struct hda_verb alc882_adc1_init_verbs[] = { 8384static 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
8396static struct hda_verb alc882_eapd_verbs[] = { 8396static 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
8403static struct hda_verb alc889_eapd_verbs[] = { 8403static 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
8409static struct hda_verb alc_hp15_unsol_verbs[] = { 8409static 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
8415static struct hda_verb alc885_init_verbs[] = { 8415static 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
8474static struct hda_verb alc885_init_input_verbs[] = { 8474static 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 */
8483static struct hda_verb alc889_init_input_verbs[] = { 8483static 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 */
8493static struct snd_kcontrol_new alc882_macpro_mixer[] = { 8493static 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
8506static struct hda_verb alc882_macpro_init_verbs[] = { 8506static 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 */
8558static struct hda_verb alc885_mb5_init_verbs[] = { 8558static 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 */
8607static struct hda_verb alc885_macmini3_init_verbs[] = { 8607static 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
8654static struct hda_verb alc885_mba21_init_verbs[] = { 8654static 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 */
8677static struct hda_verb alc885_mbp3_init_verbs[] = { 8677static 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 */
8741static struct hda_verb alc885_imac91_init_verbs[] = { 8741static 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. */
8796static struct snd_kcontrol_new alc885_imac24_mixer[] = { 8796static 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. */
8803static struct hda_verb alc885_imac24_init_verbs[] = { 8803static 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
8872static struct hda_verb alc882_targa_verbs[] = { 8872static 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
8912static struct hda_verb alc882_asus_a7j_verbs[] = { 8912static 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
8930static struct hda_verb alc882_asus_a7m_verbs[] = { 8930static 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 */
8997static struct hda_verb alc883_auto_init_verbs[] = { 8997static 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) */
9037static struct hda_verb alc889A_mb31_ch2_init[] = { 9037static 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) */
9046static struct hda_verb alc889A_mb31_ch4_init[] = { 9046static 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) */
9055static struct hda_verb alc889A_mb31_ch5_init[] = { 9055static 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) */
9064static struct hda_verb alc889A_mb31_ch6_init[] = { 9064static 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
9072static struct hda_channel_mode alc889A_mb31_6ch_modes[4] = { 9072static 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
9079static struct hda_verb alc883_medion_eapd_verbs[] = { 9079static 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
9088static struct snd_kcontrol_new alc883_mitac_mixer[] = { 9088static 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
9105static struct snd_kcontrol_new alc883_clevo_m720_mixer[] = { 9105static 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
9119static struct snd_kcontrol_new alc883_2ch_fujitsu_pi2515_mixer[] = { 9119static 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
9133static struct snd_kcontrol_new alc883_3ST_2ch_mixer[] = { 9133static 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
9150static struct snd_kcontrol_new alc883_3ST_6ch_mixer[] = { 9150static 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
9173static struct snd_kcontrol_new alc883_3ST_6ch_intel_mixer[] = { 9173static 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
9197static struct snd_kcontrol_new alc885_8ch_intel_mixer[] = { 9197static 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
9221static struct snd_kcontrol_new alc883_fivestack_mixer[] = { 9221static 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
9244static struct snd_kcontrol_new alc883_targa_mixer[] = { 9244static 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
9265static struct snd_kcontrol_new alc883_targa_2ch_mixer[] = { 9265static 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
9281static struct snd_kcontrol_new alc883_targa_8ch_mixer[] = { 9281static 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
9290static struct snd_kcontrol_new alc883_lenovo_101e_2ch_mixer[] = { 9290static 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
9302static struct snd_kcontrol_new alc883_lenovo_nb0763_mixer[] = { 9302static 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
9315static struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = { 9315static 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
9325static struct hda_verb alc883_medion_wim2160_verbs[] = { 9325static 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
9353static struct snd_kcontrol_new alc883_acer_aspire_mixer[] = { 9353static 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
9365static struct snd_kcontrol_new alc888_acer_aspire_6530_mixer[] = { 9365static 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
9378static struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = { 9378static 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
9403static struct snd_kcontrol_new alc889A_mb31_mixer[] = { 9403static 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
9429static struct snd_kcontrol_new alc883_vaiott_mixer[] = { 9429static 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
9439static struct hda_bind_ctls alc883_bind_cap_vol = { 9439static 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
9448static struct hda_bind_ctls alc883_bind_cap_switch = { 9448static 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
9457static struct snd_kcontrol_new alc883_asus_eee1601_mixer[] = { 9457static 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
9469static struct snd_kcontrol_new alc883_asus_eee1601_cap_mixer[] = { 9469static 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
9484static struct snd_kcontrol_new alc883_chmode_mixer[] = { 9484static 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
9507static struct hda_verb alc883_mitac_verbs[] = { 9507static 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
9522static struct hda_verb alc883_clevo_m540r_verbs[] = { 9522static 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
9538static struct hda_verb alc883_clevo_m720_verbs[] = { 9538static 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
9553static struct hda_verb alc883_2ch_fujitsu_pi2515_verbs[] = { 9553static 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
9567static struct hda_verb alc883_targa_verbs[] = { 9567static 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
9596static struct hda_verb alc883_lenovo_101e_verbs[] = { 9596static 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
9603static struct hda_verb alc883_lenovo_nb0763_verbs[] = { 9603static 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
9611static struct hda_verb alc888_lenovo_ms7195_verbs[] = { 9611static 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
9620static struct hda_verb alc883_haier_w66_verbs[] = { 9620static 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
9633static struct hda_verb alc888_lenovo_sky_verbs[] = { 9633static 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
9645static struct hda_verb alc888_6st_dell_verbs[] = { 9645static 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
9650static struct hda_verb alc883_vaiott_verbs[] = { 9650static 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
9673static struct hda_verb alc888_3st_hp_verbs[] = { 9673static 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 */
9684static struct hda_verb alc888_3st_hp_2ch_init[] = { 9684static 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 */
9695static struct hda_verb alc888_3st_hp_4ch_init[] = { 9695static 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 */
9707static struct hda_verb alc888_3st_hp_6ch_init[] = { 9707static 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
9717static struct hda_channel_mode alc888_3st_hp_modes[3] = { 9717static 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
9824static struct hda_verb alc883_acer_eapd_verbs[] = { 9824static 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
9880static struct hda_verb alc888_asus_m90v_verbs[] = { 9880static 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
9907static struct hda_verb alc888_asus_eee1601_verbs[] = { 9907static 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
9929static struct hda_verb alc889A_mb31_verbs[] = { 9929static 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
10038static struct snd_pci_quirk alc882_cfg_tbl[] = { 10038static 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 */
10165static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = { 10165static 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
10192static struct alc_config_preset alc882_presets[] = { 10192static 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
10969static struct snd_pci_quirk alc882_fixup_tbl[] = { 10969static 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
11383static hda_nid_t alc262_dmic_capsrc_nids[1] = { 0x22 }; 11383static hda_nid_t alc262_dmic_capsrc_nids[1] = { 0x22 };
11384 11384
11385static struct snd_kcontrol_new alc262_base_mixer[] = { 11385static 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
11446static struct snd_kcontrol_new alc262_HP_BPC_mixer[] = { 11446static 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
11470static struct snd_kcontrol_new alc262_HP_BPC_WildWest_mixer[] = { 11470static 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
11490static struct snd_kcontrol_new alc262_HP_BPC_WildWest_option_mixer[] = { 11490static 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
11508static struct snd_kcontrol_new alc262_hp_t5735_mixer[] = { 11508static 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
11519static struct hda_verb alc262_hp_t5735_verbs[] = { 11519static 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
11527static struct snd_kcontrol_new alc262_hp_rp5700_mixer[] = { 11527static 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
11537static struct hda_verb alc262_hp_rp5700_verbs[] = { 11537static 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
11551static struct hda_input_mux alc262_hp_rp5700_capture_source = { 11551static 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
11578static struct snd_kcontrol_new alc262_hippo_mixer[] = { 11578static 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
11595static struct snd_kcontrol_new alc262_hippo1_mixer[] = { 11595static 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
11633static struct snd_kcontrol_new alc262_sony_mixer[] = { 11633static 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
11643static struct snd_kcontrol_new alc262_benq_t31_mixer[] = { 11643static 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
11654static struct snd_kcontrol_new alc262_tyan_mixer[] = { 11654static 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
11670static struct hda_verb alc262_tyan_verbs[] = { 11670static 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 */
11703static struct hda_verb alc262_init_verbs[] = { 11703static 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
11779static struct hda_verb alc262_eapd_verbs[] = { 11779static 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
11785static struct hda_verb alc262_hippo1_unsol_verbs[] = { 11785static 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
11795static struct hda_verb alc262_sony_unsol_verbs[] = { 11795static 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
11805static struct snd_kcontrol_new alc262_toshiba_s06_mixer[] = { 11805static 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
11814static struct hda_verb alc262_toshiba_s06_verbs[] = { 11814static 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
11848static struct snd_kcontrol_new alc262_nec_mixer[] = { 11848static 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
11861static struct hda_verb alc262_nec_verbs[] = { 11861static 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
11884static struct hda_verb alc262_fujitsu_unsol_verbs[] = { 11884static 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
11892static struct hda_verb alc262_lenovo_3000_unsol_verbs[] = { 11892static 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
11898static struct hda_verb alc262_lenovo_3000_init_verbs[] = { 11898static 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
11905static struct hda_input_mux alc262_fujitsu_capture_source = { 11905static 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
11914static struct hda_input_mux alc262_HP_capture_source = { 11914static 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
11925static struct hda_input_mux alc262_HP_D7000_capture_source = { 11925static 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 */
11947static struct hda_bind_ctls alc262_fujitsu_bind_master_vol = { 11947static 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
11956static struct snd_kcontrol_new alc262_fujitsu_mixer[] = { 11956static 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
11993static struct snd_kcontrol_new alc262_lenovo_3000_mixer[] = { 11993static 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
12014static struct snd_kcontrol_new alc262_toshiba_rx1_mixer[] = { 12014static 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 */
12027static struct hda_verb alc262_EAPD_verbs[] = { 12027static 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
12033static struct hda_verb alc262_benq_t31_EAPD_verbs[] = { 12033static 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 */
12043static struct snd_kcontrol_new alc262_ultra_mixer[] = { 12043static 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
12053static struct hda_verb alc262_ultra_verbs[] = { 12053static 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
12116static struct hda_input_mux alc262_ultra_capture_source = { 12116static 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
12142static struct snd_kcontrol_new alc262_ultra_capture_mixer[] = { 12142static 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 */
12273static struct hda_verb alc262_volume_init_verbs[] = { 12273static 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
12334static struct hda_verb alc262_HP_BPC_init_verbs[] = { 12334static 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
12438static struct hda_verb alc262_HP_BPC_WildWest_init_verbs[] = { 12438static 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
12534static struct hda_verb alc262_toshiba_rx1_unsol_verbs[] = { 12534static 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
12570static struct snd_pci_quirk alc262_fixup_tbl[] = { 12570static 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
12678static struct snd_pci_quirk alc262_cfg_tbl[] = { 12678static 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
12730static struct alc_config_preset alc262_presets[] = { 12730static 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
13118static hda_nid_t alc268_capsrc_nids[2] = { 0x23, 0x24 }; 13118static hda_nid_t alc268_capsrc_nids[2] = { 0x23, 0x24 };
13119 13119
13120static struct snd_kcontrol_new alc268_base_mixer[] = { 13120static 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
13132static struct snd_kcontrol_new alc268_toshiba_mixer[] = { 13132static 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 */
13144static struct hda_bind_ctls alc268_bind_beep_sw = { 13144static 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
13153static struct snd_kcontrol_new alc268_beep_mixer[] = { 13153static 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
13159static struct hda_verb alc268_eapd_verbs[] = { 13159static 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 */
13166static struct hda_verb alc268_toshiba_verbs[] = { 13166static 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 */
13173static struct hda_bind_ctls alc268_acer_bind_master_vol = { 13173static 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
13195static struct snd_kcontrol_new alc268_acer_aspire_one_mixer[] = { 13195static 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
13210static struct snd_kcontrol_new alc268_acer_mixer[] = { 13210static 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
13227static struct snd_kcontrol_new alc268_acer_dmic_mixer[] = { 13227static 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
13243static struct hda_verb alc268_acer_aspire_one_verbs[] = { 13243static 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
13253static struct hda_verb alc268_acer_verbs[] = { 13253static 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
13282static struct snd_kcontrol_new alc268_dell_mixer[] = { 13282static 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
13293static struct hda_verb alc268_dell_verbs[] = { 13293static 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
13317static struct snd_kcontrol_new alc267_quanta_il1_mixer[] = { 13317static 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
13329static struct hda_verb alc267_quanta_il1_verbs[] = { 13329static 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 */
13352static struct hda_verb alc268_base_init_verbs[] = { 13352static 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 */
13400static struct hda_verb alc268_volume_init_verbs[] = { 13400static 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
13426static struct snd_kcontrol_new alc268_capture_nosrc_mixer[] = { 13426static 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
13432static struct snd_kcontrol_new alc268_capture_alt_mixer[] = { 13432static 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
13439static struct snd_kcontrol_new alc268_capture_mixer[] = { 13439static 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
13448static struct hda_input_mux alc268_capture_source = { 13448static 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
13458static struct hda_input_mux alc268_acer_capture_source = { 13458static 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
13467static struct hda_input_mux alc268_acer_dmic_capture_source = { 13467static 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
13477static struct snd_kcontrol_new alc268_test_mixer[] = { 13477static 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
13809static struct snd_pci_quirk alc268_cfg_tbl[] = { 13809static 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 */
13834static struct snd_pci_quirk alc268_ssid_cfg_tbl[] = { 13834static 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
13842static struct alc_config_preset alc268_presets[] = { 13842static 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
14141static struct snd_kcontrol_new alc269_base_mixer[] = { 14141static 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
14157static struct snd_kcontrol_new alc269_quanta_fl1_mixer[] = { 14157static 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
14178static struct snd_kcontrol_new alc269_lifebook_mixer[] = { 14178static 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
14202static struct snd_kcontrol_new alc269_laptop_mixer[] = { 14202static 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
14210static struct snd_kcontrol_new alc269vb_laptop_mixer[] = { 14210static 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
14218static struct snd_kcontrol_new alc269_asus_mixer[] = { 14218static 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 */
14225static struct snd_kcontrol_new alc269_laptop_analog_capture_mixer[] = { 14225static 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
14233static struct snd_kcontrol_new alc269_laptop_digital_capture_mixer[] = { 14233static 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
14240static struct snd_kcontrol_new alc269vb_laptop_analog_capture_mixer[] = { 14240static 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
14248static struct snd_kcontrol_new alc269vb_laptop_digital_capture_mixer[] = { 14248static 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
14258static struct hda_verb alc269_quanta_fl1_verbs[] = { 14258static 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
14268static struct hda_verb alc269_lifebook_verbs[] = { 14268static 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
14381static struct hda_verb alc269_laptop_dmic_init_verbs[] = { 14381static 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
14392static struct hda_verb alc269_laptop_amic_init_verbs[] = { 14392static 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
14402static struct hda_verb alc269vb_laptop_dmic_init_verbs[] = { 14402static 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
14413static struct hda_verb alc269vb_laptop_amic_init_verbs[] = { 14413static 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
14424static struct hda_verb alc271_acer_dmic_verbs[] = { 14424static 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 */
14501static struct hda_verb alc269_init_verbs[] = { 14501static 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
14544static struct hda_verb alc269vb_init_verbs[] = { 14544static 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
14602static struct hda_pcm_stream alc269_44k_pcm_analog_playback = { 14602static 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
14615static struct hda_pcm_stream alc269_44k_pcm_analog_capture = { 14615static 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,
14825static void alc271_fixup_dmic(struct hda_codec *codec, 14825static 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
14911static struct snd_pci_quirk alc269_fixup_tbl[] = { 14911static 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
14942static struct snd_pci_quirk alc269_cfg_tbl[] = { 14942static 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
15000static struct alc_config_preset alc269_presets[] = { 15000static 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 */
15304static struct hda_verb alc861_threestack_ch2_init[] = { 15304static 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 */
15323static struct hda_verb alc861_threestack_ch6_init[] = { 15323static 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
15340static struct hda_channel_mode alc861_threestack_modes[2] = { 15340static 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 */
15345static struct hda_verb alc861_uniwill_m31_ch2_init[] = { 15345static 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 */
15351static struct hda_verb alc861_uniwill_m31_ch4_init[] = { 15351static 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
15357static struct hda_channel_mode alc861_uniwill_m31_modes[2] = { 15357static 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 */
15363static struct hda_verb alc861_asus_ch2_init[] = { 15363static 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 */
15379static struct hda_verb alc861_asus_ch6_init[] = { 15379static 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
15397static struct hda_channel_mode alc861_asus_modes[2] = { 15397static 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
15404static struct snd_kcontrol_new alc861_base_mixer[] = { 15404static 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
15427static struct snd_kcontrol_new alc861_3ST_mixer[] = { 15427static 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
15458static struct snd_kcontrol_new alc861_toshiba_mixer[] = { 15458static 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
15467static struct snd_kcontrol_new alc861_uniwill_m31_mixer[] = { 15467static 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
15498static struct snd_kcontrol_new alc861_asus_mixer[] = { 15498static 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 */
15530static struct snd_kcontrol_new alc861_asus_laptop_mixer[] = { 15530static 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 */
15539static struct hda_verb alc861_base_init_verbs[] = { 15539static 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
15605static struct hda_verb alc861_threestack_init_verbs[] = { 15605static 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
15666static struct hda_verb alc861_uniwill_m31_init_verbs[] = { 15666static 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
15728static struct hda_verb alc861_asus_init_verbs[] = { 15728static 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 */
15794static struct hda_verb alc861_asus_laptop_init_verbs[] = { 15794static 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 */
15803static struct hda_verb alc861_auto_init_verbs[] = { 15803static 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
15852static struct hda_verb alc861_toshiba_init_verbs[] = { 15852static 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
15885static struct hda_channel_mode alc861_8ch_modes[1] = { 15885static 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
15904static struct hda_input_mux alc861_capture_source = { 15904static 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
16177static struct hda_amp_list alc861_loopbacks[] = { 16177static 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
16202static struct snd_pci_quirk alc861_cfg_tbl[] = { 16202static 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
16226static struct alc_config_preset alc861_presets[] = { 16226static 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
16349static struct snd_pci_quirk alc861_fixup_tbl[] = { 16349static 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 */
16468static struct hda_input_mux alc861vd_capture_source = { 16468static 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
16478static struct hda_input_mux alc861vd_dallas_capture_source = { 16478static 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
16486static struct hda_input_mux alc861vd_hp_capture_source = { 16486static 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 */
16497static struct hda_channel_mode alc861vd_3stack_2ch_modes[1] = { 16497static 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 */
16504static struct hda_verb alc861vd_6stack_ch6_init[] = { 16504static 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 */
16515static struct hda_verb alc861vd_6stack_ch8_init[] = { 16515static 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
16523static struct hda_channel_mode alc861vd_6stack_modes[2] = { 16523static 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
16528static struct snd_kcontrol_new alc861vd_chmode_mixer[] = { 16528static 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 */
16542static struct snd_kcontrol_new alc861vd_6st_mixer[] = { 16542static 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
16578static struct snd_kcontrol_new alc861vd_3st_mixer[] = { 16578static 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
16601static struct snd_kcontrol_new alc861vd_lenovo_mixer[] = { 16601static 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 */
16625static struct snd_kcontrol_new alc861vd_dallas_mixer[] = { 16625static 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 */
16642static struct snd_kcontrol_new alc861vd_hp_mixer[] = { 16642static 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 */
16658static struct hda_verb alc861vd_volume_init_verbs[] = { 16658static 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 */
16708static struct hda_verb alc861vd_3stack_init_verbs[] = { 16708static 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 */
16739static struct hda_verb alc861vd_6stack_init_verbs[] = { 16739static 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
16780static struct hda_verb alc861vd_eapd_verbs[] = { 16780static 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
16785static struct hda_verb alc660vd_eapd_verbs[] = { 16785static 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
16791static struct hda_verb alc861vd_lenovo_unsol_verbs[] = { 16791static 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
16828static struct hda_verb alc861vd_dallas_verbs[] = { 16828static 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
16910static struct snd_pci_quirk alc861vd_cfg_tbl[] = { 16910static 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
16929static struct alc_config_preset alc861vd_presets[] = { 16929static 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
17324static struct snd_pci_quirk alc861vd_fixup_tbl[] = { 17324static 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 */
17455static struct hda_input_mux alc662_capture_source = { 17455static 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
17465static struct hda_input_mux alc662_lenovo_101e_capture_source = { 17465static 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
17473static struct hda_input_mux alc663_capture_source = { 17473static 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 */
17483static struct hda_input_mux alc272_nc10_capture_source = { 17483static 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 */
17509static struct hda_channel_mode alc662_3ST_2ch_modes[1] = { 17509static 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 */
17516static struct hda_verb alc662_3ST_ch2_init[] = { 17516static 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 */
17527static struct hda_verb alc662_3ST_ch6_init[] = { 17527static 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
17537static struct hda_channel_mode alc662_3ST_6ch_modes[2] = { 17537static 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 */
17545static struct hda_verb alc662_sixstack_ch6_init[] = { 17545static 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 */
17555static struct hda_verb alc662_sixstack_ch8_init[] = { 17555static 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
17562static struct hda_channel_mode alc662_5stack_modes[2] = { 17562static 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
17571static struct snd_kcontrol_new alc662_base_mixer[] = { 17571static 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
17595static struct snd_kcontrol_new alc662_3ST_2ch_mixer[] = { 17595static 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
17610static struct snd_kcontrol_new alc662_3ST_6ch_mixer[] = { 17610static 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
17631static struct snd_kcontrol_new alc662_lenovo_101e_mixer[] = { 17631static 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
17644static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = { 17644static 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
17658static struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = { 17658static 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
17672static struct hda_bind_ctls alc663_asus_bind_master_vol = { 17672static 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
17681static struct hda_bind_ctls alc663_asus_one_bind_switch = { 17681static 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
17690static struct snd_kcontrol_new alc663_m51va_mixer[] = { 17690static 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
17698static struct hda_bind_ctls alc663_asus_tree_bind_switch = { 17698static 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
17708static struct snd_kcontrol_new alc663_two_hp_m1_mixer[] = { 17708static 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
17719static struct hda_bind_ctls alc663_asus_four_bind_switch = { 17719static 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
17729static struct snd_kcontrol_new alc663_two_hp_m2_mixer[] = { 17729static 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
17739static struct snd_kcontrol_new alc662_1bjd_mixer[] = { 17739static 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
17750static struct hda_bind_ctls alc663_asus_two_bind_master_vol = { 17750static 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
17759static struct hda_bind_ctls alc663_asus_two_bind_switch = { 17759static 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
17768static struct snd_kcontrol_new alc663_asus_21jd_clfe_mixer[] = { 17768static 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
17779static struct snd_kcontrol_new alc663_asus_15jd_clfe_mixer[] = { 17779static 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
17789static struct snd_kcontrol_new alc663_g71v_mixer[] = { 17789static 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
17803static struct snd_kcontrol_new alc663_g50v_mixer[] = { 17803static 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
17817static struct hda_bind_ctls alc663_asus_mode7_8_all_bind_switch = { 17817static 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
17829static struct hda_bind_ctls alc663_asus_mode7_8_sp_bind_switch = { 17829static 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
17838static struct snd_kcontrol_new alc663_mode7_mixer[] = { 17838static 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
17851static struct snd_kcontrol_new alc663_mode8_mixer[] = { 17851static 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
17863static struct snd_kcontrol_new alc662_chmode_mixer[] = { 17863static 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
17874static struct hda_verb alc662_init_verbs[] = { 17874static 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
17923static struct hda_verb alc662_eapd_init_verbs[] = { 17923static 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
17930static struct hda_verb alc662_sue_init_verbs[] = { 17930static 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
17936static struct hda_verb alc662_eeepc_sue_init_verbs[] = { 17936static 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*/
17943static struct hda_verb alc662_eeepc_ep20_sue_init_verbs[] = { 17943static 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
17949static struct hda_verb alc663_m51va_init_verbs[] = { 17949static 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
17962static struct hda_verb alc663_21jd_amic_init_verbs[] = { 17962static 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
17973static struct hda_verb alc662_1bjd_amic_init_verbs[] = { 17973static 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
17985static struct hda_verb alc663_15jd_amic_init_verbs[] = { 17985static 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
17996static struct hda_verb alc663_two_hp_amic_m1_init_verbs[] = { 17996static 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
18012static struct hda_verb alc663_two_hp_amic_m2_init_verbs[] = { 18012static 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
18028static struct hda_verb alc663_g71v_init_verbs[] = { 18028static 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
18043static struct hda_verb alc663_g50v_init_verbs[] = { 18043static 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
18053static struct hda_verb alc662_ecs_init_verbs[] = { 18053static 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
18061static struct hda_verb alc272_dell_zm1_init_verbs[] = { 18061static 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
18076static struct hda_verb alc272_dell_init_verbs[] = { 18076static 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
18091static struct hda_verb alc663_mode7_init_verbs[] = { 18091static 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
18110static struct hda_verb alc663_mode8_init_verbs[] = { 18110static 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
18130static struct snd_kcontrol_new alc662_auto_capture_mixer[] = { 18130static 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
18136static struct snd_kcontrol_new alc272_auto_capture_mixer[] = { 18136static 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
18345static struct snd_kcontrol_new alc662_ecs_mixer[] = { 18345static 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
18359static struct snd_kcontrol_new alc272_nc10_mixer[] = { 18359static 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
18417static struct snd_pci_quirk alc662_cfg_tbl[] = { 18417static 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
18499static struct alc_config_preset alc662_presets[] = { 18499static 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
19250static struct snd_kcontrol_new alc_auto_channel_mode_enum = { 19250static 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
19420static struct snd_pci_quirk alc662_fixup_tbl[] = { 19420static 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
19647static struct hda_pcm_stream alc680_pcm_analog_auto_capture = { 19647static 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
19658static struct snd_kcontrol_new alc680_base_mixer[] = { 19658static 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
19670static struct hda_bind_ctls alc680_bind_cap_vol = { 19670static 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
19680static struct hda_bind_ctls alc680_bind_cap_switch = { 19680static 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
19690static struct snd_kcontrol_new alc680_master_capture_mixer[] = { 19690static 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 */
19699static struct hda_verb alc680_init_verbs[] = { 19699static 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
19933static struct snd_pci_quirk alc680_cfg_tbl[] = { 19933static 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
19938static struct alc_config_preset alc680_presets[] = { 19938static 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 */
20019static struct hda_codec_preset snd_hda_preset_realtek[] = { 20019static 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 },