15 Dec, 2015

1 commit


10 Nov, 2015

2 commits

  • commit d289619a219dd01e255d7b5e30f9171b25efea48 upstream.

    The HDA codec driver issues snd_hda_codec_reset() at the error path of
    PCM build. This was needed in the earlier code base, but the recent
    rewrite to use the standard bus binding made this a deadlock:
    modprobe D 0000000000000005 0 720 716 0x00000080
    Call Trace:
    [] schedule+0x3e/0x90
    [] schedule_preempt_disabled+0x15/0x20
    [] __mutex_lock_slowpath+0xb5/0x120
    [] mutex_lock+0x1b/0x30
    [] device_release_driver+0x1b/0x30
    [] bus_remove_device+0x105/0x180
    [] device_del+0x139/0x260
    [] snd_hdac_device_unregister+0x25/0x30 [snd_hda_core]
    [] snd_hda_codec_reset+0x2a/0x70 [snd_hda_codec]
    [] snd_hda_codec_build_pcms+0x18b/0x1b0 [snd_hda_codec]
    [] hda_codec_driver_probe+0xbe/0x140 [snd_hda_codec]
    [] driver_probe_device+0x1f4/0x460
    [] __driver_attach+0x90/0xa0
    [] bus_for_each_dev+0x64/0xa0
    [] driver_attach+0x1e/0x20
    [] bus_add_driver+0x1eb/0x280
    [] driver_register+0x60/0xe0
    [] __hda_codec_driver_register+0x5a/0x60 [snd_hda_codec]
    [] realtek_driver_init+0x1e/0x1000 [snd_hda_codec_realtek]
    [] do_one_initcall+0xb3/0x200
    [] do_init_module+0x60/0x1f8
    [] load_module+0x1653/0x1bd0
    [] SYSC_finit_module+0x98/0xc0
    [] SyS_finit_module+0xe/0x10
    [] entry_SYSCALL_64_fastpath+0x16/0x75

    The simple fix is just to remove this call, since we don't need to
    think about unbinding at there any longer.

    Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=948758
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit e8d65a8d985271a102f07c7456da5b86c19ffe16 upstream.

    Add the appropriate quirk to indicate the Lenovo G50-80 has a stereo
    mic input where one channel has reverse polarity.

    Alsa-info available at:
    https://launchpadlibrarian.net/220846272/AlsaInfo.txt

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

    David Henningsson
     

23 Oct, 2015

4 commits

  • commit c7e1008048a97148d3aecae742f66fb2f944644c upstream.

    The recent widget power saving introduced some unavoidable click
    noises on old IDT 92HD73xx chips while it still seems working on the
    compatible new chips. In the bugzilla, we tried lots of tests and
    workarounds, but they didn't help much. So, let's disable the feature
    for these specific chips as the least (but safest) fix.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104981
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit e8ff581f7ac2bc3b8886094b7ca635dcc4d1b0e9 upstream.

    The MacBookPro 12,1 has the same setup as the 11 for controlling the
    status of the optical audio light. Simply apply the existing workaround
    to the subsystem ID for the 12,1.

    [sorted the fixup entry by tiwai]

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105401
    Signed-off-by: John Flatness
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    John Flatness
     
  • commit d05ea7da0e8f6df3c62cfee75538f347cb3d89ef upstream.

    Much like all the other Lenovo laptops, add a quirk to make
    sound work with docking.

    Reported-and-tested-by: lacknerflo@gmail.com
    Signed-off-by: Laura Abbott
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Laura Abbott
     
  • commit 7f57d803ee03730d570dc59a9e3e4842b58dd5cc upstream.

    Lenovo Thinkpads with recent Realtek codecs seem suffering from click
    noises at power transition since the introduction of widget power
    saving in 4.1 kernel. Although this might be solved by some delays in
    appropriate points, as a quick workaround, just disable the
    power_save_node feature for now. The gain it gives is relatively
    small, and this makes the situation back to pre 4.1 time.

    This patch ended up with a bit more code changes than usual because
    the existing fixup for Thinkpads is highly chained. Instead of adding
    yet another chain, combine a few of them into a single fixup entry, as
    a gratis cleanup.

    Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=943982
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

