diff options
author | Kailang Yang <kailang@realtek.com> | 2014-05-21 04:49:48 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-05-21 05:13:17 -0400 |
commit | 13fd08a339f174840046d0b229f434c0a5ee9925 (patch) | |
tree | 6a82fef76565f8450c67955a98a7f25203973ba2 | |
parent | 2d3a27782259de867fd2c0b7e3428acaf2b00123 (diff) |
ALSA: hda/realtek - Add support headset mode for ALC233
Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index bf1e1a625086..e603221b1875 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -3524,6 +3524,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec) | |||
3524 | /* Direct Drive HP Amp control */ | 3524 | /* Direct Drive HP Amp control */ |
3525 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8aa6); | 3525 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8aa6); |
3526 | break; | 3526 | break; |
3527 | case 0x10ec0233: | ||
3527 | case 0x10ec0283: | 3528 | case 0x10ec0283: |
3528 | alc_write_coef_idx(codec, 0x1b, 0x0c0b); | 3529 | alc_write_coef_idx(codec, 0x1b, 0x0c0b); |
3529 | alc_write_coef_idx(codec, 0x45, 0xc429); | 3530 | alc_write_coef_idx(codec, 0x45, 0xc429); |
@@ -3582,6 +3583,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin, | |||
3582 | alc_write_coef_idx(codec, 0x06, 0x6100); | 3583 | alc_write_coef_idx(codec, 0x06, 0x6100); |
3583 | snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); | 3584 | snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); |
3584 | break; | 3585 | break; |
3586 | case 0x10ec0233: | ||
3585 | case 0x10ec0283: | 3587 | case 0x10ec0283: |
3586 | alc_write_coef_idx(codec, 0x45, 0xc429); | 3588 | alc_write_coef_idx(codec, 0x45, 0xc429); |
3587 | snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); | 3589 | snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); |
@@ -3636,6 +3638,7 @@ static void alc_headset_mode_default(struct hda_codec *codec) | |||
3636 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8ea6); | 3638 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8ea6); |
3637 | alc_write_coef_idx(codec, 0x49, 0x0049); | 3639 | alc_write_coef_idx(codec, 0x49, 0x0049); |
3638 | break; | 3640 | break; |
3641 | case 0x10ec0233: | ||
3639 | case 0x10ec0283: | 3642 | case 0x10ec0283: |
3640 | alc_write_coef_idx(codec, 0x06, 0x2100); | 3643 | alc_write_coef_idx(codec, 0x06, 0x2100); |
3641 | alc_write_coef_idx(codec, 0x32, 0x4ea3); | 3644 | alc_write_coef_idx(codec, 0x32, 0x4ea3); |
@@ -3677,6 +3680,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec) | |||
3677 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); | 3680 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); |
3678 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8ea6); | 3681 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8ea6); |
3679 | break; | 3682 | break; |
3683 | case 0x10ec0233: | ||
3680 | case 0x10ec0283: | 3684 | case 0x10ec0283: |
3681 | alc_write_coef_idx(codec, 0x45, 0xd429); | 3685 | alc_write_coef_idx(codec, 0x45, 0xd429); |
3682 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); | 3686 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); |
@@ -3715,6 +3719,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec) | |||
3715 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); | 3719 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); |
3716 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8ea6); | 3720 | alc_write_coefex_idx(codec, 0x57, 0x03, 0x8ea6); |
3717 | break; | 3721 | break; |
3722 | case 0x10ec0233: | ||
3718 | case 0x10ec0283: | 3723 | case 0x10ec0283: |
3719 | alc_write_coef_idx(codec, 0x45, 0xe429); | 3724 | alc_write_coef_idx(codec, 0x45, 0xe429); |
3720 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); | 3725 | alc_write_coef_idx(codec, 0x1b, 0x0c2b); |
@@ -3757,6 +3762,7 @@ static void alc_determine_headset_type(struct hda_codec *codec) | |||
3757 | val = alc_read_coef_idx(codec, 0x46); | 3762 | val = alc_read_coef_idx(codec, 0x46); |
3758 | is_ctia = (val & 0x0070) == 0x0070; | 3763 | is_ctia = (val & 0x0070) == 0x0070; |
3759 | break; | 3764 | break; |
3765 | case 0x10ec0233: | ||
3760 | case 0x10ec0283: | 3766 | case 0x10ec0283: |
3761 | alc_write_coef_idx(codec, 0x45, 0xd029); | 3767 | alc_write_coef_idx(codec, 0x45, 0xd029); |
3762 | msleep(300); | 3768 | msleep(300); |