|
@@ -69,6 +69,7 @@ enum {
|
|
|
};
|
|
|
|
|
|
enum {
|
|
|
+ STAC_92HD73XX_NO_JD, /* no jack-detection */
|
|
|
STAC_92HD73XX_REF,
|
|
|
STAC_DELL_M6_AMIC,
|
|
|
STAC_DELL_M6_DMIC,
|
|
@@ -127,6 +128,7 @@ enum {
|
|
|
};
|
|
|
|
|
|
enum {
|
|
|
+ STAC_D965_REF_NO_JD, /* no jack-detection */
|
|
|
STAC_D965_REF,
|
|
|
STAC_D965_3ST,
|
|
|
STAC_D965_5ST,
|
|
@@ -1611,6 +1613,7 @@ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
|
|
|
};
|
|
|
|
|
|
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
|
|
|
+ [STAC_92HD73XX_NO_JD] = "no-jd",
|
|
|
[STAC_92HD73XX_REF] = "ref",
|
|
|
[STAC_DELL_M6_AMIC] = "dell-m6-amic",
|
|
|
[STAC_DELL_M6_DMIC] = "dell-m6-dmic",
|
|
@@ -1640,6 +1643,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
|
|
|
"unknown Dell", STAC_DELL_M6_DMIC),
|
|
|
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
|
|
|
"Dell Studio 1537", STAC_DELL_M6_DMIC),
|
|
|
+ SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0,
|
|
|
+ "Dell Studio 17", STAC_DELL_M6_DMIC),
|
|
|
{} /* terminator */
|
|
|
};
|
|
|
|
|
@@ -2027,6 +2032,7 @@ static unsigned int dell_3st_pin_configs[14] = {
|
|
|
};
|
|
|
|
|
|
static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
|
|
|
+ [STAC_D965_REF_NO_JD] = ref927x_pin_configs,
|
|
|
[STAC_D965_REF] = ref927x_pin_configs,
|
|
|
[STAC_D965_3ST] = d965_3st_pin_configs,
|
|
|
[STAC_D965_5ST] = d965_5st_pin_configs,
|
|
@@ -2035,6 +2041,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
|
|
|
};
|
|
|
|
|
|
static const char *stac927x_models[STAC_927X_MODELS] = {
|
|
|
+ [STAC_D965_REF_NO_JD] = "ref-no-jd",
|
|
|
[STAC_D965_REF] = "ref",
|
|
|
[STAC_D965_3ST] = "3stack",
|
|
|
[STAC_D965_5ST] = "5stack",
|
|
@@ -2896,7 +2903,7 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
|
|
|
}
|
|
|
|
|
|
if ((spec->multiout.num_dacs - cfg->line_outs) > 0 &&
|
|
|
- cfg->hp_outs && !spec->multiout.hp_nid)
|
|
|
+ cfg->hp_outs == 1 && !spec->multiout.hp_nid)
|
|
|
spec->multiout.hp_nid = nid;
|
|
|
|
|
|
if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) {
|
|
@@ -4254,14 +4261,17 @@ again:
|
|
|
|
|
|
switch (spec->multiout.num_dacs) {
|
|
|
case 0x3: /* 6 Channel */
|
|
|
+ spec->multiout.hp_nid = 0x17;
|
|
|
spec->mixer = stac92hd73xx_6ch_mixer;
|
|
|
spec->init = stac92hd73xx_6ch_core_init;
|
|
|
break;
|
|
|
case 0x4: /* 8 Channel */
|
|
|
+ spec->multiout.hp_nid = 0x18;
|
|
|
spec->mixer = stac92hd73xx_8ch_mixer;
|
|
|
spec->init = stac92hd73xx_8ch_core_init;
|
|
|
break;
|
|
|
case 0x5: /* 10 Channel */
|
|
|
+ spec->multiout.hp_nid = 0x19;
|
|
|
spec->mixer = stac92hd73xx_10ch_mixer;
|
|
|
spec->init = stac92hd73xx_10ch_core_init;
|
|
|
};
|
|
@@ -4297,6 +4307,7 @@ again:
|
|
|
spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
|
|
|
spec->eapd_switch = 0;
|
|
|
spec->num_amps = 1;
|
|
|
+ spec->multiout.hp_nid = 0; /* dual HPs */
|
|
|
|
|
|
if (!spec->init)
|
|
|
spec->init = dell_m6_core_init;
|
|
@@ -4351,6 +4362,9 @@ again:
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
+ if (spec->board_config == STAC_92HD73XX_NO_JD)
|
|
|
+ spec->hp_detect = 0;
|
|
|
+
|
|
|
codec->patch_ops = stac92xx_patch_ops;
|
|
|
|
|
|
return 0;
|
|
@@ -4899,6 +4913,10 @@ static int patch_stac927x(struct hda_codec *codec)
|
|
|
*/
|
|
|
codec->bus->needs_damn_long_delay = 1;
|
|
|
|
|
|
+ /* no jack detecion for ref-no-jd model */
|
|
|
+ if (spec->board_config == STAC_D965_REF_NO_JD)
|
|
|
+ spec->hp_detect = 0;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|