diff options
author | Kailang Yang <kailang@realtek.com> | 2015-03-30 05:05:37 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-04-04 06:53:23 -0400 |
commit | 7081adf3f98f4c39dc6758208775b2aa48f51f8a (patch) | |
tree | 7f76948f38eb1e479ba22ef5e3bf0568eb500f42 /sound/pci | |
parent | e42391cd048809d903291d07f86ed3934ce138e9 (diff) |
ALSA: hda/realtek - Support Dell headset mode for ALC256
Dell new platform of ALC256 audio codec.
Support headset mode for Dell ALC256 platform.
Signed-off-by: Kailang Yang <kailang@realtek.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 74382137b9f5..f75c1274b448 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -3607,6 +3607,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec) | |||
3607 | 3607 | ||
3608 | switch (codec->vendor_id) { | 3608 | switch (codec->vendor_id) { |
3609 | case 0x10ec0255: | 3609 | case 0x10ec0255: |
3610 | case 0x10ec0256: | ||
3610 | alc_process_coef_fw(codec, coef0255); | 3611 | alc_process_coef_fw(codec, coef0255); |
3611 | break; | 3612 | break; |
3612 | case 0x10ec0233: | 3613 | case 0x10ec0233: |
@@ -3662,6 +3663,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin, | |||
3662 | 3663 | ||
3663 | switch (codec->vendor_id) { | 3664 | switch (codec->vendor_id) { |
3664 | case 0x10ec0255: | 3665 | case 0x10ec0255: |
3666 | case 0x10ec0256: | ||
3665 | alc_write_coef_idx(codec, 0x45, 0xc489); | 3667 | alc_write_coef_idx(codec, 0x45, 0xc489); |
3666 | snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); | 3668 | snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); |
3667 | alc_process_coef_fw(codec, coef0255); | 3669 | alc_process_coef_fw(codec, coef0255); |
@@ -3731,6 +3733,7 @@ static void alc_headset_mode_default(struct hda_codec *codec) | |||
3731 | 3733 | ||
3732 | switch (codec->vendor_id) { | 3734 | switch (codec->vendor_id) { |
3733 | case 0x10ec0255: | 3735 | case 0x10ec0255: |
3736 | case 0x10ec0256: | ||
3734 | alc_process_coef_fw(codec, coef0255); | 3737 | alc_process_coef_fw(codec, coef0255); |
3735 | break; | 3738 | break; |
3736 | case 0x10ec0233: | 3739 | case 0x10ec0233: |
@@ -3785,6 +3788,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec) | |||
3785 | 3788 | ||
3786 | switch (codec->vendor_id) { | 3789 | switch (codec->vendor_id) { |
3787 | case 0x10ec0255: | 3790 | case 0x10ec0255: |
3791 | case 0x10ec0256: | ||
3788 | alc_process_coef_fw(codec, coef0255); | 3792 | alc_process_coef_fw(codec, coef0255); |
3789 | break; | 3793 | break; |
3790 | case 0x10ec0233: | 3794 | case 0x10ec0233: |
@@ -3839,6 +3843,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec) | |||
3839 | 3843 | ||
3840 | switch (codec->vendor_id) { | 3844 | switch (codec->vendor_id) { |
3841 | case 0x10ec0255: | 3845 | case 0x10ec0255: |
3846 | case 0x10ec0256: | ||
3842 | alc_process_coef_fw(codec, coef0255); | 3847 | alc_process_coef_fw(codec, coef0255); |
3843 | break; | 3848 | break; |
3844 | case 0x10ec0233: | 3849 | case 0x10ec0233: |
@@ -3884,6 +3889,7 @@ static void alc_determine_headset_type(struct hda_codec *codec) | |||
3884 | 3889 | ||
3885 | switch (codec->vendor_id) { | 3890 | switch (codec->vendor_id) { |
3886 | case 0x10ec0255: | 3891 | case 0x10ec0255: |
3892 | case 0x10ec0256: | ||
3887 | alc_process_coef_fw(codec, coef0255); | 3893 | alc_process_coef_fw(codec, coef0255); |
3888 | msleep(300); | 3894 | msleep(300); |
3889 | val = alc_read_coef_idx(codec, 0x46); | 3895 | val = alc_read_coef_idx(codec, 0x46); |
@@ -5217,6 +5223,16 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { | |||
5217 | {0x17, 0x40000000}, | 5223 | {0x17, 0x40000000}, |
5218 | {0x1d, 0x40700001}, | 5224 | {0x1d, 0x40700001}, |
5219 | {0x21, 0x02211050}), | 5225 | {0x21, 0x02211050}), |
5226 | SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, | ||
5227 | {0x12, 0x90a60140}, | ||
5228 | {0x13, 0x40000000}, | ||
5229 | {0x14, 0x90170110}, | ||
5230 | {0x19, 0x411111f0}, | ||
5231 | {0x1a, 0x411111f0}, | ||
5232 | {0x1b, 0x411111f0}, | ||
5233 | {0x1d, 0x40700001}, | ||
5234 | {0x1e, 0x411111f0}, | ||
5235 | {0x21, 0x02211020}), | ||
5220 | SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4, | 5236 | SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4, |
5221 | {0x12, 0x90a60130}, | 5237 | {0x12, 0x90a60130}, |
5222 | {0x13, 0x40000000}, | 5238 | {0x13, 0x40000000}, |