ALSA: hda - Add comments for the previous fix for conexant codecs
authorTakashi Iwai <tiwai@suse.de>
Thu, 12 Mar 2009 15:45:01 +0000 (16:45 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 12 Mar 2009 15:45:01 +0000 (16:45 +0100)
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_conexant.c

index 6cb184e9c2f19fdd7734acd11ced3c1ef20799fd..bc016fade192ca6bbe909281682cac8b71d7d248 100644 (file)
@@ -1196,6 +1196,10 @@ static int cxt5047_hp_master_sw_put(struct snd_kcontrol *kcontrol,
         * the headphone jack
         */
        bits = (!spec->hp_present && spec->cur_eapd) ? 0 : HDA_AMP_MUTE;
+       /* NOTE: Conexat codec needs the index for *OUTPUT* amp of
+        * pin widgets unlike other codecs.  In this case, we need to
+        * set index 0x01 for the volume from the mixer amp 0x19.
+        */
        snd_hda_codec_amp_stereo(codec, 0x1d, HDA_OUTPUT, 0x01,
                                 HDA_AMP_MUTE, bits);
        bits = spec->cur_eapd ? 0 : HDA_AMP_MUTE;
@@ -1214,6 +1218,7 @@ static void cxt5047_hp_automute(struct hda_codec *codec)
                                     AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
 
        bits = (spec->hp_present || !spec->cur_eapd) ? HDA_AMP_MUTE : 0;
+       /* See the note in cxt5047_hp_master_sw_put */
        snd_hda_codec_amp_stereo(codec, 0x1d, HDA_OUTPUT, 0x01,
                                 HDA_AMP_MUTE, bits);
 }
@@ -1276,6 +1281,7 @@ static struct snd_kcontrol_new cxt5047_base_mixers[] = {
 };
 
 static struct snd_kcontrol_new cxt5047_hp_spk_mixers[] = {
+       /* See the note in cxt5047_hp_master_sw_put */
        HDA_CODEC_VOLUME("Speaker Playback Volume", 0x1d, 0x01, HDA_OUTPUT),
        HDA_CODEC_VOLUME("Headphone Playback Volume", 0x13, 0x00, HDA_OUTPUT),
        {}