|
@@ -158,6 +158,7 @@ enum {
|
|
|
STAC_D965_5ST_NO_FP,
|
|
|
STAC_DELL_3ST,
|
|
|
STAC_DELL_BIOS,
|
|
|
+ STAC_927X_VOLKNOB,
|
|
|
STAC_927X_MODELS
|
|
|
};
|
|
|
|
|
@@ -915,6 +916,14 @@ static struct hda_verb stac927x_core_init[] = {
|
|
|
{}
|
|
|
};
|
|
|
|
|
|
+static struct hda_verb stac927x_volknob_core_init[] = {
|
|
|
+ /* don't set delta bit */
|
|
|
+ {0x24, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0x7f},
|
|
|
+ /* enable analog pc beep path */
|
|
|
+ {0x01, AC_VERB_SET_DIGI_CONVERT_2, 1 << 5},
|
|
|
+ {}
|
|
|
+};
|
|
|
+
|
|
|
static struct hda_verb stac9205_core_init[] = {
|
|
|
/* set master volume and direct control */
|
|
|
{ 0x24, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
|
|
@@ -1999,6 +2008,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
|
|
|
[STAC_D965_5ST_NO_FP] = d965_5st_no_fp_pin_configs,
|
|
|
[STAC_DELL_3ST] = dell_3st_pin_configs,
|
|
|
[STAC_DELL_BIOS] = NULL,
|
|
|
+ [STAC_927X_VOLKNOB] = NULL,
|
|
|
};
|
|
|
|
|
|
static const char *stac927x_models[STAC_927X_MODELS] = {
|
|
@@ -2010,6 +2020,7 @@ static const char *stac927x_models[STAC_927X_MODELS] = {
|
|
|
[STAC_D965_5ST_NO_FP] = "5stack-no-fp",
|
|
|
[STAC_DELL_3ST] = "dell-3stack",
|
|
|
[STAC_DELL_BIOS] = "dell-bios",
|
|
|
+ [STAC_927X_VOLKNOB] = "volknob",
|
|
|
};
|
|
|
|
|
|
static struct snd_pci_quirk stac927x_cfg_tbl[] = {
|
|
@@ -2045,6 +2056,8 @@ static struct snd_pci_quirk stac927x_cfg_tbl[] = {
|
|
|
"Intel D965", STAC_D965_5ST),
|
|
|
SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_INTEL, 0xff00, 0x2500,
|
|
|
"Intel D965", STAC_D965_5ST),
|
|
|
+ /* volume-knob fixes */
|
|
|
+ SND_PCI_QUIRK_VENDOR(0x10cf, "FSC", STAC_927X_VOLKNOB),
|
|
|
{} /* terminator */
|
|
|
};
|
|
|
|
|
@@ -5616,6 +5629,10 @@ static int patch_stac927x(struct hda_codec *codec)
|
|
|
spec->dmux_nids = stac927x_dmux_nids;
|
|
|
spec->num_dmuxes = ARRAY_SIZE(stac927x_dmux_nids);
|
|
|
break;
|
|
|
+ case STAC_927X_VOLKNOB:
|
|
|
+ spec->num_dmics = 0;
|
|
|
+ spec->init = stac927x_volknob_core_init;
|
|
|
+ break;
|
|
|
default:
|
|
|
spec->num_dmics = 0;
|
|
|
spec->init = stac927x_core_init;
|