01 Mar, 2012

4 commits

  • commit ef8d60fb79614a86a82720dc2402631dbcafb315 upstream.

    The previous fix for the speaker on Acer Aspire 59135 introduced
    another problem for surround outputs. It changed the connections on
    the line-in/mic pins for limiting the routes, but it left the modified
    connections. Thus wrong connection indices were written when set to
    4ch or 6ch mode.

    This patch fixes it by restoring the right connections just after
    parsing the tree but before the initialization.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42740

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit c14c95f62ecb8710af14ae0d48e01991b70bb6f4 upstream.

    The bitmap introduced in the commit [527e4d73: ALSA: hda/realtek - Fix
    missing volume controls with ALC260] is too narrow for some codecs,
    which may have more NIDs than 0x20, thus it may overflow the bitmap
    array on them.

    Just double the number to cover all and also add a sanity-check code
    to be safer.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 31794bc37bf2db84f085da52b72bfba65739b2d2 upstream.

    The sidetone enumeration texts have left and right swapped.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • [Note that since the patch isn't applicable (and unnecessary) to
    3.3-rc, there is no corresponding upstream fix.]

    The cx5051 parser calls snd_hda_input_jack_add() in the init callback
    to create and initialize the jack detection instances. Since the init
    callback is called at each time when the device gets woken up after
    suspend or power-saving mode, the duplicated instances are accumulated
    at each call. This ends up with the kernel warnings with the too
    large array size.

    The fix is simply to move the calls of snd_hda_input_jack_add() into
    the parser section instead of the init callback.

    The fix is needed only up to 3.2 kernel, since the HD-audio jack layer
    was redesigned in the 3.3 kernel.

    Reported-by: Russell King
    Tested-by: Russell King
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

21 Feb, 2012

3 commits

  • commit 02a237b24d57e2e2d5402c92549e9e792aa24359 upstream.

    Since 3.2 kernel, the driver starts trying to assign the multi-io DACs
    before the speaker, thus it assigns DAC2/3 for multi-io and DAC4 for
    the speaker for a standard laptop setup like a HP, a speaker, a mic-in
    and a line-in. However, on Acer Aspire 6935, it seems that the
    speaker pin 0x14 must be connected with either DAC1 or 2; otherwise it
    results in silence by some reason, although the codec itself allows
    the routing to DAC3/4.

    As a workaround, the connection list of each pin is reduced to be
    mapped to either only DAC1/2 or DAC3/4, so that the compatible
    assignment as in kernel 3.1 is achieved.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42740

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit fc1156c0b0f7ad45ec03d919866349eeca2bf18c upstream.

    VT1705 codec has two ADCs where the secondary ADC has no MUX but only
    a fixed connection to the mic pin. This confused the driver and it
    tries always overriding the input-source selection by assumption of
    the existing MUX for the secondary ADC, resulted in resetting the
    input-source at each time PM (including power-saving) occurs.

    The fix is simply to check the existence of MUX for secondary ADCs in
    the initialization code.

    Tested-by: Anisse Astier
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 27c3afe6e1cf129faac90405121203962da08ff4 upstream.

    BugLink: https://bugs.launchpad.net/bugs/930842

    The reporter states that audio is inaudible by default without muting
    'External Amplifier'. Add a quirk to handle his SSID so that changing
    the control is not necessary.

    Reported-and-tested-by: Benjamin Carlson
    Signed-off-by: Daniel T Chen
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Daniel T Chen
     

14 Feb, 2012

