04 Jan, 2020

1 commit

  • Pull sound fixes from Takashi Iwai:
    "Nothing to worry at this stage but all nice small changes:

    - A regression fix for AMD GPU detection in HD-audio

    - A long-standing sleep-in-atomic fix for an ice1724 device

    - Usual suspects, the device-specific quirks for HD- and USB-audio"

    * tag 'sound-5.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda/realtek - Enable the bass speaker of ASUS UX431FLC
    ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
    ALSA: hda/realtek - Add Bass Speaker and fixed dac for bass speaker
    ALSA: hda - Apply sync-write workaround to old Intel platforms, too
    ALSA: hda/hdmi - fix atpx_present when CLASS is not VGA
    ALSA: usb-audio: fix set_format altsetting sanity check
    ALSA: hda/realtek - Add headset Mic no shutup for ALC283
    ALSA: usb-audio: set the interface format after resume on Dell WD19

    Linus Torvalds
     

30 Dec, 2019

1 commit

  • ASUS reported that there's an bass speaker in addition to internal
    speaker and it uses DAC 0x02. It was not enabled in the commit
    436e25505f34 ("ALSA: hda/realtek - Enable internal speaker of ASUS
    UX431FLC") which only enables the amplifier and the front speaker.
    This commit enables the bass speaker on top of the aforementioned
    work to improve the acoustic experience.

    Fixes: 436e25505f34 ("ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC")
    Signed-off-by: Chris Chiu
    Signed-off-by: Jian-Hong Pan
    Cc:
    Link: https://lore.kernel.org/r/20191230031118.95076-1-chiu@endlessm.com
    Signed-off-by: Takashi Iwai

    Chris Chiu
     

29 Dec, 2019

1 commit

  • Jia-Ju Bai reported a possible sleep-in-atomic scenario in the ice1724
    driver with Infrasonic Quartet support code: namely, ice->set_rate
    callback gets called inside ice->reg_lock spinlock, while the callback
    in quartet.c holds ice->gpio_mutex.

    This patch fixes the invalid call: it simply moves the calls of
    ice->set_rate and ice->set_mclk callbacks outside the spinlock.

    Reported-by: Jia-Ju Bai
    Cc:
    Link: https://lore.kernel.org/r/5d43135e-73b9-a46a-2155-9e91d0dcdf83@gmail.com
    Link: https://lore.kernel.org/r/20191218192606.12866-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

27 Dec, 2019

1 commit


24 Dec, 2019

1 commit

  • Klaus Ethgen reported occasional high CPU usages in his system that
    seem caused by HD-audio driver. The perf output revealed that it's
    in the unsolicited event handling in the workqueue, and the problem
    seems triggered by some communication stall between the controller and
    the codec at the runtime or system resume.

    Actually a similar phenomenon was seen in the past for other Intel
    platforms, and we already applied the workaround to enforce sync-write
    for CORB/RIRB verbs for Skylake and newer chipsets (commit
    2756d9143aa5 "ALSA: hda - Fix intermittent CORB/RIRB stall on Intel
    chips"). Fortunately, the same workaround is applicable to the old
    chipset, and the experiment showed the positive effect.

    Based on the experiment result, this patch enables the sync-write
    workaround for all Intel chipsets. The only reason I hesitated to
    apply this workaround was about the possibly slightly higher CPU usage.
    But if the lack of sync causes a much severer problem even for quite
    old chip, we should think this would be necessary for all Intel chips.

    Reported-by: Klaus Ethgen
    Cc:
    Link: https://lore.kernel.org/r/20191223171833.GA17053@chua
    Link: https://lore.kernel.org/r/20191223221816.32572-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

21 Dec, 2019

1 commit

  • You can't use PCI_BASE_CLASS with pci_get_class(). This
    happens to work by luck on devices with PCI_CLASS_DISPLAY_VGA, but
    misses PCI_CLASS_DISPLAY_OTHER. Add a check for those as well.

    Fixes: 586bc4aab878 ("ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD")
    Signed-off-by: Alex Deucher
    Link: https://lore.kernel.org/r/20191221001702.1338587-1-alexander.deucher@amd.com
    Signed-off-by: Takashi Iwai

    Alex Deucher
     

20 Dec, 2019

1 commit

  • Make sure to check the return value of usb_altnum_to_altsetting() to
    avoid dereferencing a NULL pointer when the requested alternate settings
    is missing.

    The format altsetting number may come from a quirk table and there does
    not seem to be any other validation of it (the corresponding index is
    checked however).

    Fixes: b099b9693d23 ("ALSA: usb-audio: Avoid superfluous usb_set_interface() calls")
    Cc: stable # 4.18
    Signed-off-by: Johan Hovold
    Link: https://lore.kernel.org/r/20191220093134.1248-1-johan@kernel.org
    Signed-off-by: Takashi Iwai

    Johan Hovold
     

19 Dec, 2019

3 commits

  • Chrome machine had humming noise from external speaker plugin at
    codec D3 state.

    Signed-off-by: Kailang Yang
    Cc:
    Link: https://lore.kernel.org/r/2692449396954c6c968f5b75e2660358@realtek.com
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • Recently we found the headset-mic on the Dell Dock WD19 doesn't work
    anymore after s3 (s2i or deep), this problem could be workarounded by
    closing (pcm_close) the app and then reopening (pcm_open) the app, so
    this bug is not easy to be detected by users.

    When problem happens, retire_capture_urb() could still be called
    periodically, but the size of captured data is always 0, it could be
    a firmware bug on the dock. Anyway I found after resuming, the
    snd_usb_pcm_prepare() will be called, and if we forcibly run
    set_format() to set the interface and its endpoint, the capture
    size will be normal again. This problem and workaound also apply to
    playback.

    To fix it in the kernel, add a quirk to let set_format() run
    forcibly once after resume.

    Signed-off-by: Hui Wang
    Cc:
    Link: https://lore.kernel.org/r/20191218132650.6303-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • Pull sound fixes from Takashi Iwai:
    "A slightly high amount at this time, but all good and small fixes:

    - A PCM core fix that initializes the buffer properly for avoiding
    information leaks; it is a long-standing minor problem, but good to
    fix better now

    - A few ASoC core fixes for the init / cleanup ordering issues that
    surfaced after the recent refactoring

    - Lots of SOF and topology-related fixes went in, as usual as such
    hot topics

    - Several ASoC codec and platform-specific small fixes: wm89xx,
    realtek, and max98090, AMD, Intel-SST

    - A fix for the previous incomplete regression of HD-audio, now
    hitting Nvidia HDMI

    - A few HD-audio CA0132 codec fixes"

    * tag 'sound-5.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (27 commits)
    ALSA: hda - Downgrade error message for single-cmd fallback
    ASoC: wm8962: fix lambda value
    ALSA: hda: Fix regression by strip mask fix
    ALSA: hda/ca0132 - Fix work handling in delayed HP detection
    ALSA: hda/ca0132 - Avoid endless loop
    ALSA: hda/ca0132 - Keep power on during processing DSP response
    ALSA: pcm: Avoid possible info leaks from PCM stream buffers
    ASoC: Intel: common: work-around incorrect ACPI HID for CML boards
    ASoC: SOF: Intel: split cht and byt debug window sizes
    ASoC: SOF: loader: fix snd_sof_fw_parse_ext_data
    ASoC: SOF: loader: snd_sof_fw_parse_ext_data log warning on unknown header
    ASoC: simple-card: Don't create separate link when platform is present
    ASoC: topology: Check return value for soc_tplg_pcm_create()
    ASoC: topology: Check return value for snd_soc_add_dai_link()
    ASoC: core: only flush inited work during free
    ASoC: Intel: bytcr_rt5640: Update quirk for Teclast X89
    ASoC: core: Init pcm runtime work early to avoid warnings
    ASoC: Intel: sst: Add missing include
    ASoC: max98090: fix possible race conditions
    ASoC: max98090: exit workaround earlier if PLL is locked
    ...

    Linus Torvalds
     

17 Dec, 2019

1 commit


16 Dec, 2019

2 commits

  • We made the error message for the CORB/RIRB communication clearer by
    upgrading to dev_WARN() so that user can notice better. But this
    struck us like a boomerang: now it caught syzbot and reported back as
    a fatal issue although it's not really any too serious bug that worth
    for stopping the whole system.

    OK, OK, let's be softy, downgrade it to the standard dev_err() again.

    Fixes: dd65f7e19c69 ("ALSA: hda - Show the fatal CORB/RIRB error more clearly")
    Reported-by: syzbot+b3028ac3933f5c466389@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20191216151224.30013-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • According to user manual, it is required that FLL_LAMBDA > 0
    in all cases (Integer and Franctional modes).

    Fixes: 9a76f1ff6e29 ("ASoC: Add initial WM8962 CODEC driver")
    Signed-off-by: Shengjiu Wang
    Acked-by: Charles Keepax
    Link: https://lore.kernel.org/r/1576065442-19763-1-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown

    Shengjiu Wang
     

15 Dec, 2019

5 commits

  • The commit e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only
    when needed") tried to address the regression by the unconditional
    application of the stripe mask, but this caused yet another
    regression for the previously working devices. Namely, the patch
    clears the azx_dev->stripe flag at snd_hdac_stream_clear(), but this
    may be called multiple times before restarting the stream, so this
    ended up with clearance of the flag for the whole time.

    This patch fixes the regression by moving the azx_dev->stripe flag
    clearance at the counter-part, the close callback of HDMI codec
    driver instead.

    Fixes: e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only when needed")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205855
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477
    Cc:
    Link: https://lore.kernel.org/r/20191214175217.31852-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • CA0132 has the delayed HP jack detection code that is invoked from the
    unsol handler, but it does a few weird things: it contains the cancel
    of a work inside the work handler, and yet it misses the cancel-sync
    call at (runtime-)suspend. This patch addresses those issues.

    Fixes: 15c2b3cc09a3 ("ALSA: hda/ca0132 - Fix possible workqueue stall")
    Cc:
    Link: https://lore.kernel.org/r/20191213085111.22855-4-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Introduce a timeout to dspio_clear_response_queue() so that it won't
    be caught in an endless loop even if the hardware doesn't respond
    properly.

    Fixes: a73d511c4867 ("ALSA: hda/ca0132: Add unsol handler for DSP and jack detection")
    Cc:
    Link: https://lore.kernel.org/r/20191213085111.22855-3-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • We need to keep power on while processing the DSP response via unsol
    event. Each snd_hda_codec_read() call does the power management, so
    it should work normally, but still it's safer to keep the power up for
    the whole function.

    Fixes: a73d511c4867 ("ALSA: hda/ca0132: Add unsol handler for DSP and jack detection")
    Cc:
    Link: https://lore.kernel.org/r/20191213085111.22855-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The current PCM code doesn't initialize explicitly the buffers
    allocated for PCM streams, hence it might leak some uninitialized
    kernel data or previous stream contents by mmapping or reading the
    buffer before actually starting the stream.

    Since this is a common problem, this patch simply adds the clearance
    of the buffer data at hw_params callback. Although this does only
    zero-clear no matter which format is used, which doesn't mean the
    silence for some formats, but it should be OK because the intention is
    just to clear the previous data on the buffer.

    Reported-by: Lionel Koenig
    Cc:
    Link: https://lore.kernel.org/r/20191211155742.3213-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

14 Dec, 2019

1 commit

  • Pull sound fixes from Takashi Iwai:
    "A small collection of fixes.

    The main changes are fixes for a couple of regressions in AMD HD-audio
    and FireWire that were introduced in 5.5-rc1. The rest are small fixes
    for echoaudio and FireWire, as well as a usual Dell HD-audio fixup"

    * tag 'sound-5.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda/realtek - Line-out jack doesn't work on a Dell AIO
    ALSA: hda/hdmi - Fix duplicate unref of pci_dev
    ALSA: fireface: fix return value in error path of isochronous resources reservation
    ALSA: oxfw: fix return value in error path of isochronous resources reservation
    ALSA: firewire-motu: fix double unlocked 'motu->mutex'
    ALSA: echoaudio: simplify get_audio_levels

    Linus Torvalds
     

11 Dec, 2019

2 commits

  • After applying the fixup ALC274_FIXUP_DELL_AIO_LINEOUT_VERB, the
    Line-out jack works well. And instead of adding a new set of pin
    definition in the pin_fixup_tbl, we put a more generic matching entry
    in the fallback_pin_fixup_tbl.

    Cc:
    Signed-off-by: Hui Wang
    Link: https://lore.kernel.org/r/20191211051321.5883-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • Nicholas Johnson reports a null pointer deref as well as a refcount
    underflow upon hot-removal of a Thunderbolt-attached AMD eGPU.
    He's bisected the issue down to commit 586bc4aab878 ("ALSA: hda/hdmi -
    fix vgaswitcheroo detection for AMD").

    The commit iterates over PCI devices using pci_get_class() and
    unreferences each device found, even though pci_get_class()
    subsequently unreferences the device as well. Fix it.

    Fixes: 586bc4aab878 ("ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD")
    Link: https://lore.kernel.org/r/PSXP216MB0438BFEAA0617283A834E11580580@PSXP216MB0438.KORP216.PROD.OUTLOOK.COM/
    Reported-and-tested-by: Nicholas Johnson
    Signed-off-by: Lukas Wunner
    Reviewed-by: Alex Deucher
    Cc: Mika Westerberg
    Cc: Alexander Deucher
    Cc: Bjorn Helgaas
    Link: https://lore.kernel.org/r/77aa6c01aefe1ebc4004e87b0bc714f2759f15c4.1575985006.git.lukas@wunner.de
    Signed-off-by: Takashi Iwai

    Lukas Wunner
     

10 Dec, 2019

10 commits

  • On CML boards with the RT5682 headset codec and RT1011 speaker
    amplifier, the platform firmware exposes three ACPI HIDs
    (10EC5682, 10EC1011 and MX98357A). The last HID is a mistake in
    DSDT tables, which causes the wrong machine driver to be loaded.

    This patch changes the key used to identify boards and changes the
    order of entries in the table to load the correct machine driver.
    The order does matter and should not be modified to work-around this
    firmware issue.

    Signed-off-by: Amery Song
    Signed-off-by: Keyon Jie
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191210004854.16845-9-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Amery Song
     
  • Turns out SSP 3-5 are only available on cht, to avoid dumping on
    undefined registers let's split the definition.

    Signed-off-by: Curtis Malainey
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191210004854.16845-7-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Curtis Malainey
     
  • An error occurs during parsing more than one ext_data from the mailbox, because
    of invalid data offset handling. Fix by removing the incorrect duplicate
    increment of the offset.

    The return value is also reset in the switch case. This does not change the
    behavior but improves readability - there is no longer a need to check what the
    return value of get_ext_windows is.

    Signed-off-by: Karol Trzcinski
    Signed-off-by: Bartosz Kokoszko
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191210004854.16845-4-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Karol Trzcinski
     
  • Added warning log when found some unknown FW boot ext header,
    to improve debuggability.

    Signed-off-by: Karol Trzcinski
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191210004854.16845-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Karol Trzcinski
     
  • In normal sound case all DAIs are detected as CPU-Codec.
    simple_dai_link_of supports the presence of a platform but it counts
    it as a CPU DAI resulting in the creation of an extra link.

    Adding a platform property to a link description like:

    simple-audio-card,dai-link {
    cpu {
    sound-dai = ;
    };
    plat {
    sound-dai = ;
    };
    codec {
    sound-dai = ;
    }

    will result in the creation of two links:
    * sai1 wm8960
    * dsp wm8960

    which is obviously not what we want. We just want one single link
    with:
    * sai1 wm8960 (and platform set to dsp).

    Signed-off-by: Daniel Baluta
    Acked-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/20191209135353.17427-1-daniel.baluta@nxp.com
    Signed-off-by: Mark Brown

    Daniel Baluta
     
  • The return value of soc_tplg_pcm_create() is currently not checked
    in soc_tplg_pcm_elems_load(). If an error is to occur there, the
    topology ignores it and continues loading.

    Fix that by checking the status and rejecting the topology on error.

    Reviewed-by: Ranjani Sridharan
    Signed-off-by: Dragos Tarcatu
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191210003939.15752-3-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Dragos Tarcatu
     
  • snd_soc_add_dai_link() might fail. This situation occurs for
    instance in a very specific use case where a PCM device and a
    Back End DAI link are given identical names in the topology.
    When this happens, soc_new_pcm_runtime() fails and then
    snd_soc_add_dai_link() returns -ENOMEM when called from
    soc_tplg_fe_link_create(). Because of that, the link will not
    get added into the card list, so any attempt to remove it later
    ends up in a panic.

    Fix that by checking the return status and free the memory in case
    of an error.

    Reviewed-by: Ranjani Sridharan
    Signed-off-by: Dragos Tarcatu
    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191210003939.15752-2-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Dragos Tarcatu
     
  • Even if isochronous resources reservation fails, error code doesn't return
    in pcm.hw_params callback.

    Cc: #5.3+
    Fixes: 55162d2bb0e8 ("ALSA: fireface: reserve/release isochronous resources in pcm.hw_params/hw_free callbacks")
    Signed-off-by: Takashi Sakamoto
    Link: https://lore.kernel.org/r/20191209151655.GA8090@workstation
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • Even if isochronous resources reservation fails, error code doesn't return
    in pcm.hw_params callback.

    Cc: #5.3+
    Fixes: 4f380d007052 ("ALSA: oxfw: configure packet format in pcm.hw_params callback")
    Signed-off-by: Takashi Sakamoto
    Link: https://lore.kernel.org/r/20191209151655.GA8090@workstation
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • Replace all the occurrences of FIELD_SIZEOF() with sizeof_field() except
    at places where these are defined. Later patches will remove the unused
    definition of FIELD_SIZEOF().

    This patch is generated using following script:

    EXCLUDE_FILES="include/linux/stddef.h|include/linux/kernel.h"

    git grep -l -e "\bFIELD_SIZEOF\b" | while read file;
    do

    if [[ "$file" =~ $EXCLUDE_FILES ]]; then
    continue
    fi
    sed -i -e 's/\bFIELD_SIZEOF\b/sizeof_field/g' $file;
    done

    Signed-off-by: Pankaj Bharadiya
    Link: https://lore.kernel.org/r/20190924105839.110713-3-pankaj.laxminarayan.bharadiya@intel.com
    Co-developed-by: Kees Cook
    Signed-off-by: Kees Cook
    Acked-by: David Miller # for net

    Pankaj Bharadiya
     

09 Dec, 2019

2 commits

  • There are many paths to soc_free_pcm_runtime which can both have and
    have not yet inited the workqueue yet. When we flush the queue when we
    have not yet inited the queue we cause warnings to be printed.

    An example is soc_cleanup_card_resources which is called by
    snd_soc_bind_card which has multiple failure points before and after
    soc_link_init -> soc_new_pcm which is where the queue is inited.

    Signed-off-by: Curtis Malainey
    Link: https://lore.kernel.org/r/20191128011358.39234-1-cujomalainey@chromium.org
    Signed-off-by: Mark Brown

    Curtis Malainey
     
  • Mutex is doubly unlocked in some error path of pcm.open. This commit fixes
    ALSA firewire-motu driver in Linux kernel v5.5.

    Reported-by: kbuild test robot
    Reported-by: Dan Carpenter
    Fixes: 3fd80b200388 ("ALSA: firewire-motu: use the same size of period for PCM substream in AMDTP streams")
    Fixes: 0f5482e7875b ("ALSA: firewire-motu: share PCM buffer size for both direction")
    Signed-off-by: Takashi Sakamoto
    Link: https://lore.kernel.org/r/20191208232226.6685-1-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

08 Dec, 2019

1 commit

  • The loop optimizer seems to go astray here, and produces some warnings
    that don't seem valid.

    Still, the code can be simplified -- just clear the whole array at the
    beginning, and fill in whatever values are valid on the platform.

    Warnings before this change (GCC 8.2.0 ARM allmodconfig):

    In file included from ../sound/pci/echoaudio/gina24.c:115:
    ../sound/pci/echoaudio/echoaudio.c: In function 'snd_echo_vumeters_get':
    ../sound/pci/echoaudio/echoaudio_dsp.c:647:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]
    In file included from ../sound/pci/echoaudio/layla24.c:112:
    ../sound/pci/echoaudio/echoaudio.c: In function 'snd_echo_vumeters_get':
    ../sound/pci/echoaudio/echoaudio_dsp.c:658:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]
    ../sound/pci/echoaudio/echoaudio_dsp.c:647:9: warning: iteration 1073741824 invokes undefined behavior [-Waggressive-loop-optimizations]

    Signed-off-by: Olof Johansson
    Link: https://lore.kernel.org/r/20191207224953.25944-1-olof@lixom.net
    Signed-off-by: Takashi Iwai

    Olof Johansson
     

07 Dec, 2019

1 commit

  • Pull more sound updates from Takashi Iwai:
    "A few last-minute updates, most of them are the regression fixes:

    - AMD HD-audio HDMI runtime PM improvements

    - Fixes for HD-audio HDMI regressions wrt DP-MST

    - A regression fix for the previous aloop enhancement

    - A fix for a long-time problem in PCM OSS layer that was spotted by
    fuzzer now

    - A few HD-audio quirks"

    * tag 'sound-fix-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: pcm: oss: Avoid potential buffer overflows
    ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms
    ALSA: hda: Modify stream stripe mask only when needed
    ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen
    ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
    ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
    ALSA: hda/realtek - Fix inverted bass GPIO pin on Acer 8951G
    ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
    ALSA: hda: hdmi - fix regression in connect list handling
    ALSA: aloop: Avoid pointer dereference before null-check
    ALSA: hda/hdmi - enable automatic runtime pm for AMD HDMI codecs by default
    ALSA: hda/hdmi - enable runtime pm for newer AMD display audio
    ALSA: hda/hdmi - Add new pci ids for AMD GPU display audio
    ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD

    Linus Torvalds
     

04 Dec, 2019

4 commits

  • syzkaller reported an invalid access in PCM OSS read, and this seems
    to be an overflow of the internal buffer allocated for a plugin.
    Since the rate plugin adjusts its transfer size dynamically, the
    calculation for the chained plugin might be bigger than the given
    buffer size in some extreme cases, which lead to such an buffer
    overflow as caught by KASAN.

    Fix it by limiting the max transfer size properly by checking against
    the destination size in each plugin transfer callback.

    Reported-by: syzbot+f153bde47a62e0b05f83@syzkaller.appspotmail.com
    Cc:
    Link: https://lore.kernel.org/r/20191204144824.17801-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • When the Teclast X89 quirk was added we did not have jack-detection
    support yet.

    Note the over-current detection limit is set to 2mA instead of the usual
    1.5mA because this tablet tends to give false-positive button-presses
    when it is set to 1.5mA.

    Signed-off-by: Hans de Goede
    Acked-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191203221442.2657-1-hdegoede@redhat.com
    Signed-off-by: Mark Brown

    Hans de Goede
     
  • There are cases where we fail before we reach soc_new_pcm which would
    init the workqueue. When we fail we attempt to flush the queue which
    generates warnings from the workqueue subsystem when we have not inited
    the queue. Solution is to use a proxy function to get around this issue.

    Signed-off-by: Curtis Malainey
    Reviewed-by: Takashi Iwai
    Link: https://lore.kernel.org/r/20191203173007.46504-1-cujomalainey@chromium.org
    Signed-off-by: Mark Brown

    Curtis Malainey
     
  • The commit 609f5485344b ("ALSA: hda: hdmi - preserve non-MST PCM
    routing for Intel platforms") tried to restore the old behavior wrt
    assignment of the PCM slot for Intel platforms, but this didn't do it
    right. As found in the later discussion, a positive pipe id on Intel
    platforms can be passed for single monitor attachment case.

    This patch reverts the previous attempt and applies a simpler
    workaround instead. Actually, for Intel platforms, we can handle as
    if per_pin->dev_id=0, assign the primary slot at the first try. This
    assures the compatible behavior with the previous versions regarding
    the slot assignment.

    Fixes: 609f5485344b ("ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms")
    Link: https://lore.kernel.org/r/20191203154105.30414-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

03 Dec, 2019

1 commit

  • Fix build error:

    sound/soc/intel/atom/sst/sst.c: In function intel_sst_interrupt_mrfld:
    sound/soc/intel/atom/sst/sst.c:93:5: error: implicit declaration of function memcpy_fromio;
    did you mean memcpy32_fromio? [-Werror=implicit-function-declaration]
    memcpy_fromio(msg->mailbox_data,
    ^~~~~~~~~~~~~
    memcpy32_fromio

    Reported-by: Hulk Robot
    Signed-off-by: YueHaibing
    Acked-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191128135853.8360-1-yuehaibing@huawei.com
    Signed-off-by: Mark Brown

    YueHaibing