diff options
Diffstat (limited to 'sound/pci/hda/patch_sigmatel.c')
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 27 | 
1 files changed, 27 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index fe163547f90..770013ff556 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -104,6 +104,7 @@ enum {  	STAC_92HD83XXX_HP_LED,  	STAC_92HD83XXX_HP_INV_LED,  	STAC_92HD83XXX_HP_MIC_LED, +	STAC_92HD83XXX_HEADSET_JACK,  	STAC_92HD83XXX_MODELS  }; @@ -204,6 +205,7 @@ struct sigmatel_spec {  	unsigned int check_volume_offset:1;  	unsigned int auto_mic:1;  	unsigned int linear_tone_beep:1; +	unsigned int headset_jack:1; /* 4-pin headset jack (hp + mono mic) */  	/* gpio lines */  	unsigned int eapd_mask; @@ -1684,6 +1686,7 @@ static const char * const stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = {  	[STAC_92HD83XXX_HP_LED] = "hp-led",  	[STAC_92HD83XXX_HP_INV_LED] = "hp-inv-led",  	[STAC_92HD83XXX_HP_MIC_LED] = "hp-mic-led", +	[STAC_92HD83XXX_HEADSET_JACK] = "headset-jack",  };  static const struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = { @@ -1694,6 +1697,24 @@ static const struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {  		      "DFI LanParty", STAC_92HD83XXX_REF),  	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ba,  		      "unknown Dell", STAC_DELL_S14), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0532, +		      "Dell Latitude E6230", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0533, +		      "Dell Latitude E6330", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0534, +		      "Dell Latitude E6430", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0535, +		      "Dell Latitude E6530", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x053c, +		      "Dell Latitude E5430", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x053d, +		      "Dell Latitude E5530", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0549, +		      "Dell Latitude E5430", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x057d, +		      "Dell Latitude E6430s", STAC_92HD83XXX_HEADSET_JACK), +	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0584, +		      "Dell Latitude E6430U", STAC_92HD83XXX_HEADSET_JACK),  	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x1028,  		      "Dell Vostro 3500", STAC_DELL_VOSTRO_3500),  	SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1656, @@ -2855,6 +2876,9 @@ static inline int stac92xx_add_jack_mode_control(struct hda_codec *codec,  	char name[22];  	if (snd_hda_get_input_pin_attr(def_conf) != INPUT_PIN_ATTR_INT) { +		if (spec->headset_jack && snd_hda_get_input_pin_attr(def_conf) +			!= INPUT_PIN_ATTR_DOCK) +			return 0;  		if (snd_hda_get_default_vref(codec, nid) == AC_PINCTL_VREF_GRD  			&& nid == spec->line_switch)  			control = STAC_CTL_WIDGET_IO_SWITCH; @@ -5626,6 +5650,9 @@ again:  	case STAC_92HD83XXX_HP_MIC_LED:  		spec->mic_mute_led_gpio = 0x08; /* GPIO3 */  		break; +	case STAC_92HD83XXX_HEADSET_JACK: +		spec->headset_jack = 1; +		break;  	}  	if (find_mute_led_cfg(codec, default_polarity))  |