diff options
author | Connor McAdams <conmanx360@gmail.com> | 2018-08-08 20:34:20 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2018-08-08 21:40:23 +0300 |
commit | 42aa3a169062c48e5cbb1f3a6523f8b7c892b699 (patch) | |
tree | 55d1d812502f59cdc7faa9bbde471dd1f8504a44 /sound | |
parent | c986f50ca974397f8726bf6776ad8938d6808848 (diff) | |
download | linux-42aa3a169062c48e5cbb1f3a6523f8b7c892b699.tar.xz |
ALSA: hda/ca0132 - Add Recon3D input and output select commands
This patch adds commands to the alternative input and output select
commands to support the Recon3D.
Signed-off-by: Connor McAdams <conmanx360@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_ca0132.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c index 8edd7675fb77..d46695e133c0 100644 --- a/sound/pci/hda/patch_ca0132.c +++ b/sound/pci/hda/patch_ca0132.c @@ -3993,6 +3993,10 @@ static int ca0132_alt_select_out(struct hda_codec *codec) chipio_set_control_param(codec, 0x0D, 0x24); r3di_gpio_out_set(codec, R3DI_LINE_OUT); break; + case QUIRK_R3D: + chipio_set_control_param(codec, 0x0D, 0x24); + ca0132_mmio_gpio_set(codec, 1, true); + break; } /* disable headphone node */ @@ -4029,6 +4033,10 @@ static int ca0132_alt_select_out(struct hda_codec *codec) chipio_set_control_param(codec, 0x0D, 0x21); r3di_gpio_out_set(codec, R3DI_HEADPHONE_OUT); break; + case QUIRK_R3D: + chipio_set_control_param(codec, 0x0D, 0x21); + ca0132_mmio_gpio_set(codec, 0x1, false); + break; } snd_hda_codec_write(codec, spec->out_pins[0], 0, @@ -4071,6 +4079,10 @@ static int ca0132_alt_select_out(struct hda_codec *codec) chipio_set_control_param(codec, 0x0D, 0x24); r3di_gpio_out_set(codec, R3DI_LINE_OUT); break; + case QUIRK_R3D: + ca0132_mmio_gpio_set(codec, 1, true); + chipio_set_control_param(codec, 0x0D, 0x24); + break; } /* enable line out node */ pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, @@ -4328,6 +4340,7 @@ static int ca0132_alt_select_in(struct hda_codec *codec) case REAR_MIC: switch (spec->quirk) { case QUIRK_SBZ: + case QUIRK_R3D: ca0132_mmio_gpio_set(codec, 0, false); tmp = FLOAT_THREE; break; @@ -4360,6 +4373,7 @@ static int ca0132_alt_select_in(struct hda_codec *codec) ca0132_mic_boost_set(codec, 0); switch (spec->quirk) { case QUIRK_SBZ: + case QUIRK_R3D: ca0132_mmio_gpio_set(codec, 0, false); break; case QUIRK_R3DI: @@ -4386,6 +4400,7 @@ static int ca0132_alt_select_in(struct hda_codec *codec) case FRONT_MIC: switch (spec->quirk) { case QUIRK_SBZ: + case QUIRK_R3D: ca0132_mmio_gpio_set(codec, 0, true); ca0132_mmio_gpio_set(codec, 5, false); tmp = FLOAT_THREE; |