30 Sep, 2015

4 commits

  • commit 467e1436ba85f78b8c4610c4549eb255a8211c42 upstream.

    The M3800 is very minor workstation variant of the XPS 15 which has
    already been patched for this issue. I figured it's probably more
    important for this version of the laptop to be patched than the
    regular XPS as Dell sells is pre-configured with Ubuntu to be used as
    a Linux workstation. I have tested the patch on my the hardware on
    Linux 4.2.0.

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

    Niranjan Sivakumar
     
  • commit 1adecc6755e1e4193b5618ddb2e107f6d6e88f4b upstream.

    Dell laptop has a series model to use the same codec but different subsystem ID.
    At the same time they happens the white noise by login screen and headphone;
    for fixing them together, I only can add these IDs to FIXUP function ALC292_FIXUP_DISABLE_AAMIX,
    then try to solve such the similar issues.

    Codec: Realtek ALC3235
    Vendor Id: 0x10ec0293
    Subsystem Id: 0x102806dd
    Subsystem Id: 0x102806df
    Subsystem Id: 0x102806e0

    BugLink: https://bugs.launchpad.net/bugs/1492132
    Signed-off-by: Woodrow Shen
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Woodrow Shen
     
  • commit a161574e200ae63a5042120e0d8c36830e81bde3 upstream.

    It turned out that the machine has a bass speaker, so take a correct
    fixup entry.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit bb148bdeb0ab16fc0ae8009799471e4d7180073b upstream.

    According to the bug report, FSC Amilo laptops with ALC880 can detect
    the headphone jack but currently the driver disables it. It's partly
    intentionally, as non-working jack detect was reported in the past.
    Let's enable now.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

14 Sep, 2015

5 commits

  • commit c7e69ae6b4ff49edf50180c0a32f3dd9d7967e31 upstream.

    After a for-loop was replaced by list_for_each_entry, see
    Commit bbbc7e8502c9 ("ALSA: hda - Allocate hda_pcm objects dynamically"),
    Commit 751e2216899c ("ALSA: hda: fix possible null dereference"),
    a possible NULL pointer dereference has been introduced; this patch adds
    the NULL check on pcm->pcm, while leaving a potentially superfluous
    check on pcm itself untouched.

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

    Markus Osterhoff
     
  • commit c7cd0ef66aade29e37ee08821a0e195ee776c6e6 upstream.

    The widget power-saving code tries to turn up/down the power of each
    widget in the I/O paths that are modified at each jack plug/unplug.
    The recent report revealed that the power activation leaves some
    widgets unpowered after plugging. This is because
    snd_hda_activate_path() turns on path->active flag at the end of the
    function while the path power management is done before that. Then
    it's regarded as if nothing is active, and the driver turns off the
    power.

    The fix is simply to set the flag at the beginning of the function,
    before trying to power up.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 9d2b48f7304aafaefbf0794a556ab4e307929d24 upstream.

    The is_active_nid_for_any() function in the generic parser is supposed
    to check all connections from/to the given widget, but the current
    code checks only the first input connection (index = 0).

    This patch corrects the code to check all inputs by passing -1 to
    index argument.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit f6b28e4ded45bb91bc4cd115d55e35badedfce5f upstream.

    On shutdown/reboot of CX20722, first shut down all EAPDs, then
    shut down the afg node to D3.

    Failure to do so can lead to spurious noises from the internal speaker
    directly after reboot (and before the codec is reinitialized again, i e
    in BIOS setup or GRUB menus).

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

    David Henningsson
     
  • commit 7ccb0a9917a511de1d5f92980f26885484d9a914 upstream.

    Dell laptop causes the white noise by login screen and headphone,
    and the fixup function ALC292_FIXUP_DISABLE_AAMIX can eliminate this
    noise.

    Codec: Realtek ALC3235
    Vendor Id: 0x10ec0293
    Subsystem Id: 0x102806db

    BugLink: https://bugs.launchpad.net/bugs/1484334
    Signed-off-by: Woodrow Shen
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Woodrow Shen
     

