diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-01-15 17:13:31 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-01-15 17:13:31 +0100 |
commit | a0c041cb6f74f9734d9a3af1061a718b3879a255 (patch) | |
tree | aa632ac5030fc65ca27137cdce77c0b3e21f651f /sound | |
parent | 15e4ba666ca6c2fcc00184cef56fb971a20e8e04 (diff) | |
download | blackbird-obmc-linux-a0c041cb6f74f9734d9a3af1061a718b3879a255.tar.gz blackbird-obmc-linux-a0c041cb6f74f9734d9a3af1061a718b3879a255.zip |
ALSA: hda/ca0132 - Use snd_hda_set_pin_ctl() helper again
The recent update of ca0132 driver replaced the pinctl setup to the
direct write via snd_hda_codec_write() again. This should be covered
by snd_hda_set_pin_ctl() to be safer.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_ca0132.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c index 0d2c2f83ca7d..467c9a18819b 100644 --- a/sound/pci/hda/patch_ca0132.c +++ b/sound/pci/hda/patch_ca0132.c @@ -3158,15 +3158,13 @@ static int ca0132_select_out(struct hda_codec *codec) /* disable headphone node */ pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - snd_hda_codec_write(codec, spec->out_pins[1], 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - pin_ctl & 0xBF); + snd_hda_set_pin_ctl(codec, spec->out_pins[1], + pin_ctl & ~PIN_HP); /* enable speaker node */ pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - snd_hda_codec_write(codec, spec->out_pins[0], 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - pin_ctl | 0x40); + snd_hda_set_pin_ctl(codec, spec->out_pins[0], + pin_ctl | PIN_OUT); } else { snd_printdd(KERN_INFO "ca0132_select_out hp\n"); /*headphone out config*/ @@ -3193,15 +3191,13 @@ static int ca0132_select_out(struct hda_codec *codec) /* disable speaker*/ pin_ctl = snd_hda_codec_read(codec, spec->out_pins[0], 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - snd_hda_codec_write(codec, spec->out_pins[0], 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - pin_ctl & 0xBF); + snd_hda_set_pin_ctl(codec, spec->out_pins[0], + pin_ctl & ~PIN_HP); /* enable headphone*/ pin_ctl = snd_hda_codec_read(codec, spec->out_pins[1], 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); - snd_hda_codec_write(codec, spec->out_pins[1], 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, - pin_ctl | 0x40); + snd_hda_set_pin_ctl(codec, spec->out_pins[1], + pin_ctl | PIN_HP); } exit: @@ -4065,8 +4061,7 @@ static int ca0132_build_pcms(struct hda_codec *codec) static void init_output(struct hda_codec *codec, hda_nid_t pin, hda_nid_t dac) { if (pin) { - snd_hda_codec_write(codec, pin, 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP); + snd_hda_set_pin_ctl(codec, pin, PIN_HP); if (get_wcaps(codec, pin) & AC_WCAP_OUT_AMP) snd_hda_codec_write(codec, pin, 0, AC_VERB_SET_AMP_GAIN_MUTE, @@ -4080,8 +4075,7 @@ static void init_output(struct hda_codec *codec, hda_nid_t pin, hda_nid_t dac) static void init_input(struct hda_codec *codec, hda_nid_t pin, hda_nid_t adc) { if (pin) { - snd_hda_codec_write(codec, pin, 0, - AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80); + snd_hda_set_pin_ctl(codec, pin, PIN_VREF80); if (get_wcaps(codec, pin) & AC_WCAP_IN_AMP) snd_hda_codec_write(codec, pin, 0, AC_VERB_SET_AMP_GAIN_MUTE, |