31 Jul, 2015

1 commit

  • MacBook Pro 5,2 with ALC889 codec had already a fixup entry, but this
    seems not working correctly, a fix for pin NID 0x15 is needed in
    addition. It's equivalent with the fixup for MacBook Air 1,1, so use
    this instead.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102131
    Reported-and-tested-by: Jeffery Miller
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

30 Jul, 2015

1 commit

  • PM ops could be triggered before HDA is done initializing
    and cause PM to set HDA controller to D3Hot. This can result
    in "CORB reset timeout#2, CORBRP = 65535" and "no codecs
    initialized". Additionally, PM ops can be triggered before
    azx_probe_continue finishes (async probe). This can result
    in a NULL deref kernel crash.

    To fix this, avoid PM ops if !chip->running.

    Signed-off-by: U. Artie Eoff
    Signed-off-by: Takashi Iwai

    U. Artie Eoff
     

29 Jul, 2015

2 commits


27 Jul, 2015

3 commits

  • The new Dell laptop with codec 256 can't detect headset mic when
    headset was inserted on the machine. From alsa-info, we check
    init_pin_configs and need to define the new register value for pin
    0x1d & 0x1e because the original macro ALC256_STANDARD_PINS can't
    match pin definition. Also, the macro ALC256_STANDARD_PINS is
    simplified by removing them. This makes headset mic works on laptop.

    Codec: Realtek ALC256
    Vendor Id: 0x10ec0256
    Subsystem Id: 0x102806f2

    BugLink: https://bugs.launchpad.net/bugs/1478497
    Signed-off-by: Woodrow Shen
    Signed-off-by: Takashi Iwai

    Woodrow Shen
     
  • Toshiba Satellite S50D has another model with a different PCI SSID
    (1179:fa93) while the previous fixup was for 1179:fa91. Adjust the
    fixup entry with SND_PCI_QUIRK_MASK() to match with both devices.

    Reported-by: Tim Sample
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Fireworks uses TSB43CB43(IceLynx-Micro) as its IEC 61883-1/6 interface.
    This chip includes ARM7 core, and loads and runs program. The firmware
    is stored in on-board memory and loaded every powering-on.

    Echo Audio ships several versions of firmwares for each model. These
    firmwares have each quirk and the quirk changes a sequence of packets.

    AudioFire2 has a quirk to transfer a first packet with non-zero in
    its dbc field. This causes ALSA Fireworks driver to detect discontinuity.
    As long as I investigated, firmware 5.7, 5.7.6 and 5.8 have this quirk.

    This commit adds a support for the quirk to handle AudioFire2 packets.
    For safe, CIP_SKIP_INIT_DBC_CHECK is applied to all versions of
    AudioFire2's firmwares.

    02 00050002 90ffffff
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

25 Jul, 2015

3 commits


24 Jul, 2015

7 commits


22 Jul, 2015

4 commits


21 Jul, 2015