15 commits

  • commit 2492250e4412c6411324c14ab289629360640b0a upstream.

    The driver accidentally exchanged the left/right fields for stereo AC'97
    mixer registers. This affected only the aux and CD inputs because the
    line input bypasses the AC'97 codec and the mic input is mono; cards
    without AC'97 (Xonar DS/DG/HDAV Slim, HG2PCI, HiFier) were not affected.

    Reported-and-tested-by: Abby Cedar
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Clemens Ladisch
     
  • commit f647e1526fd6c7c8ab720781c40d11e11f930e93 upstream.

    The VMID ramp rate is supposed to be 0x3, not 11b. Fix that.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit db966f8abb9ba74f7d5a7230f51572f52c31c4e5 upstream.

    We can enable VMID independently of the bias in some use cases so we need
    to ensure that the core device is powered up.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit 2b6712b19531e22455e7fa18371c5ba9eec76699 upstream.

    Signed-off-by: Susan Gao
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Susan Gao
     
  • commit 43b6cec27e1e50a1de3eff47e66e502f3fe7e66e upstream.

    The second line output mixer has the controls for the line input bypasses
    in the opposite order.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit ee76744c51ec342df9822b4a85dbbfc3887b6d60 upstream.

    IN1L/R is routed to both line output mixers, we don't route IN1 to LINEOUT1
    and IN2 to LINEOUT2.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit 114395c61ad2eb5a7a5cd163fcadb2414e48245a upstream.

    Signed-off-by: UK KIM
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    UK KIM
     
  • commit 77231abe55433aa17eca712718745275853fa66d upstream.

    For optimal performance the single ended line outputs require that the
    line output VMID buffer be enabled.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit b5bcc189401c815988b7dd37611fc56f40c9139d upstream.

    Since the dynamic pin power-control and the analog low-current mode
    may lead to pop-noise, it's safer to set it off as default.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=741128

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 54c2a89f60fd71b924d0f848ac892442951401a6 upstream.

    This typo caused the wrong codec's nid to be checked for wcaps type.
    As a result, sometimes speakers would duplicate the output sent to
    HDMI output.

    BugLink: https://bugs.launchpad.net/bugs/924320
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    David Henningsson
     
  • commit e9d010c2e8f03952e67a6fd8aed0f0dc92084ccc upstream.

    VIA codecs have several different power-saving features, and one of
    them is the analog low-current mode. But it turned out that the ALC
    mode causes pop-noises at each on/off time on some machines. As a
    quick workaround, disable the ALC when another power-saving feature,
    the dynamic pin power-control, is turned off, too, since the dynamic
    power-control is already exposed as a mixer enum element so that user
    can turn it on/off freely.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=741128

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit f70eecde3bca92630d3886496e73316ff353f185 upstream.

    If cs_automic is called twice (like it is during init) while the mic
    is present, it will over-write the last_input with the new one,
    causing it to switch back to the automic input when the mic is
    unplugged. This leaves the driver in a state (cur_input, last_input,
    and automix_idx the same) where the internal mic can not be selected
    until it is rebooted without the mic attached.

    Check that the mic hasn't already been switched to before setting
    last_input.

    Signed-off-by: Dylan Reid
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Dylan Reid
     
  • commit 31150f2327cbb66363f38e13ca1be973d2f9203a upstream.

    It turned out that other ASUS laptops require the similar fix to
    enable the VREF on the pin 0x0f for the secret output amp, not only
    ASUS A6Rp. Moreover, it's required even when the pin is being used
    as the output. Thus, writing a fixed value doesn't work always.

    This patch applies the VREF-fix for all ASUS laptops with ALC861/660
    in a fixup function that checks the current value and turns on only
    the VREF value no matter whether input or output direction is set.

    The automute function is modified as well to keep the pin VREF upon
    muting/unmuting via pin-control; otherwise the pin VREF is reset at
    plugging/unplugging a jack.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42588

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit a389d67cf9849aff1722ed73186a584e2196a873 upstream.

    The user reports that he needs to add model=auto for audio to
    work properly. In fact, since node 0x15 is not even a pin node,
    the existing fixup is definitely wrong. Relevant information can
    be found in the buglink below.

    BugLink: https://bugs.launchpad.net/bugs/918254
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    David Henningsson
     
  • commit 924339239fd5ba3e505f9420d41f0939196f3530 upstream.

    The analog low-current mode must be enabled when the no stream is
    running but the current detection checks it in a wrong way.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=741128

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

04 Feb, 2012