17 Aug, 2015

2 commits

  • commit 73851b36fe73819f8c201971e913324d4846a7ea upstream.

    The fixup ALC292_FIXUP_DISABLE_AAMIX can fix the white noise of
    the headphone on this Dell machine.

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

    Hui Wang
     
  • commit 44008f0896ae205b02b0882dbf807f0de149efc4 upstream.

    Smatch complains that we have nested checks for "spdif_present". It
    turns out the current behavior isn't correct, we should remove the first
    check and keep the second.

    Fixes: 1077a024812d ('ALSA: hda - Use generic parser for Cirrus codec driver')
    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     

11 Aug, 2015

7 commits

  • commit 649ccd08534ee26deb2e5b08509800d0e95167f5 upstream.

    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
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 3a05d12f46cb95a6a685114819363a56e6170996 upstream.

    Dell Vostro 5480 (1028:069a) needs the very same quirk used for Vostro
    5470 model to make bass speakers properly working.

    Reported-and-tested-by: Paulo Roberto de Oliveira Castro
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit b9d9c9efc292dd0ffe172780f915ed74eba3556c upstream.

    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
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit cba59972a1191a0c1647a52fe745eed7a4b34b38 upstream.

    Without this patch, the headset mic will not work on this machine.

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

    David Henningsson
     
  • commit 6c3d91193d829bf58a35a10650415b05a736ca6c upstream.

    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
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Aaron Plattner
     
  • commit 5022813ddb28b7679e8285812d52aaeb7e1e7657 upstream.

    Fixes audio problems on newer asics

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

    Maruthi Srinivas Bayyavarapu
     
  • commit 0420694dddeb9e269a1ab2129a0119a5cea294a4 upstream.

    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
    Signed-off-by: Mateusz Sylwestrzak
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Mateusz Sylwestrzak
     

22 Jul, 2015

7 commits

  • commit 4275554dccdf0afac07b2b638ba7456095629558 upstream.

    Dell E7450 [0128:062e] needs the same quirk as other E7xx models.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100571
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 4df3fd1700abbb53bd874143dfd1f9ac9e7cbf4b upstream.

    Fujitsu Lifebook E780 sets the sequence number 0x0f to only only of
    the two headphones, thus the driver tries to assign another as the
    line-out, and this results in the inconsistent mapping between the
    created jack ctl and the actual I/O. Due to this, PulseAudio doesn't
    handle it properly and gets the silent output.

    The fix is to ignore the non-HP sequencer checks.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=99681
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 7819717b11346b8a5420b223b46600e394049c66 upstream.

    Acer Aspire V5 with ALC282 codec needs the similar quirk like Dell
    laptops to support the headset mic. The headset mic pin is 0x19 and
    it's not exposed by BIOS, thus we need to fix the pincfg as well.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 831bfdf9520e389357cfeee42a6174a73ce7bdb7 upstream.

    Those FIXUPs were applied to the machines through pin quirks, but
    recently the PCI_QUIRK makes them can't apply to the machines.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=99851
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Hui Wang
     
  • commit 735c75cf4d434862e38c01dcfb2ce8d2fcb9035f upstream.

    The widget power-save that was enabled in 4.1 kernel seems resulting
    in the silent output on VIA codecs by some reason. Some widgets get
    wrong power states.

    As a quick fix, turn this flag off while keeping power_down_unused
    flag. This will bring back to the state of 4.0.x.

    Fixes: 688b12cc3ca8 ('ALSA: hda - Use the new power control for VIA codecs')
    Reported-and-tested-by: Harald Dunkel
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 650474fb737c3e0ea0f6ab8e43c2cd161080ce5c upstream.

    Fixes audio problems on newer asics.

    Noticed by: Kelly Anderson
    Signed-off-by: Alex Deucher
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Alex Deucher
     
  • commit ec56af67a10a0d82b79027878a81fce08d002d50 upstream.

    Thinkpad X250, when attached to a dock, has two headphone outs but
    no line out. Make sure we don't try to turn this into one headphone
    and one line out (since that disables the headphone amp on the dock).

    Alsa-info at http://www.alsa-project.org/db/?f=36f8764e1d782397928feec715d0ef90dfddd4c1

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

    David Henningsson
     