2 commits

  • Commit fdb6eb0a1287 ("ASoC: dapm: Modify widget stream name according to
    prefix") fixed the case where a DAPM route between a DAI widget and a
    DAC/ADC/AIF widget with a matching stream name was not created when the
    DAPM context was using a prefix.

    Unfortunately the patch introduced a few issues on its own like leaking the
    dynamically allocated stream name memory and also not checking whether the
    allocation succeeded in the first place.

    It is also incomplete in that it still does not handle the case where
    stream name of the widget is a substring of the stream name of the DAI,
    which is explicitly allowed and works fine if no DAPM prefix is used.

    Revert the commit and take a slightly different approach to solving the
    issue. Instead of comparing the widget's stream name to the name of the DAI
    widget compare it to the stream name of the DAI widget. The stream name of
    the DAI widget is identical to the name of the DAI widget except that it
    wont have the DAPM prefix added. So this approach behaves identical
    regardless to whether the DAPM context uses a prefix or not.

    We don't have to worry about potentially matching with a widget with the
    same stream name, but from a different DAPM context with a different
    prefix, since the code already makes sure that both the DAI widget and the
    matched widget are from the same DAPM context.

    Fixes: fdb6eb0a1287 ("ASoC: dapm: Modify widget stream name according to prefix")
    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Lars-Peter Clausen
     
  • Vendor ID 0x10de007d is used by a yet-to-be-named GPU chip.

    This chip also has the 2-ch audio swapping bug, so patch_nvhdmi is
    appropriate here.

    Signed-off-by: Aaron Plattner
    Cc:
    Signed-off-by: Takashi Iwai

    Aaron Plattner
     

20 Jul, 2015

2 commits

  • Fixes audio problems on newer asics

    Signed-off-by: Maruthi Bayyavarapu
    Cc: stable@vger.kernel.org
    Signed-off-by: Takashi Iwai

    Maruthi Srinivas Bayyavarapu
     
  • When the controller is powered up but the HDMI codec is powered down
    on Skylake, the power well is turned off. When the codec is then
    powered up again, we need to poke the codec a little extra to make
    sure it wakes up. Otherwise we'll get sad "no response from codec"
    messages and broken audio.

    This also changes azx_runtime_resume to actually call
    snd_hdac_set_codec_wakeup for Skylake (before STATETS read).
    (Otherwise it would only have been called for Haswell and Broadwell,
    which both do not need it, so this probably was not the author's
    intention.)

    Signed-off-by: David Henningsson
    Reviewed-by: Libin Yang
    Signed-off-by: Takashi Iwai

    David Henningsson
     

19 Jul, 2015

1 commit

  • Acer Aspire V5 with the ALC282 codec is given the wrong value for the
    0x19 PIN by the laptop's BIOS. Overriding it with the correct value
    adds support for the headset microphone which would not otherwise be
    visible in the system.

    The fix is based on commit 7819717b1134 with a similar quirk for Acer
    Aspire with the ALC269 codec.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201
    Cc:
    Signed-off-by: Mateusz Sylwestrzak
    Signed-off-by: Takashi Iwai

    Mateusz Sylwestrzak
     

18 Jul, 2015

2 commits


17 Jul, 2015

2 commits

  • With the nonatomic PCM ops, the system may spew lockdep warnings like:

    =============================================
    [ INFO: possible recursive locking detected ]
    4.2.0-rc1-jeejaval3 #12 Not tainted
    ---------------------------------------------
    aplay/4029 is trying to acquire lock:
    (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_stream_lock+0x43/0x60

    but task is already holding lock:
    (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_action_nonatomic+0x29/0x80

    other info that might help us debug this:
    Possible unsafe locking scenario:

    CPU0
    ----
    lock(snd_pcm_link_rwsem);
    lock(snd_pcm_link_rwsem);

    Although this is false-positive as the rwsem is taken always as
    read-only for these code paths, it's certainly annoying to see this at
    any occasion. A simple fix is to use down_read_nested() in
    snd_pcm_stream_lock() that can be called inside another lock.

    Reported-by: Vinod Koul
    Reported-by: Jeeja Kp
    Tested-by: Jeeja Kp
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This fixes kernel panic on boot, if rt5645->codec is NULL when
    rt5645_jack_detect_work is first called.

    rt5645_jack_detect_work needs rt5645->codec to be initialized to setup
    dapm pins. Also, reporting jack events is useless, as the jacks cannot
    be set before the codec is ready.

    Since we manually call the interrupt handler in
    rt5645_set_jack_detect, the initial jack state will be reported
    correctly, and dapm pins will be setup at that time.

    Signed-off-by: Nicolas Boichat
    Signed-off-by: Mark Brown

    Nicolas Boichat
     

16 Jul, 2015

2 commits

  • This laptop needs GPIO4 pulled high to enable the headphone amplifier,
    and has a mute LED on GPIO3. I modelled the patch on the existing
    GPIO4 code which pulls the line low for the same purpose; this time,
    the HP amp line is pulled high.

    v2: Disable the headphone amplifier when no headphone is connected.
    Don't disable power savings to preserve the LED state.

    v3: Remove headset-specific hooks and code; this is just a headphone.

    Signed-off-by: Keith Packard
    Signed-off-by: Takashi Iwai

    Keith Packard
     
  • The usage_count variable was read before it was set to the correct
    value, due to which the firmware load was failing. Because of this
    IPC messages sent to the firmware were timing out causing a delay
    of about 1 second while playing audio from the internal speakers.

    With this patch the usage_count is read after the function call
    pm_runtime_get_sync which will increment the usage_count variable
    and the firmware load is successful and all the IPC messages are
    processed correctly.

    Signed-off-by: Shilpa Sreeramalu
    Signed-off-by: Fang, Yang A
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Shilpa Sreeramalu
     

14 Jul, 2015

2 commits

  • When a monitor stream is active, the next PCM stream access results in
    EBUSY error because of the check in line6_stream_start(). Fix this by
    just skipping the submission of pending URBs when the stream is
    already running instead.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101431
    Cc: # v4.0+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Mixer control for widgets can't be created if the info is NULL. So assign
    the correct info for this.

    Signed-off-by: Jeeja KP
    Signed-off-by: Subhransu S. Prusty
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Jeeja KP
     

13 Jul, 2015

2 commits


09 Jul, 2015

4 commits