11 commits

  • This reverts commit 78fd75340768980ce6ca646106762a6928289e0c (upstream
    commit 495174a8ffbaa0d15153d855cf206cdc46d51cf4) as it breaks the build.

    Reported-by: Tim Gardner
    Cc: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • This reverts commit 11a17e56ac9c607c6eaecf64b618cd17c828ade0
    (e53e417331c57b9b97e3f8be870214a02c99265c upstream) as it breaks the
    build.

    Reported-by: Tim Gardner
    Cc: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • commit b3a81520bd37a28f77cb0f7002086fb14061824d upstream.

    The very same problem is seen on Haier W18 laptop with ALC861 as seen
    on ASUS A6Rp, which was fixed by the commit 3b25eb69.
    Now we just need to add a new SSID entry pointing to the same fixup.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42656

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 3b25eb690e8c7424eecffe1458c02b87b32aa001 upstream.

    The refactoring of Realtek codec driver in 3.2 kernel caused a
    regression for ASUS A6Rp laptop; it doesn't give any output.
    The reason was that this machine has a secret master mute (or EAPD)
    control via NID 0x0f VREF. Setting VREF50 on this node makes the
    sound working again.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42588

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit a6a600d10aaddf1da38053c4c6b64f50f56176e6 upstream.

    HP laptop models with buggy BIOS are apparently frequent, including
    machines with different codecs. Set the polarity of the mute led based
    on the SSID and include an entry for the HP Mini 110-3100.

    Signed-off-by: Gustavo Maciel Dias Vieira
    Tested-by: Predrag Ivanovic
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Gustavo Maciel Dias Vieira
     
  • commit a14304edcd5e8323205db34b08f709feb5357e64 upstream.

    We should be allowing a 5ms delay after the charge pump is started in
    order to ensure it has finished ramping.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit 495174a8ffbaa0d15153d855cf206cdc46d51cf4 upstream.

    These are all to either uncached registers or fixes to register defaults,
    in the former case the cache won't do anything and in the latter case
    we're fixing things so the cache sync will do the right thing.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit fed22007113cb857e917913ce016d9b539dc3a80 upstream.

    With a low frequency SYSCLK and a fast I2C clock register synchronisation
    may occasionally take too long to take effect, causing I/O issues. Disable
    synchronisation in order to avoid any issues.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit e53e417331c57b9b97e3f8be870214a02c99265c upstream.

    Writing to the registers won't work if we do actually manage to hit a fully
    powered off state.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit b4ead019afc201f71c39cd0dfcaafed4a97b3dd2 upstream.

    The recent change of the power-widget handling for IDT codecs caused
    the silent output from the docking-station line-out jack. This was
    partially fixed by the commit f2cbba7602383cd9cdd21f0a5d0b8bd1aad47b33
    "ALSA: hda - Fix the lost power-setup of seconary pins after PM resume".
    But the line-out on the docking-station is still silent when booted
    with the jack plugged even by this fix.

    The remainig bug is that the power-widget is set off in stac92xx_init()
    because the pins in cfg->line_out_pins[] aren't checked there properly
    but only hp_pins[] are checked in is_nid_hp_pin().

    This patch fixes the problem by checking both HP and line-out pins
    and leaving the power-map correctly.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42637

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 52409aa6a0e96337da137c069856298f4dd825a0 upstream.

    The commit 2ae66c26550cd94b0e2606a9275eb0ab7070ad0e
    ALSA: hda: option to enable arbitrary buffer/period sizes
    introduced a regression on machines with Intel controller and Nvidia
    HDMI. The reason is that the driver modifies the global variable
    align_buffer_size when an Intel controller is found, and the Nvidia
    HDMI controller is probed after Intel although Nvidia chips require
    the aligned buffers.

    This patch fixes the problem by moving the flag into the local struct
    so that it's not affected by other controllers.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42567

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

26 Jan, 2012

7 commits

  • commit ffe535edb9a9c5b4d5fe03dfa3d89a1495580f1b upstream.

    More than one user reports that changing the model from "both" to
    "dmic" makes their Internal Mic work.

    Tested-by: Martin Ling
    BugLink: https://bugs.launchpad.net/bugs/795823
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    David Henningsson
     
  • commit f0e48b6bd4e407459715240cd241ddb6b89bdf81 upstream.

    The two DACs for the front output and the surround/center/LFE/back
    outputs are wired up out of phase, so when channels are duplicated,
    their sound can cancel out each other and result in a weaker bass
    response. To fix this, reverse the polarity of the neutron flow to
    the front output.

    Reported-any-tested-by: Daniel Hill
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Clemens Ladisch
     
  • commit b01de4fb40137fbda7530550ff0cd37171dafb0c upstream.

    Several users have reported "choppy" audio under the 3.2 kernel,
    and that changing position_fix to 1 has resolved their problem.
    The chip is an nVidia Corporation MCP89 High Definition Audio,
    [10de:0d94] (rev a2).

    BugLink: https://bugs.launchpad.net/bugs/909419
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    David Henningsson
     
  • commit f2cbba7602383cd9cdd21f0a5d0b8bd1aad47b33 upstream.

    When multiple headphone or other detectable output pins are present,
    the power-map has to be updated after resume appropriately, but the
    current driver doesn't check all pins but only the first pin (since
    it's enough to check it for the mute-behavior). This resulted in the
    silent output from the secondary outputs after PM resume.

    This patch fixes the problem by checking all pins at (re-)init time.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740347

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 4808d12d1dddb046ec86425e5f6766f02e950292 upstream.

    Currently the driver checks only the out_mix_path[] for the primary
    output route for judging whether to create the loopback-mixing control
    or not. But, there are cases where aamix-routing is available only on
    headphone or speaker paths but not on the primary output path. So, the
    driver ignores such cases inappropriately.

    This patch fixes the check of the loopback-mixing control by testing
    all mix-routing paths.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 3a90274de3548ebb2aabfbf488cea8e275a73dc6 upstream.

    When an invalid NID is given, get_wcaps() returns zero as the error,
    but get_wcaps_type() takes it as the normal value and returns a bogus
    AC_WID_AUD_OUT value. This confuses the parser.

    With this patch, get_wcaps_type() returns -1 when value 0 is given,
    i.e. an invalid NID is passed to get_wcaps().

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740118

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit de4da59e480cdf1075b33dbaf8078fc87bc52241 upstream.

    These laptops can work well with the auto-parser and their BIOS setups,
    and in addition, the auto-parser fixes the problem with S3/S4 where
    the unsol event handling is killed after resume due to fallback to the
    single-cmd mode.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740115

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai