Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34cbe3a6 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Constify fixup and other array data in patch_conexant.c



Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent c42d4782
Loading
Loading
Loading
Loading
+95 −95
Original line number Original line Diff line number Diff line
@@ -57,7 +57,7 @@ struct pin_dac_pair {


struct conexant_spec {
struct conexant_spec {


	struct snd_kcontrol_new *mixers[5];
	const struct snd_kcontrol_new *mixers[5];
	int num_mixers;
	int num_mixers;
	hda_nid_t vmaster_nid;
	hda_nid_t vmaster_nid;


@@ -81,7 +81,7 @@ struct conexant_spec {


	/* capture */
	/* capture */
	unsigned int num_adc_nids;
	unsigned int num_adc_nids;
	hda_nid_t *adc_nids;
	const hda_nid_t *adc_nids;
	hda_nid_t dig_in_nid;		/* digital-in NID; optional */
	hda_nid_t dig_in_nid;		/* digital-in NID; optional */


	unsigned int cur_adc_idx;
	unsigned int cur_adc_idx;
@@ -91,7 +91,7 @@ struct conexant_spec {


	/* capture source */
	/* capture source */
	const struct hda_input_mux *input_mux;
	const struct hda_input_mux *input_mux;
	hda_nid_t *capsrc_nids;
	const hda_nid_t *capsrc_nids;
	unsigned int cur_mux[3];
	unsigned int cur_mux[3];


	/* channel model */
	/* channel model */
@@ -227,7 +227,7 @@ static int conexant_capture_pcm_cleanup(struct hda_pcm_stream *hinfo,






static struct hda_pcm_stream conexant_pcm_analog_playback = {
static const struct hda_pcm_stream conexant_pcm_analog_playback = {
	.substreams = 1,
	.substreams = 1,
	.channels_min = 2,
	.channels_min = 2,
	.channels_max = 2,
	.channels_max = 2,
@@ -239,7 +239,7 @@ static struct hda_pcm_stream conexant_pcm_analog_playback = {
	},
	},
};
};


static struct hda_pcm_stream conexant_pcm_analog_capture = {
static const struct hda_pcm_stream conexant_pcm_analog_capture = {
	.substreams = 1,
	.substreams = 1,
	.channels_min = 2,
	.channels_min = 2,
	.channels_max = 2,
	.channels_max = 2,
@@ -251,7 +251,7 @@ static struct hda_pcm_stream conexant_pcm_analog_capture = {
};
};




static struct hda_pcm_stream conexant_pcm_digital_playback = {
static const struct hda_pcm_stream conexant_pcm_digital_playback = {
	.substreams = 1,
	.substreams = 1,
	.channels_min = 2,
	.channels_min = 2,
	.channels_max = 2,
	.channels_max = 2,
@@ -263,7 +263,7 @@ static struct hda_pcm_stream conexant_pcm_digital_playback = {
	},
	},
};
};


static struct hda_pcm_stream conexant_pcm_digital_capture = {
static const struct hda_pcm_stream conexant_pcm_digital_capture = {
	.substreams = 1,
	.substreams = 1,
	.channels_min = 2,
	.channels_min = 2,
	.channels_max = 2,
	.channels_max = 2,
@@ -294,7 +294,7 @@ static int cx5051_capture_pcm_cleanup(struct hda_pcm_stream *hinfo,
	return 0;
	return 0;
}
}


static struct hda_pcm_stream cx5051_pcm_analog_capture = {
static const struct hda_pcm_stream cx5051_pcm_analog_capture = {
	.substreams = 1,
	.substreams = 1,
	.channels_min = 2,
	.channels_min = 2,
	.channels_max = 2,
	.channels_max = 2,
@@ -433,7 +433,7 @@ static void conexant_free(struct hda_codec *codec)
	kfree(codec->spec);
	kfree(codec->spec);
}
}


static struct snd_kcontrol_new cxt_capture_mixers[] = {
static const struct snd_kcontrol_new cxt_capture_mixers[] = {
	{
	{
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.name = "Capture Source",
		.name = "Capture Source",
@@ -446,7 +446,7 @@ static struct snd_kcontrol_new cxt_capture_mixers[] = {


#ifdef CONFIG_SND_HDA_INPUT_BEEP
#ifdef CONFIG_SND_HDA_INPUT_BEEP
/* additional beep mixers; the actual parameters are overwritten at build */
/* additional beep mixers; the actual parameters are overwritten at build */
static struct snd_kcontrol_new cxt_beep_mixer[] = {
static const struct snd_kcontrol_new cxt_beep_mixer[] = {
	HDA_CODEC_VOLUME_MONO("Beep Playback Volume", 0, 1, 0, HDA_OUTPUT),
	HDA_CODEC_VOLUME_MONO("Beep Playback Volume", 0, 1, 0, HDA_OUTPUT),
	HDA_CODEC_MUTE_BEEP_MONO("Beep Playback Switch", 0, 1, 0, HDA_OUTPUT),
	HDA_CODEC_MUTE_BEEP_MONO("Beep Playback Switch", 0, 1, 0, HDA_OUTPUT),
	{ } /* end */
	{ } /* end */
@@ -521,7 +521,7 @@ static int conexant_build_controls(struct hda_codec *codec)
#ifdef CONFIG_SND_HDA_INPUT_BEEP
#ifdef CONFIG_SND_HDA_INPUT_BEEP
	/* create beep controls if needed */
	/* create beep controls if needed */
	if (spec->beep_amp) {
	if (spec->beep_amp) {
		struct snd_kcontrol_new *knew;
		const struct snd_kcontrol_new *knew;
		for (knew = cxt_beep_mixer; knew->name; knew++) {
		for (knew = cxt_beep_mixer; knew->name; knew++) {
			struct snd_kcontrol *kctl;
			struct snd_kcontrol *kctl;
			kctl = snd_ctl_new1(knew, codec);
			kctl = snd_ctl_new1(knew, codec);
@@ -546,7 +546,7 @@ static int conexant_suspend(struct hda_codec *codec, pm_message_t state)
}
}
#endif
#endif


static struct hda_codec_ops conexant_patch_ops = {
static const struct hda_codec_ops conexant_patch_ops = {
	.build_controls = conexant_build_controls,
	.build_controls = conexant_build_controls,
	.build_pcms = conexant_build_pcms,
	.build_pcms = conexant_build_pcms,
	.init = conexant_init,
	.init = conexant_init,
@@ -662,16 +662,16 @@ static int conexant_ch_mode_put(struct snd_kcontrol *kcontrol,


/* Conexant 5045 specific */
/* Conexant 5045 specific */


static hda_nid_t cxt5045_dac_nids[1] = { 0x19 };
static const hda_nid_t cxt5045_dac_nids[1] = { 0x19 };
static hda_nid_t cxt5045_adc_nids[1] = { 0x1a };
static const hda_nid_t cxt5045_adc_nids[1] = { 0x1a };
static hda_nid_t cxt5045_capsrc_nids[1] = { 0x1a };
static const hda_nid_t cxt5045_capsrc_nids[1] = { 0x1a };
#define CXT5045_SPDIF_OUT	0x18
#define CXT5045_SPDIF_OUT	0x18


static struct hda_channel_mode cxt5045_modes[1] = {
static const struct hda_channel_mode cxt5045_modes[1] = {
	{ 2, NULL },
	{ 2, NULL },
};
};


static struct hda_input_mux cxt5045_capture_source = {
static const struct hda_input_mux cxt5045_capture_source = {
	.num_items = 2,
	.num_items = 2,
	.items = {
	.items = {
		{ "IntMic", 0x1 },
		{ "IntMic", 0x1 },
@@ -679,7 +679,7 @@ static struct hda_input_mux cxt5045_capture_source = {
	}
	}
};
};


static struct hda_input_mux cxt5045_capture_source_benq = {
static const struct hda_input_mux cxt5045_capture_source_benq = {
	.num_items = 5,
	.num_items = 5,
	.items = {
	.items = {
		{ "IntMic", 0x1 },
		{ "IntMic", 0x1 },
@@ -690,7 +690,7 @@ static struct hda_input_mux cxt5045_capture_source_benq = {
	}
	}
};
};


static struct hda_input_mux cxt5045_capture_source_hp530 = {
static const struct hda_input_mux cxt5045_capture_source_hp530 = {
	.num_items = 2,
	.num_items = 2,
	.items = {
	.items = {
		{ "ExtMic", 0x1 },
		{ "ExtMic", 0x1 },
@@ -723,7 +723,7 @@ static int cxt5045_hp_master_sw_put(struct snd_kcontrol *kcontrol,
}
}


/* bind volumes of both NID 0x10 and 0x11 */
/* bind volumes of both NID 0x10 and 0x11 */
static struct hda_bind_ctls cxt5045_hp_bind_master_vol = {
static const struct hda_bind_ctls cxt5045_hp_bind_master_vol = {
	.ops = &snd_hda_bind_vol,
	.ops = &snd_hda_bind_vol,
	.values = {
	.values = {
		HDA_COMPOSE_AMP_VAL(0x10, 3, 0, HDA_OUTPUT),
		HDA_COMPOSE_AMP_VAL(0x10, 3, 0, HDA_OUTPUT),
@@ -735,12 +735,12 @@ static struct hda_bind_ctls cxt5045_hp_bind_master_vol = {
/* toggle input of built-in and mic jack appropriately */
/* toggle input of built-in and mic jack appropriately */
static void cxt5045_hp_automic(struct hda_codec *codec)
static void cxt5045_hp_automic(struct hda_codec *codec)
{
{
	static struct hda_verb mic_jack_on[] = {
	static const struct hda_verb mic_jack_on[] = {
		{0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
		{0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
		{0x12, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
		{0x12, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
		{}
		{}
	};
	};
	static struct hda_verb mic_jack_off[] = {
	static const struct hda_verb mic_jack_off[] = {
		{0x12, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
		{0x12, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
		{0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
		{0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
		{}
		{}
@@ -784,7 +784,7 @@ static void cxt5045_hp_unsol_event(struct hda_codec *codec,
	}
	}
}
}


static struct snd_kcontrol_new cxt5045_mixers[] = {
static const struct snd_kcontrol_new cxt5045_mixers[] = {
	HDA_CODEC_VOLUME("Internal Mic Capture Volume", 0x1a, 0x01, HDA_INPUT),
	HDA_CODEC_VOLUME("Internal Mic Capture Volume", 0x1a, 0x01, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Capture Switch", 0x1a, 0x01, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Capture Switch", 0x1a, 0x01, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Capture Volume", 0x1a, 0x02, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Capture Volume", 0x1a, 0x02, HDA_INPUT),
@@ -808,7 +808,7 @@ static struct snd_kcontrol_new cxt5045_mixers[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5045_benq_mixers[] = {
static const struct snd_kcontrol_new cxt5045_benq_mixers[] = {
	HDA_CODEC_VOLUME("CD Capture Volume", 0x1a, 0x04, HDA_INPUT),
	HDA_CODEC_VOLUME("CD Capture Volume", 0x1a, 0x04, HDA_INPUT),
	HDA_CODEC_MUTE("CD Capture Switch", 0x1a, 0x04, HDA_INPUT),
	HDA_CODEC_MUTE("CD Capture Switch", 0x1a, 0x04, HDA_INPUT),
	HDA_CODEC_VOLUME("CD Playback Volume", 0x17, 0x4, HDA_INPUT),
	HDA_CODEC_VOLUME("CD Playback Volume", 0x17, 0x4, HDA_INPUT),
@@ -825,7 +825,7 @@ static struct snd_kcontrol_new cxt5045_benq_mixers[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5045_mixers_hp530[] = {
static const struct snd_kcontrol_new cxt5045_mixers_hp530[] = {
	HDA_CODEC_VOLUME("Internal Mic Capture Volume", 0x1a, 0x02, HDA_INPUT),
	HDA_CODEC_VOLUME("Internal Mic Capture Volume", 0x1a, 0x02, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Capture Switch", 0x1a, 0x02, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Capture Switch", 0x1a, 0x02, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Capture Volume", 0x1a, 0x01, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Capture Volume", 0x1a, 0x01, HDA_INPUT),
@@ -849,7 +849,7 @@ static struct snd_kcontrol_new cxt5045_mixers_hp530[] = {
	{}
	{}
};
};


static struct hda_verb cxt5045_init_verbs[] = {
static const struct hda_verb cxt5045_init_verbs[] = {
	/* Line in, Mic */
	/* Line in, Mic */
	{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
	{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
@@ -875,7 +875,7 @@ static struct hda_verb cxt5045_init_verbs[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5045_benq_init_verbs[] = {
static const struct hda_verb cxt5045_benq_init_verbs[] = {
	/* Internal Mic, Mic */
	/* Internal Mic, Mic */
	{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
	{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_80 },
@@ -901,13 +901,13 @@ static struct hda_verb cxt5045_benq_init_verbs[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5045_hp_sense_init_verbs[] = {
static const struct hda_verb cxt5045_hp_sense_init_verbs[] = {
	/* pin sensing on HP jack */
	/* pin sensing on HP jack */
	{0x11, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_HP_EVENT},
	{0x11, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_HP_EVENT},
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5045_mic_sense_init_verbs[] = {
static const struct hda_verb cxt5045_mic_sense_init_verbs[] = {
	/* pin sensing on HP jack */
	/* pin sensing on HP jack */
	{0x12, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_MIC_EVENT},
	{0x12, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_MIC_EVENT},
	{ } /* end */
	{ } /* end */
@@ -917,7 +917,7 @@ static struct hda_verb cxt5045_mic_sense_init_verbs[] = {
/* Test configuration for debugging, modelled after the ALC260 test
/* Test configuration for debugging, modelled after the ALC260 test
 * configuration.
 * configuration.
 */
 */
static struct hda_input_mux cxt5045_test_capture_source = {
static const struct hda_input_mux cxt5045_test_capture_source = {
	.num_items = 5,
	.num_items = 5,
	.items = {
	.items = {
		{ "MIXER", 0x0 },
		{ "MIXER", 0x0 },
@@ -928,7 +928,7 @@ static struct hda_input_mux cxt5045_test_capture_source = {
        },
        },
};
};


static struct snd_kcontrol_new cxt5045_test_mixer[] = {
static const struct snd_kcontrol_new cxt5045_test_mixer[] = {


	/* Output controls */
	/* Output controls */
	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x10, 0x0, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x10, 0x0, HDA_OUTPUT),
@@ -978,7 +978,7 @@ static struct snd_kcontrol_new cxt5045_test_mixer[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5045_test_init_verbs[] = {
static const struct hda_verb cxt5045_test_init_verbs[] = {
	/* Set connections */
	/* Set connections */
	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x0 },
	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x0 },
	{ 0x11, AC_VERB_SET_CONNECT_SEL, 0x0 },
	{ 0x11, AC_VERB_SET_CONNECT_SEL, 0x0 },
@@ -1061,7 +1061,7 @@ static const char * const cxt5045_models[CXT5045_MODELS] = {
#endif
#endif
};
};


static struct snd_pci_quirk cxt5045_cfg_tbl[] = {
static const struct snd_pci_quirk cxt5045_cfg_tbl[] = {
	SND_PCI_QUIRK(0x103c, 0x30d5, "HP 530", CXT5045_LAPTOP_HP530),
	SND_PCI_QUIRK(0x103c, 0x30d5, "HP 530", CXT5045_LAPTOP_HP530),
	SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x3000, "HP DV Series",
	SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x3000, "HP DV Series",
			   CXT5045_LAPTOP_HPSENSE),
			   CXT5045_LAPTOP_HPSENSE),
@@ -1196,15 +1196,15 @@ static int patch_cxt5045(struct hda_codec *codec)
/* Conexant 5047 specific */
/* Conexant 5047 specific */
#define CXT5047_SPDIF_OUT	0x11
#define CXT5047_SPDIF_OUT	0x11


static hda_nid_t cxt5047_dac_nids[1] = { 0x10 }; /* 0x1c */
static const hda_nid_t cxt5047_dac_nids[1] = { 0x10 }; /* 0x1c */
static hda_nid_t cxt5047_adc_nids[1] = { 0x12 };
static const hda_nid_t cxt5047_adc_nids[1] = { 0x12 };
static hda_nid_t cxt5047_capsrc_nids[1] = { 0x1a };
static const hda_nid_t cxt5047_capsrc_nids[1] = { 0x1a };


static struct hda_channel_mode cxt5047_modes[1] = {
static const struct hda_channel_mode cxt5047_modes[1] = {
	{ 2, NULL },
	{ 2, NULL },
};
};


static struct hda_input_mux cxt5047_toshiba_capture_source = {
static const struct hda_input_mux cxt5047_toshiba_capture_source = {
	.num_items = 2,
	.num_items = 2,
	.items = {
	.items = {
		{ "ExtMic", 0x2 },
		{ "ExtMic", 0x2 },
@@ -1256,12 +1256,12 @@ static void cxt5047_hp_automute(struct hda_codec *codec)
/* toggle input of built-in and mic jack appropriately */
/* toggle input of built-in and mic jack appropriately */
static void cxt5047_hp_automic(struct hda_codec *codec)
static void cxt5047_hp_automic(struct hda_codec *codec)
{
{
	static struct hda_verb mic_jack_on[] = {
	static const struct hda_verb mic_jack_on[] = {
		{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
		{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
		{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
		{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
		{}
		{}
	};
	};
	static struct hda_verb mic_jack_off[] = {
	static const struct hda_verb mic_jack_off[] = {
		{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
		{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
		{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
		{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
		{}
		{}
@@ -1289,7 +1289,7 @@ static void cxt5047_hp_unsol_event(struct hda_codec *codec,
	}
	}
}
}


static struct snd_kcontrol_new cxt5047_base_mixers[] = {
static const struct snd_kcontrol_new cxt5047_base_mixers[] = {
	HDA_CODEC_VOLUME("Mic Playback Volume", 0x19, 0x02, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Playback Volume", 0x19, 0x02, HDA_INPUT),
	HDA_CODEC_MUTE("Mic Playback Switch", 0x19, 0x02, HDA_INPUT),
	HDA_CODEC_MUTE("Mic Playback Switch", 0x19, 0x02, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Boost Volume", 0x1a, 0x0, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Mic Boost Volume", 0x1a, 0x0, HDA_OUTPUT),
@@ -1309,19 +1309,19 @@ static struct snd_kcontrol_new cxt5047_base_mixers[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5047_hp_spk_mixers[] = {
static const struct snd_kcontrol_new cxt5047_hp_spk_mixers[] = {
	/* See the note in cxt5047_hp_master_sw_put */
	/* See the note in cxt5047_hp_master_sw_put */
	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x1d, 0x01, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Speaker Playback Volume", 0x1d, 0x01, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Headphone Playback Volume", 0x13, 0x00, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Headphone Playback Volume", 0x13, 0x00, HDA_OUTPUT),
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5047_hp_only_mixers[] = {
static const struct snd_kcontrol_new cxt5047_hp_only_mixers[] = {
	HDA_CODEC_VOLUME("Master Playback Volume", 0x13, 0x00, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Master Playback Volume", 0x13, 0x00, HDA_OUTPUT),
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5047_init_verbs[] = {
static const struct hda_verb cxt5047_init_verbs[] = {
	/* Line in, Mic, Built-in Mic */
	/* Line in, Mic, Built-in Mic */
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_50 },
	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN|AC_PINCTL_VREF_50 },
@@ -1348,7 +1348,7 @@ static struct hda_verb cxt5047_init_verbs[] = {
};
};


/* configuration for Toshiba Laptops */
/* configuration for Toshiba Laptops */
static struct hda_verb cxt5047_toshiba_init_verbs[] = {
static const struct hda_verb cxt5047_toshiba_init_verbs[] = {
	{0x13, AC_VERB_SET_EAPD_BTLENABLE, 0x0}, /* default off */
	{0x13, AC_VERB_SET_EAPD_BTLENABLE, 0x0}, /* default off */
	{}
	{}
};
};
@@ -1357,7 +1357,7 @@ static struct hda_verb cxt5047_toshiba_init_verbs[] = {
 * configuration.
 * configuration.
 */
 */
#ifdef CONFIG_SND_DEBUG
#ifdef CONFIG_SND_DEBUG
static struct hda_input_mux cxt5047_test_capture_source = {
static const struct hda_input_mux cxt5047_test_capture_source = {
	.num_items = 4,
	.num_items = 4,
	.items = {
	.items = {
		{ "LINE1 pin", 0x0 },
		{ "LINE1 pin", 0x0 },
@@ -1367,7 +1367,7 @@ static struct hda_input_mux cxt5047_test_capture_source = {
        },
        },
};
};


static struct snd_kcontrol_new cxt5047_test_mixer[] = {
static const struct snd_kcontrol_new cxt5047_test_mixer[] = {


	/* Output only controls */
	/* Output only controls */
	HDA_CODEC_VOLUME("OutAmp-1 Volume", 0x10, 0x0, HDA_OUTPUT),
	HDA_CODEC_VOLUME("OutAmp-1 Volume", 0x10, 0x0, HDA_OUTPUT),
@@ -1420,7 +1420,7 @@ static struct snd_kcontrol_new cxt5047_test_mixer[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5047_test_init_verbs[] = {
static const struct hda_verb cxt5047_test_init_verbs[] = {
	/* Enable retasking pins as output, initially without power amp */
	/* Enable retasking pins as output, initially without power amp */
	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
@@ -1504,7 +1504,7 @@ static const char * const cxt5047_models[CXT5047_MODELS] = {
#endif
#endif
};
};


static struct snd_pci_quirk cxt5047_cfg_tbl[] = {
static const struct snd_pci_quirk cxt5047_cfg_tbl[] = {
	SND_PCI_QUIRK(0x103c, 0x30a5, "HP DV5200T/DV8000T", CXT5047_LAPTOP_HP),
	SND_PCI_QUIRK(0x103c, 0x30a5, "HP DV5200T/DV8000T", CXT5047_LAPTOP_HP),
	SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x3000, "HP DV Series",
	SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x3000, "HP DV Series",
			   CXT5047_LAPTOP),
			   CXT5047_LAPTOP),
@@ -1591,10 +1591,10 @@ static int patch_cxt5047(struct hda_codec *codec)
}
}


/* Conexant 5051 specific */
/* Conexant 5051 specific */
static hda_nid_t cxt5051_dac_nids[1] = { 0x10 };
static const hda_nid_t cxt5051_dac_nids[1] = { 0x10 };
static hda_nid_t cxt5051_adc_nids[2] = { 0x14, 0x15 };
static const hda_nid_t cxt5051_adc_nids[2] = { 0x14, 0x15 };


static struct hda_channel_mode cxt5051_modes[1] = {
static const struct hda_channel_mode cxt5051_modes[1] = {
	{ 2, NULL },
	{ 2, NULL },
};
};


@@ -1696,7 +1696,7 @@ static void cxt5051_hp_unsol_event(struct hda_codec *codec,
	snd_hda_input_jack_report(codec, nid);
	snd_hda_input_jack_report(codec, nid);
}
}


static struct snd_kcontrol_new cxt5051_playback_mixers[] = {
static const struct snd_kcontrol_new cxt5051_playback_mixers[] = {
	HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT),
	{
	{
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -1709,7 +1709,7 @@ static struct snd_kcontrol_new cxt5051_playback_mixers[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5051_capture_mixers[] = {
static const struct snd_kcontrol_new cxt5051_capture_mixers[] = {
	HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Volume", 0x14, 0x01, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Volume", 0x14, 0x01, HDA_INPUT),
@@ -1719,7 +1719,7 @@ static struct snd_kcontrol_new cxt5051_capture_mixers[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5051_hp_mixers[] = {
static const struct snd_kcontrol_new cxt5051_hp_mixers[] = {
	HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Volume", 0x15, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Volume", 0x15, 0x00, HDA_INPUT),
@@ -1727,19 +1727,19 @@ static struct snd_kcontrol_new cxt5051_hp_mixers[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5051_hp_dv6736_mixers[] = {
static const struct snd_kcontrol_new cxt5051_hp_dv6736_mixers[] = {
	HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Capture Switch", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Capture Switch", 0x14, 0x00, HDA_INPUT),
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5051_f700_mixers[] = {
static const struct snd_kcontrol_new cxt5051_f700_mixers[] = {
	HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x01, HDA_INPUT),
	HDA_CODEC_VOLUME("Capture Volume", 0x14, 0x01, HDA_INPUT),
	HDA_CODEC_MUTE("Capture Switch", 0x14, 0x01, HDA_INPUT),
	HDA_CODEC_MUTE("Capture Switch", 0x14, 0x01, HDA_INPUT),
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5051_toshiba_mixers[] = {
static const struct snd_kcontrol_new cxt5051_toshiba_mixers[] = {
	HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Volume", 0x14, 0x01, HDA_INPUT),
	HDA_CODEC_VOLUME("Mic Volume", 0x14, 0x01, HDA_INPUT),
@@ -1747,7 +1747,7 @@ static struct snd_kcontrol_new cxt5051_toshiba_mixers[] = {
	{}
	{}
};
};


static struct hda_verb cxt5051_init_verbs[] = {
static const struct hda_verb cxt5051_init_verbs[] = {
	/* Line in, Mic */
	/* Line in, Mic */
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
@@ -1776,7 +1776,7 @@ static struct hda_verb cxt5051_init_verbs[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5051_hp_dv6736_init_verbs[] = {
static const struct hda_verb cxt5051_hp_dv6736_init_verbs[] = {
	/* Line in, Mic */
	/* Line in, Mic */
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
@@ -1801,7 +1801,7 @@ static struct hda_verb cxt5051_hp_dv6736_init_verbs[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5051_lenovo_x200_init_verbs[] = {
static const struct hda_verb cxt5051_lenovo_x200_init_verbs[] = {
	/* Line in, Mic */
	/* Line in, Mic */
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
@@ -1834,7 +1834,7 @@ static struct hda_verb cxt5051_lenovo_x200_init_verbs[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5051_f700_init_verbs[] = {
static const struct hda_verb cxt5051_f700_init_verbs[] = {
	/* Line in, Mic */
	/* Line in, Mic */
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0) | 0x03},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
@@ -1869,7 +1869,7 @@ static void cxt5051_init_mic_port(struct hda_codec *codec, hda_nid_t nid,
	snd_hda_input_jack_report(codec, nid);
	snd_hda_input_jack_report(codec, nid);
}
}


static struct hda_verb cxt5051_ideapad_init_verbs[] = {
static const struct hda_verb cxt5051_ideapad_init_verbs[] = {
	/* Subwoofer */
	/* Subwoofer */
	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x1b, AC_VERB_SET_CONNECT_SEL, 0x00},
	{0x1b, AC_VERB_SET_CONNECT_SEL, 0x00},
@@ -1919,7 +1919,7 @@ static const char *const cxt5051_models[CXT5051_MODELS] = {
	[CXT5051_IDEAPAD]	= "ideapad",
	[CXT5051_IDEAPAD]	= "ideapad",
};
};


static struct snd_pci_quirk cxt5051_cfg_tbl[] = {
static const struct snd_pci_quirk cxt5051_cfg_tbl[] = {
	SND_PCI_QUIRK(0x103c, 0x30cf, "HP DV6736", CXT5051_HP_DV6736),
	SND_PCI_QUIRK(0x103c, 0x30cf, "HP DV6736", CXT5051_HP_DV6736),
	SND_PCI_QUIRK(0x103c, 0x360b, "Compaq Presario CQ60", CXT5051_HP),
	SND_PCI_QUIRK(0x103c, 0x360b, "Compaq Presario CQ60", CXT5051_HP),
	SND_PCI_QUIRK(0x103c, 0x30ea, "Compaq Presario F700", CXT5051_F700),
	SND_PCI_QUIRK(0x103c, 0x30ea, "Compaq Presario F700", CXT5051_F700),
@@ -2011,17 +2011,17 @@ static int patch_cxt5051(struct hda_codec *codec)


/* Conexant 5066 specific */
/* Conexant 5066 specific */


static hda_nid_t cxt5066_dac_nids[1] = { 0x10 };
static const hda_nid_t cxt5066_dac_nids[1] = { 0x10 };
static hda_nid_t cxt5066_adc_nids[3] = { 0x14, 0x15, 0x16 };
static const hda_nid_t cxt5066_adc_nids[3] = { 0x14, 0x15, 0x16 };
static hda_nid_t cxt5066_capsrc_nids[1] = { 0x17 };
static const hda_nid_t cxt5066_capsrc_nids[1] = { 0x17 };
static hda_nid_t cxt5066_digout_pin_nids[2] = { 0x20, 0x22 };
static const hda_nid_t cxt5066_digout_pin_nids[2] = { 0x20, 0x22 };


/* OLPC's microphone port is DC coupled for use with external sensors,
/* OLPC's microphone port is DC coupled for use with external sensors,
 * therefore we use a 50% mic bias in order to center the input signal with
 * therefore we use a 50% mic bias in order to center the input signal with
 * the DC input range of the codec. */
 * the DC input range of the codec. */
#define CXT5066_OLPC_EXT_MIC_BIAS PIN_VREF50
#define CXT5066_OLPC_EXT_MIC_BIAS PIN_VREF50


static struct hda_channel_mode cxt5066_modes[1] = {
static const struct hda_channel_mode cxt5066_modes[1] = {
	{ 2, NULL },
	{ 2, NULL },
};
};


@@ -2176,7 +2176,7 @@ static void cxt5066_vostro_automic(struct hda_codec *codec)
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{}
		{}
	};
	};
	static struct hda_verb ext_mic_absent[] = {
	static const struct hda_verb ext_mic_absent[] = {
		/* enable internal mic, port C */
		/* enable internal mic, port C */
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},


@@ -2209,7 +2209,7 @@ static void cxt5066_ideapad_automic(struct hda_codec *codec)
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{}
		{}
	};
	};
	static struct hda_verb ext_mic_absent[] = {
	static const struct hda_verb ext_mic_absent[] = {
		{0x14, AC_VERB_SET_CONNECT_SEL, 2},
		{0x14, AC_VERB_SET_CONNECT_SEL, 2},
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
@@ -2257,7 +2257,7 @@ static void cxt5066_thinkpad_automic(struct hda_codec *codec)
{
{
	unsigned int ext_present, dock_present;
	unsigned int ext_present, dock_present;


	static struct hda_verb ext_mic_present[] = {
	static const struct hda_verb ext_mic_present[] = {
		{0x14, AC_VERB_SET_CONNECT_SEL, 0},
		{0x14, AC_VERB_SET_CONNECT_SEL, 0},
		{0x17, AC_VERB_SET_CONNECT_SEL, 1},
		{0x17, AC_VERB_SET_CONNECT_SEL, 1},
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
@@ -2265,7 +2265,7 @@ static void cxt5066_thinkpad_automic(struct hda_codec *codec)
		{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{}
		{}
	};
	};
	static struct hda_verb dock_mic_present[] = {
	static const struct hda_verb dock_mic_present[] = {
		{0x14, AC_VERB_SET_CONNECT_SEL, 0},
		{0x14, AC_VERB_SET_CONNECT_SEL, 0},
		{0x17, AC_VERB_SET_CONNECT_SEL, 0},
		{0x17, AC_VERB_SET_CONNECT_SEL, 0},
		{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
		{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
@@ -2273,7 +2273,7 @@ static void cxt5066_thinkpad_automic(struct hda_codec *codec)
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{}
		{}
	};
	};
	static struct hda_verb ext_mic_absent[] = {
	static const struct hda_verb ext_mic_absent[] = {
		{0x14, AC_VERB_SET_CONNECT_SEL, 2},
		{0x14, AC_VERB_SET_CONNECT_SEL, 2},
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
		{0x23, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
		{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
@@ -2537,7 +2537,7 @@ static void cxt5066_olpc_capture_cleanup(struct hda_codec *codec)
}
}


static void conexant_check_dig_outs(struct hda_codec *codec,
static void conexant_check_dig_outs(struct hda_codec *codec,
				    hda_nid_t *dig_pins,
				    const hda_nid_t *dig_pins,
				    int num_pins)
				    int num_pins)
{
{
	struct conexant_spec *spec = codec->spec;
	struct conexant_spec *spec = codec->spec;
@@ -2557,7 +2557,7 @@ static void conexant_check_dig_outs(struct hda_codec *codec,
	}
	}
}
}


static struct hda_input_mux cxt5066_capture_source = {
static const struct hda_input_mux cxt5066_capture_source = {
	.num_items = 4,
	.num_items = 4,
	.items = {
	.items = {
		{ "Mic B", 0 },
		{ "Mic B", 0 },
@@ -2567,7 +2567,7 @@ static struct hda_input_mux cxt5066_capture_source = {
	},
	},
};
};


static struct hda_bind_ctls cxt5066_bind_capture_vol_others = {
static const struct hda_bind_ctls cxt5066_bind_capture_vol_others = {
	.ops = &snd_hda_bind_vol,
	.ops = &snd_hda_bind_vol,
	.values = {
	.values = {
		HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_INPUT),
		HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_INPUT),
@@ -2576,7 +2576,7 @@ static struct hda_bind_ctls cxt5066_bind_capture_vol_others = {
	},
	},
};
};


static struct hda_bind_ctls cxt5066_bind_capture_sw_others = {
static const struct hda_bind_ctls cxt5066_bind_capture_sw_others = {
	.ops = &snd_hda_bind_sw,
	.ops = &snd_hda_bind_sw,
	.values = {
	.values = {
		HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_INPUT),
		HDA_COMPOSE_AMP_VAL(0x14, 3, 0, HDA_INPUT),
@@ -2585,12 +2585,12 @@ static struct hda_bind_ctls cxt5066_bind_capture_sw_others = {
	},
	},
};
};


static struct snd_kcontrol_new cxt5066_mixer_master[] = {
static const struct snd_kcontrol_new cxt5066_mixer_master[] = {
	HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT),
	HDA_CODEC_VOLUME("Master Playback Volume", 0x10, 0x00, HDA_OUTPUT),
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5066_mixer_master_olpc[] = {
static const struct snd_kcontrol_new cxt5066_mixer_master_olpc[] = {
	{
	{
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.name = "Master Playback Volume",
		.name = "Master Playback Volume",
@@ -2609,7 +2609,7 @@ static struct snd_kcontrol_new cxt5066_mixer_master_olpc[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5066_mixer_olpc_dc[] = {
static const struct snd_kcontrol_new cxt5066_mixer_olpc_dc[] = {
	{
	{
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.name = "DC Mode Enable Switch",
		.name = "DC Mode Enable Switch",
@@ -2627,7 +2627,7 @@ static struct snd_kcontrol_new cxt5066_mixer_olpc_dc[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5066_mixers[] = {
static const struct snd_kcontrol_new cxt5066_mixers[] = {
	{
	{
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.name = "Master Playback Switch",
		.name = "Master Playback Switch",
@@ -2650,7 +2650,7 @@ static struct snd_kcontrol_new cxt5066_mixers[] = {
	{}
	{}
};
};


static struct snd_kcontrol_new cxt5066_vostro_mixers[] = {
static const struct snd_kcontrol_new cxt5066_vostro_mixers[] = {
	{
	{
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.name = "Internal Mic Boost Capture Enum",
		.name = "Internal Mic Boost Capture Enum",
@@ -2662,7 +2662,7 @@ static struct snd_kcontrol_new cxt5066_vostro_mixers[] = {
	{}
	{}
};
};


static struct hda_verb cxt5066_init_verbs[] = {
static const struct hda_verb cxt5066_init_verbs[] = {
	{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port B */
	{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port B */
	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port C */
	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port C */
	{0x1e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port F */
	{0x1e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port F */
@@ -2717,7 +2717,7 @@ static struct hda_verb cxt5066_init_verbs[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5066_init_verbs_olpc[] = {
static const struct hda_verb cxt5066_init_verbs_olpc[] = {
	/* Port A: headphones */
	/* Port A: headphones */
	{0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
	{0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
	{0x19, AC_VERB_SET_CONNECT_SEL, 0x00}, /* DAC1 */
	{0x19, AC_VERB_SET_CONNECT_SEL, 0x00}, /* DAC1 */
@@ -2778,7 +2778,7 @@ static struct hda_verb cxt5066_init_verbs_olpc[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5066_init_verbs_vostro[] = {
static const struct hda_verb cxt5066_init_verbs_vostro[] = {
	/* Port A: headphones */
	/* Port A: headphones */
	{0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
	{0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, 0},
	{0x19, AC_VERB_SET_CONNECT_SEL, 0x00}, /* DAC1 */
	{0x19, AC_VERB_SET_CONNECT_SEL, 0x00}, /* DAC1 */
@@ -2839,7 +2839,7 @@ static struct hda_verb cxt5066_init_verbs_vostro[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5066_init_verbs_ideapad[] = {
static const struct hda_verb cxt5066_init_verbs_ideapad[] = {
	{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port B */
	{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port B */
	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port C */
	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, /* Port C */
	{0x1e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port F */
	{0x1e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port F */
@@ -2889,7 +2889,7 @@ static struct hda_verb cxt5066_init_verbs_ideapad[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5066_init_verbs_thinkpad[] = {
static const struct hda_verb cxt5066_init_verbs_thinkpad[] = {
	{0x1e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port F */
	{0x1e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port F */
	{0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port E */
	{0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, /* Port E */


@@ -2947,13 +2947,13 @@ static struct hda_verb cxt5066_init_verbs_thinkpad[] = {
	{ } /* end */
	{ } /* end */
};
};


static struct hda_verb cxt5066_init_verbs_portd_lo[] = {
static const struct hda_verb cxt5066_init_verbs_portd_lo[] = {
	{0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{ } /* end */
	{ } /* end */
};
};




static struct hda_verb cxt5066_init_verbs_hp_laptop[] = {
static const struct hda_verb cxt5066_init_verbs_hp_laptop[] = {
	{0x14, AC_VERB_SET_CONNECT_SEL, 0x0},
	{0x14, AC_VERB_SET_CONNECT_SEL, 0x0},
	{0x19, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_HP_EVENT},
	{0x19, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_HP_EVENT},
	{0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_MIC_EVENT},
	{0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_MIC_EVENT},
@@ -3011,7 +3011,7 @@ static const char * const cxt5066_models[CXT5066_MODELS] = {
	[CXT5066_HP_LAPTOP]	= "hp-laptop",
	[CXT5066_HP_LAPTOP]	= "hp-laptop",
};
};


static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
static const struct snd_pci_quirk cxt5066_cfg_tbl[] = {
	SND_PCI_QUIRK_MASK(0x1025, 0xff00, 0x0400, "Acer", CXT5066_IDEAPAD),
	SND_PCI_QUIRK_MASK(0x1025, 0xff00, 0x0400, "Acer", CXT5066_IDEAPAD),
	SND_PCI_QUIRK(0x1028, 0x02d8, "Dell Vostro", CXT5066_DELL_VOSTRO),
	SND_PCI_QUIRK(0x1028, 0x02d8, "Dell Vostro", CXT5066_DELL_VOSTRO),
	SND_PCI_QUIRK(0x1028, 0x02f5, "Dell Vostro 320", CXT5066_IDEAPAD),
	SND_PCI_QUIRK(0x1028, 0x02f5, "Dell Vostro 320", CXT5066_IDEAPAD),
@@ -3195,7 +3195,7 @@ static int patch_cxt5066(struct hda_codec *codec)
 * Automatic parser for CX20641 & co
 * Automatic parser for CX20641 & co
 */
 */


static hda_nid_t cx_auto_adc_nids[] = { 0x14 };
static const hda_nid_t cx_auto_adc_nids[] = { 0x14 };


/* get the connection index of @nid in the widget @mux */
/* get the connection index of @nid in the widget @mux */
static int get_connection_index(struct hda_codec *codec, hda_nid_t mux,
static int get_connection_index(struct hda_codec *codec, hda_nid_t mux,
@@ -3646,7 +3646,7 @@ static int cx_auto_add_volume_idx(struct hda_codec *codec, const char *basename,
		HDA_CODEC_VOLUME(name, 0, 0, 0),
		HDA_CODEC_VOLUME(name, 0, 0, 0),
		HDA_CODEC_MUTE(name, 0, 0, 0),
		HDA_CODEC_MUTE(name, 0, 0, 0),
	};
	};
	static char *sfx[2] = { "Volume", "Switch" };
	static const char * const sfx[2] = { "Volume", "Switch" };
	int i, err;
	int i, err;


	for (i = 0; i < 2; i++) {
	for (i = 0; i < 2; i++) {
@@ -3791,7 +3791,7 @@ static int cx_auto_build_controls(struct hda_codec *codec)
	return conexant_build_controls(codec);
	return conexant_build_controls(codec);
}
}


static struct hda_codec_ops cx_auto_patch_ops = {
static const struct hda_codec_ops cx_auto_patch_ops = {
	.build_controls = cx_auto_build_controls,
	.build_controls = cx_auto_build_controls,
	.build_pcms = conexant_build_pcms,
	.build_pcms = conexant_build_pcms,
	.init = cx_auto_init,
	.init = cx_auto_init,
@@ -3830,7 +3830,7 @@ static int patch_conexant_auto(struct hda_codec *codec)
/*
/*
 */
 */


static struct hda_codec_preset snd_hda_preset_conexant[] = {
static const struct hda_codec_preset snd_hda_preset_conexant[] = {
	{ .id = 0x14f15045, .name = "CX20549 (Venice)",
	{ .id = 0x14f15045, .name = "CX20549 (Venice)",
	  .patch = patch_cxt5045 },
	  .patch = patch_cxt5045 },
	{ .id = 0x14f15047, .name = "CX20551 (Waikiki)",
	{ .id = 0x14f15047, .name = "CX20551 (Waikiki)",