@David Henningsson

Hi, thanks for your effort,

I've tried that patch and with a little correction it works as expected - no 
more click noise.
It's necessary to move the line
.reboot_notify = conexant_reboot_notify,
from
static const struct hda_codec_ops conexant_patch_ops = {
to
static const struct hda_codec_ops cx_auto_patch_ops = {
when rebooting "auto model detection".

One thing about
snd_hda_codec_set_power_to_all(codec, codec->afg, AC_PWRST_D3, false);
I think it's not necessary to turning every single pin to D3, just pin for the 
Speaker, like this
snd_hda_codec_write(codec, 0x10, 0, AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
or
snd_hda_codec_write(codec, codec->start_nid, 0, AC_VERB_SET_POWER_STATE, 
AC_PWRST_D3);
but it's up to you because it works :)

The rest regressions when using "auto model detection":
1) There is a wrong AC_VERB_SET_CONNECT_SEL setting. Speaker 0x10 and 
Headphones 0x11 (and maybe dock station 0x12) are connected to Audio Output 
0x19 instead of Audio Mixer 0x17. Look at post #8.
2) I don't know how to explain it but there is a wrong PCM level. Sound output 
is muted in the "0% <-> unamplified" part of the volume slider and is working 
in the "unamplified <-> 100% ->" part only and it's annoying; according to the 
code from patch_conexant.c (old model setting)
        switch (codec->subsystem_id >> 16) {
        case 0x103c:
        case 0x1631:
        case 0x1734:
        case 0x17aa:
                /* HP, Packard Bell, Fujitsu-Siemens & Lenovo laptops have
                 * really bad sound over 0dB on NID 0x17. Fix max PCM level to
                 * 0 dB (originally it has 0x2b steps with 0dB offset 0x14)
                 */
                snd_hda_override_amp_caps(codec, 0x17, HDA_INPUT,
                                          (0x14 << AC_AMPCAP_OFFSET_SHIFT) |
                                          (0x14 << AC_AMPCAP_NUM_STEPS_SHIFT) |
                                          (0x05 << AC_AMPCAP_STEP_SIZE_SHIFT) |
                                          (1 << AC_AMPCAP_MUTE_SHIFT));
                break;
        }
the driver doesn't allow amplified part because sound is distorted over 0dB of 
the PCM level so there is no need amplified part of the volume slider.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/886975

Title:
  [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't
  work correctly.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to