13 Apr, 2012

1 commit


03 Apr, 2012

3 commits

  • commit 25dc16f69892182192b1234594fd3cf342ad4195 upstream.

    A previous commit af65cbf296 (ALSA: hdmi: fix printout of SAD sampling
    rates) fixed the sample rates shown in /proc/asound/cardX/eldY and
    kernel log to not be entirely wrong. However, a missing rate from the
    array added in the patch causes HDMI rates 88.2 kHz, 96 kHz, 176.4 kHz,
    and 192 kHz to be shown as 96 kHz, 176.4 kHz, 192 kHz, and 384 kHz,
    respectively.

    Fix the reporting by adding the ALSA rate 64 kHz into the conversion
    array between 48 kHz and 88.2 kHz.

    Signed-off-by: Anssi Hannula
    Cc: Pierre-Louis Bossart
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Anssi Hannula
     
  • commit 273b72c8ce6b28df6b49423d775c3e59072c73c5 upstream.

    PXA's SSP engine fails to take its current channel phase into account
    when enabling a stream while the engine is already running. This
    results in randomly swapped left/right channels on either the record
    or the playback side, depending on which one was enabled first.

    The following patch fixes this by factoring out the bit field
    modifications in question to a separate function that pauses the
    engine temporarily, modifies the bits and kicks it off again
    afterwards. Appearantly, a transition of SSCR0_SSE syncs both
    directions properly.

    The patch has been rolled out to quite a number of devices over the
    last weeks and seems to fix the issue reliably.

    Signed-off-by: Daniel Mack
    Reported-and-tested-by: Sven Neumann
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Daniel Mack
     
  • commit 70ac07bb633dee75ac554195b9a4d69adfa7803c upstream.

    The WM8776 codec driver requires the machine driver to set one of the
    SND_SOC_DAIFMT_CBx_xxx values. The P1022DS machine driver should be setting
    SND_SOC_DAIFMT_CBM_CFM, but since that value was zero, no one noticed.

    Commit 75d9ac46 ("ASoC: Allow DAI formats to be specified in the
    dai_link"), however, changed the value of SND_SOC_DAIFMT_CBM_CFM from zero
    to a non-zero value, which means that it now needs to be specifically set
    by the machine driver.

    We also set SND_SOC_DAIFMT_NB_NF, for the same reason.

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

    Timur Tabi
     

20 Mar, 2012

2 commits


13 Mar, 2012

5 commits

  • commit 5ed80a75b248bfaf840ea6b38f941edcf6ee7dc7 upstream.

    According to i.MX27 Reference Manual (p 1593) TXBIT0 bit selects
    whether the most significant or the less significant part of the
    data word written to the FIFO is transmitted.

    As DSP_A is the same as DSP_B with a data offset of 1 bit, it
    doesn't make any sense to remove TXBIT0 bit here.

    Signed-off-by: Javier Martin
    Acked-by: Sascha Hauer
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Javier Martin
     
  • commit 7679e42ec833ed70aa34790a5f39dcb7e5bda4fe upstream.

    Recent enhancements in the bias management means that we might not be
    in standby when the CODEC is idle and can have active widgets without
    being in full power mode but the shutdown functionality assumes these
    things. Add checks for the bias level at each stage so that we don't
    do transitions other than the ON->PREPARE->STANDBY->OFF ones that the
    drivers are expecting.

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

    Mark Brown
     
  • commit 7bff172a352a2fbe9856bba517d71a2072aab041 upstream.

    A bug report with an old Sony laptop showed that we can't rely on BIOS
    setting the pins of headphones but the driver should set always by
    itself.

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

    Takashi Iwai
     
  • commit 3868137ea41866773e75d9ac4b9988dcc361ff1d upstream.

    Some codecs don't supply the mute amp-capabilities although the lowest
    volume gives the mute. It'd be handy if the parser provides the mute
    mixers in such a case.

    This patch adds an extension amp-cap bit (which is used only in the
    driver) to represent the min volume = mute state. Also modified the
    amp cache code to support the fake mute feature when this bit is set
    but the real mute bit is unset.

    In addition, conexant cx5051 parser uses this new feature to implement
    the missing mute controls.

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

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

    Takashi Iwai
     
  • commit 068b939431486f524438330b0848a8222e33d421 upstream.

    When there are multiple input sources, the driver wrongly overwrites with
    the value of the last input source on other slots at resume. Thus the
    primary input source may be shown wrongly.

    Reported-and-tested-by: Julian Sikorski
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

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

7 commits