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

Commit 304dcaac authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela
Browse files

[ALSA] Add support of Benq laptop with ALC262



Added the support of Benq laptop with ALC262 codec.
A model string 'benq' is added, too.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@suse.cz>
parent 6d177ba7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -799,6 +799,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
	ALC262
	  fujitsu	Fujitsu Laptop
	  hp-bpc	HP xw4400/6400/8400/9400 laptops
	  benq		Benq ED8
	  basic		fixed pin assignment w/o SPDIF
	  auto		auto-config reading BIOS (default)

+21 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ enum {
	ALC262_BASIC,
	ALC262_FUJITSU,
	ALC262_HP_BPC,
	ALC262_BENQ_ED8,
	ALC262_AUTO,
	ALC262_MODEL_LAST /* last tag */
};
@@ -5504,6 +5505,13 @@ static struct snd_kcontrol_new alc262_fujitsu_mixer[] = {
	{ } /* end */
};

/* additional init verbs for Benq laptops */
static struct hda_verb alc262_EAPD_verbs[] = {
	{0x20, AC_VERB_SET_COEF_INDEX, 0x07},
	{0x20, AC_VERB_SET_PROC_COEF,  0x3070},
	{}
};

/* add playback controls from the parsed DAC table */
static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg)
{
@@ -5783,6 +5791,9 @@ static struct hda_board_config alc262_cfg_tbl[] = {
	  .config = ALC262_HP_BPC }, /* xw8400 */
	{ .pci_subvendor = 0x103c, .pci_subdevice = 0x12fe,
	  .config = ALC262_HP_BPC }, /* xw9400 */
	{ .modelname = "benq", .config = ALC262_BENQ_ED8 },
	{ .pci_subvendor = 0x17ff, .pci_subdevice = 0x0560,
	  .config = ALC262_BENQ_ED8 },
	{ .modelname = "auto", .config = ALC262_AUTO },
	{}
};
@@ -5820,6 +5831,16 @@ static struct alc_config_preset alc262_presets[] = {
		.channel_mode = alc262_modes,
		.input_mux = &alc262_HP_capture_source,
	},	
	[ALC262_BENQ_ED8] = {
		.mixers = { alc262_base_mixer },
		.init_verbs = { alc262_init_verbs, alc262_EAPD_verbs },
		.num_dacs = ARRAY_SIZE(alc262_dac_nids),
		.dac_nids = alc262_dac_nids,
		.hp_nid = 0x03,
		.num_channel_mode = ARRAY_SIZE(alc262_modes),
		.channel_mode = alc262_modes,
		.input_mux = &alc262_capture_source,
	},		
};

static int patch_alc262(struct hda_codec *codec)