16 Jun, 2015

2 commits

  • When CONFIG_SND_HDA_I915=n, we get a compile warning:
    sound/pci/hda/hda_intel.c: In function ‘azx_probe_continue’:
    sound/pci/hda/hda_intel.c:1882:2: warning: label ‘skip_i915’ defined but not used [-Wunused-label]

    Fix it by putting again ifdef to it. Sigh.

    Fixes: bf06848bdbe5 ('ALSA: hda - Continue probing even if i915 binding fails')
    Reported-by: Borislav Petkov
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The new Dell XPS13 also requires the similar quirk for fixing the
    noisy outputs. (But, as the codec was changed, now the fixup for
    Latitude is used instead.)

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=99851
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

15 Jun, 2015

2 commits

  • We still got a report that the audio crackles and noises occur with
    the recent 4.1 kernels on Dell machines. These machines seem to need
    similar workarounds that have been applied to the recent Dell XPS 13
    models. Since the codec of these machines (Dell Latitute E7240 and
    E7440) is different from XPS 13's one, we need a new fixup entry.

    Also, it was confirmed that the previous workaround to disable the
    widget power-save (commit [219f47e4f964: ALSA: hda - Disable widget
    power-saving for ALC292 & co]) is no longer needed after this fix.
    So, this patch includes the partial revert of the commit, too.

    Reported-and-tested-by: Mihai Donțu
    Tested-by: Jonathan McDowell
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • On a HP Envy TouchSmart laptop, there are 2 speakers (main speaker
    and subwoofer speaker), 1 headphone and 2 DACs, without this fixup,
    the headphone will be assigned to a DAC and the 2 speakers will be
    assigned to another DAC, this assignment makes the surround-2.1
    channels invalid.

    To fix it, here using a DAC/pin preference map to bind the main
    speaker to 1 DAC and the subwoofer speaker will be assigned to another
    DAC.

    Cc:
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     

12 Jun, 2015

1 commit

  • The previous patch tried to continue the probe if i915 binding fails.
    For for simplicity reason, we haven't implemented abort even for
    controller chips that are dedicated for HDMI/DP on HSW and BDW.
    However, Mengdong suggested that this can be dangerous; BIOS may
    disable gfx power well although the PCI entry for HD-audio is left,
    and this may result in the unexpected behavior, kernel errors, etc.

    For avoiding this situation, abort the probe at i915 binding failure
    only for HSW/BDW chips selectively. For other chips, it still
    continues.

    Fixes: bf06848bdbe5 ('ALSA: hda - Continue probing even if i915 binding fails')
    Reported-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

11 Jun, 2015

2 commits

  • Yet another regression by the transition to regmap cache; for better
    usability, we had the fake mute control using the zero amp value for
    Conexant codecs, and this was forgotten in the new hda core code.

    Since the bits 4-7 are unused for the amp registers (as we follow the
    syntax of AMP_GET verb), the bit 4 is now used to indicate the fake
    mute. For setting this flag, snd_hda_codec_amp_update() becomes a
    function from a simple macro. The bonus is that it gained a proper
    function description.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Currently snd-hda-intel driver aborts the probing of Intel HD-audio
    controller with i915 power well management when binding with i915
    driver via hda_i915_init() fails. This is no big problem for Haswell
    and Broadwell where the HD-audio controllers are dedicated to
    HDMI/DP, thus i915 link is mandatory. However, Skylake, Baytrail and
    Braswell have only one controller and both HDMI/DP and analog codecs
    share the same bus. Thus, even if HDMI/DP isn't usable, we should
    keep the controller working for other codecs.

    For fixing this, this patch simply allows continuing the probing even
    if hda_i915_init() call fails. This may leave stale sound components
    for HDMI/DP devices that are unbound with graphics. We could abort
    the probing selectively, but from the code simplicity POV, it's better
    to continue in all cases.

    Reported-by: Libin Yang
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

09 Jun, 2015

1 commit