summaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-01-15 17:13:31 +0100
committerTakashi Iwai <tiwai@suse.de>2013-01-15 17:13:31 +0100
commita0c041cb6f74f9734d9a3af1061a718b3879a255 (patch)
treeaa632ac5030fc65ca27137cdce77c0b3e21f651f /sound/pci
parent15e4ba666ca6c2fcc00184cef56fb971a20e8e04 (diff)
downloadop-kernel-dev-a0c041cb6f74f9734d9a3af1061a718b3879a255.zip
op-kernel-dev-a0c041cb6f74f9734d9a3af1061a718b3879a255.tar.gz
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/pci')
-rw-r--r--sound/pci/hda/patch_ca0132.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c
index 0d2c2f8..467c9a1 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,
OpenPOWER on IntegriCloud