|
@@ -98,6 +98,7 @@ enum {
|
|
|
STAC_92HD83XXX_HP_LED,
|
|
|
STAC_92HD83XXX_HP_INV_LED,
|
|
|
STAC_92HD83XXX_HP_MIC_LED,
|
|
|
+ STAC_HP_LED_GPIO10,
|
|
|
STAC_92HD83XXX_HEADSET_JACK,
|
|
|
STAC_92HD83XXX_HP,
|
|
|
STAC_HP_ENVY_BASS,
|
|
@@ -2130,6 +2131,17 @@ static void stac92hd83xxx_fixup_hp_mic_led(struct hda_codec *codec,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static void stac92hd83xxx_fixup_hp_led_gpio10(struct hda_codec *codec,
|
|
|
+ const struct hda_fixup *fix, int action)
|
|
|
+{
|
|
|
+ struct sigmatel_spec *spec = codec->spec;
|
|
|
+
|
|
|
+ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
|
|
|
+ spec->gpio_led = 0x10; /* GPIO4 */
|
|
|
+ spec->default_polarity = 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static void stac92hd83xxx_fixup_headset_jack(struct hda_codec *codec,
|
|
|
const struct hda_fixup *fix, int action)
|
|
|
{
|
|
@@ -2624,6 +2636,12 @@ static const struct hda_fixup stac92hd83xxx_fixups[] = {
|
|
|
.chained = true,
|
|
|
.chain_id = STAC_92HD83XXX_HP,
|
|
|
},
|
|
|
+ [STAC_HP_LED_GPIO10] = {
|
|
|
+ .type = HDA_FIXUP_FUNC,
|
|
|
+ .v.func = stac92hd83xxx_fixup_hp_led_gpio10,
|
|
|
+ .chained = true,
|
|
|
+ .chain_id = STAC_92HD83XXX_HP,
|
|
|
+ },
|
|
|
[STAC_92HD83XXX_HEADSET_JACK] = {
|
|
|
.type = HDA_FIXUP_FUNC,
|
|
|
.v.func = stac92hd83xxx_fixup_headset_jack,
|
|
@@ -2702,6 +2720,8 @@ static const struct snd_pci_quirk stac92hd83xxx_fixup_tbl[] = {
|
|
|
"HP", STAC_92HD83XXX_HP_cNB11_INTQUAD),
|
|
|
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1888,
|
|
|
"HP Envy Spectre", STAC_HP_ENVY_BASS),
|
|
|
+ SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1899,
|
|
|
+ "HP Folio 13", STAC_HP_LED_GPIO10),
|
|
|
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x18df,
|
|
|
"HP Folio", STAC_HP_BNB13_EQ),
|
|
|
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x18F8,
|