18 Oct, 2011

2 commits

  • This is patch for Conexant codec of Intel HDA driver, adding new quirk
    for Lenovo Thinkpad T520 and W520. Conexant autodetection works fine for
    T520 (similar subsystem ID is used also in W520 model) and detects more
    mixer features compared to generic (fallback) Lenovo quirk with
    hardcoded options in Conexant codec.

    Patch was activelly tested with Linux 3.0.4, 3.0.6 and 3.0.7 without any
    problems.

    Signed-off-by: Daniel Suchy
    Cc: [3.0+]
    Signed-off-by: Takashi Iwai

    Daniel Suchy
     
  • The previous fix for the position-buffer check gives yet another
    regression on a Dell laptop. The safest fix right now is to add a
    static quirk for this device (and better to apply it for stable
    kernels too).

    Reported-by: Éric Piel
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

30 Sep, 2011

1 commit

  • The commit a810364a0424c297242c6c66071a42f7675a5568
    ALSA: hda - Handle -1 as invalid position, too
    caused a regression on some machines that require the position-buffer
    instead of LPIB, e.g. resulting in noises with mic recording with
    PulseAudio.

    This patch fixes the detection by delaying the test at the timing as
    same as 3.0, i.e. doing the position check only when requested in
    azx_position_ok().

    Reported-and-tested-by: Rocko Requin
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

26 Sep, 2011

2 commits

  • The spec->autocfg.line_out_pins[] may contain the same pins as hp_pins[]
    depending on the configuration. When they are identical, detecting the
    line_jack_present flag screws up the auto-mute because alc_line_automute()
    is called unconditionally at initialization while it won't be triggered
    by unsol events, thus the old line_jack_present flag is kept for the
    whole run.

    For fixing this buggy behavior, the driver needs to check whether the
    line-outs are really individual, and skip if same as headphone jacks.

    Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • When the headphone pin is assigned as primary output to line_out_pins[],
    the automatic HP-pin assignment by ASSID must be suppressed. Otherwise
    a wrong pin might be assigned to the headphone and breaks the auto-mute.

    Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104

    Signed-off-by: Takashi Iwai
    Cc:

    Takashi Iwai
     

24 Sep, 2011

1 commit


20 Sep, 2011

1 commit


19 Sep, 2011

1 commit

  • When the system has only the headphone and the line-out jacks without
    speakers, the current auto-mute code doesn't work. It's because the
    spec->automute_lines flag is wrongly referred in update_speakers().
    This flag must be meaningless when spec->automute_hp_lo isn't set, thus
    they should be always coupled.

    The patch fixes the problem and add a comment to indicate the
    relationship briefly.

    BugLink: http://bugs.launchpad.net/bugs/851697

    Reported-by: David Henningsson
    Tested-By: Jayne Han
    Cc: stable@kernel.org (3.0)
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

14 Sep, 2011

1 commit


13 Sep, 2011

1 commit


25 Aug, 2011

1 commit

  • Headphones has stopped working for the original reported (a regression
    compared to 2.6.38). This is because Speaker and Headphones share the
    same DAC, in which case no Headphones volume control was created.
    This patch fixes so that both Speaker and Headphones volume
    controls are created in such scenario.

    BugLink: http://bugs.launchpad.net/bugs/817943
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     

24 Aug, 2011

1 commit


23 Aug, 2011

3 commits


20 Aug, 2011

2 commits

  • snd_hda_get_conn_index() returns a negative value while the current code
    stores it in an unsigned int. It must be stored in a signed integer.

    Reported-by: Jesper Juhl
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Currently HD-audio driver shows the all error ELD byte as an error
    in the kernel message. This is annoying when the video driver doesn't
    set the correct ELD from the beginning. e.g. radeon sends a zero-byte
    data, but we still check ELD with the fixed 128 byte as a workaround
    for some broken devices, it spews 128-times errors.

    For avoiding this, the driver aborts reading when the first byte is
    invalid. In such a case, the whole data is certainly invalid.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

18 Aug, 2011

1 commit


16 Aug, 2011

1 commit


10 Aug, 2011

1 commit


05 Aug, 2011

1 commit


04 Aug, 2011

2 commits


27 Jul, 2011

3 commits


26 Jul, 2011

6 commits

  • This update includes the changes necessary for supporting the
    CS421x family of codecs. Previously this file only supported
    the CS420x family of codecs.

    This file also contains init verbs to correct several issues in
    the CS421x hardware.

    Behavior between the CS421x and CS420x codec families is similar,
    so several functions have been reused with "if" statements to
    determine which codec family (CS421x or CS420x) is present.

    Also, this file will be updated sometime in the near future in
    order to add support for a system using CS421x that requires
    mono mix on the speaker output only.

    [Fix const usages and adaption for new APIs by tiwai]

    Signed-off-by: Tim Howe
    Signed-off-by: Takashi Iwai

    Tim Howe
     
  • The procedure for codec D-state change may have exceptional cases
    depending on the codec chip, such as a longer delay or suppressing D3.

    This patch adds a new codec ops, set_power_state() to override the system
    default function. For ease of porting, snd_hda_codec_set_power_to_all()
    helper function is extracted from the default set_power_state() function.

    As an example, the Conexant codec-specific delay is removed from the
    default routine but moved to patch_conexant.c.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Add a new ops, post_suspend(), which is called after suspend() ops is
    performed. This is called only in the case of the real PM suspend, and
    the codec driver can use this for further changing of D-state or
    clearing the LED, etc.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • It makes little sense to enable power-saving without PM.
    This removes SND_HDA_NEEDS_RESUME define so that we can use CONFIG_PM
    in all places.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This patch adds checking of mute state on all outputs besides just
    speakers to calculate the master mute state for mute led support.
    It also renames and splits the function that does it for better code
    clarity.

    Signed-off-by: Vitaliy Kulikov
    Signed-off-by: Takashi Iwai

    Vitaliy Kulikov
     
  • Codec state is not restored immediately on resume but on the first
    access when power-save is enabled. That leads to an invalid mute led
    state after resume until either sound is played or some control is
    changed. This patch adds a possibility for a vendor specific patch to
    restore codec state immediately after resume if required. And it adds
    code to restore IDT codecs state immediately on resume on HP systems
    with mute led support.

    Signed-off-by: Vitaliy Kulikov
    Signed-off-by: Takashi Iwai

    Vitaliy Kulikov
     

24 Jul, 2011

2 commits


22 Jul, 2011

2 commits


21 Jul, 2011

2 commits


18 Jul, 2011

2 commits

  • This patch changes the behavior of independent-HP enum switch. Now
    instead of returning a busy error, the driver switches dynamically the
    stream of the HP (and shared) DACs according to the current mode.
    The logic is similar like the dual-mic ADC switch, but a bit more
    complicated because of the presence of shared DAC.

    Together with the change, a mutex is introduced to protect against the
    possible races for the indep-HP mode setting.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This patch adds the dynamic control of analog-loopback for VIA codecs.

    When the loopback is enabled, the inputs from line-ins and mics are
    mixed with the front DAC, and sent to the front outputs. The very same
    input is routed to the headhpones and speakers in loopback mode.
    However, since the loopback mix can't take other than the front DAC,
    there is no longer individual volume controls for headphones and
    speakers. Once when the loopback control is off, these volumes take
    effect.

    Since the individual volumes are more desired in general use caess, the
    loopback mode is set to off as default for now.

    Signed-off-by: Takashi Iwai

    Takashi Iwai