Skip to content
  1. Feb 02, 2021
  2. Jan 27, 2021
    • Takashi Iwai's avatar
      ALSA: hda/via: Apply the workaround generically for Clevo machines · 4961167b
      Takashi Iwai authored
      
      
      We've got another report indicating a similar problem wrt the
      power-saving behavior with VIA codec on Clevo machines.  Let's apply
      the existing workaround generically to all Clevo devices with VIA
      codecs to cover all in once.
      
      BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1181330
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20210126165603.11683-1-tiwai@suse.de
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4961167b
  3. Jan 26, 2021
    • Takashi Iwai's avatar
      Merge tag 'asoc-fix-v5.11-rc5' of... · 49951ae3
      Takashi Iwai authored
      Merge tag 'asoc-fix-v5.11-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v5.11
      
      More fixes for v5.11, almost all driver specific issues including new
      device IDs - there's one error handling fix for the topology stuff too.
      49951ae3
  4. Jan 25, 2021
  5. Jan 23, 2021
    • Takashi Iwai's avatar
      ALSA: usb-audio: workaround for iface reset issue · fe773b87
      Takashi Iwai authored
      The recently introduced sample rate validation code seems causing a
      problem on some devices; namely, after performing this, the bus gets
      screwed and it influences even on other USB devices.
      As a quick workaround, perform it only for the necessary devices;
      currently MOTU devices are known to need the valid altset checks, so
      filter out other devices.
      
      Fixes: 93db51d0
      
       ("ALSA: usb-audio: Check valid altsetting at parsing rates for UAC2/3")
      Reported-by: default avatarJamie Heilman <jamie@audible.transient.net>
      BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1178203
      Link: https://lore.kernel.org/r/20210123155842.22652-1-tiwai@suse.de
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      fe773b87
    • Takashi Iwai's avatar
      ALSA: pcm: One more dependency for hw constraints · 23b53d44
      Takashi Iwai authored
      The fix for a long-standing USB-audio bug required one more dependency
      variable to be added to the hw constraints.  Unfortunately I didn't
      realize at debugging that the new addition may result in the overflow
      of the dependency array of each snd_pcm_hw_rule (up to three plus a
      sentinel), because USB-audio driver adds one more dependency only for
      a certain device and bus, hence it works as is for many devices.  But
      in a bad case, a simple open always results in -EINVAL (with kernel
      WARNING if CONFIG_SND_DEBUG is set) no matter what is passed.
      
      Since the dependencies are real and unavoidable (USB-audio restricts
      the hw_params per looping over the format/rate/channels combos), the
      only good solution seems to raise the bar for one more dependency for
      snd_pcm_hw_rule -- so does this patch: now the hw constraint
      dependencies can be up to four.
      
      Fixes: 506c203c
      
       ("ALSA: usb-audio: Fix hw constraints dependencies")
      Reported-by: default avatarJamie Heilman <jamie@audible.transient.net>
      Link: https://lore.kernel.org/r/20210123155730.22576-1-tiwai@suse.de
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      23b53d44
  6. Jan 22, 2021
  7. Jan 21, 2021
    • Stephen Boyd's avatar
      ASoC: qcom: Fix number of HDMI RDMA channels on sc7180 · 7dfe20ee
      Stephen Boyd authored
      Suspending/resuming with an HDMI dongle attached leads to crashes from
      an audio regmap.
      
       Unable to handle kernel paging request at virtual address ffffffc018068000
       Mem abort info:
         ESR = 0x96000047
         EC = 0x25: DABT (current EL), IL = 32 bits
         SET = 0, FnV = 0
         EA = 0, S1PTW = 0
       Data abort info:
         ISV = 0, ISS = 0x00000047
         CM = 0, WnR = 1
       swapper pgtable: 4k pages, 39-bit VAs, pgdp=0000000081b12000
       [ffffffc018068000] pgd=0000000275d14003, pud=0000000275d14003, pmd=000000026365d003, pte=0000000000000000
       Internal error: Oops: 96000047 [#1] PREEMPT SMP
       Call trace:
        regmap_mmio_write32le+0x2c/0x40
        regmap_mmio_write+0x48/0x6c
        _regmap_bus_reg_write+0x34/0x44
        _regmap_write+0x100/0x150
        regcache_default_sync+0xc0/0x138
        regcache_sync+0x188/0x26c
        lpass_platform_pcmops_resume+0x48/0x54 [snd_soc_lpass_platform]
        snd_soc_component_resume+0x28/0x40
        soc_resume_deferred+0x6c/0x178
        process_one_work+0x208/0x3c8
        worker_thread+0x23c/0x3e8
        kthread+0x144/0x178
        ret_from_fork+0x10/0x18
       Code: d503201f d50332bf f94002a8 8b344108 (b9000113)
      
      I can reliably reproduce this problem by running 'tail' on the registers
      file in debugfs for the hdmi regmap.
      
       # tail /sys/kernel/debug/regmap/62d87000.lpass-lpass_hdmi/registers
       [   84.658733] Unable to handle kernel paging request at virtual address ffffffd0128e800c
      
      This crash happens because we're trying to read registers from the
      regmap beyond the length of the mapping created by ioremap().
      
      The number of hdmi_rdma_channels determines the size of the regmap via
      this code in sound/soc/qcom/lpass-cpu.c:
      
        lpass_hdmi_regmap_config.max_register = LPAIF_HDMI_RDMAPER_REG(variant, variant->hdmi_rdma_channels);
      
      According to debugfs the size of the regmap is 0x68010 but according to
      the DTS file posted in [1] the size is only 0x68000 (see the first reg
      property of the lpass_cpu node). Let's change the number of channels to
      be 3 instead of 4 so the math works out to have a max register of
      0x67010, nicely fitting inside of the region size of 0x68000.
      
      Note: I tried to bump up the size of the register region to the next
      page to include the 0x68010 register but then the tail command caused
      SErrors with an async abort, implying that the register region doesn't
      exist or it isn't clocked because the bus is telling us that the
      register read failed. I reduce the number of channels and played audio
      through the HDMI channel and it kept working so I think this is correct.
      
      Fixes: 2ad63dc8
      
       ("ASoC: qcom: sc7180: Add support for audio over DP")
      Link: https://lore.kernel.org/r/1601448168-18396-2-git-send-email-srivasam@codeaurora.org [1]
      Cc: V Sujith Kumar Reddy <vsujithk@codeaurora.org>
      Cc: Srinivasa Rao <srivasam@codeaurora.org>
      Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Cc: Cheng-Yi Chiang <cychiang@chromium.org>
      Signed-off-by: default avatarStephen Boyd <swboyd@chromium.org>
      Link: https://lore.kernel.org/r/20210115203329.846824-1-swboyd@chromium.org
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      7dfe20ee
    • Mark Brown's avatar
      Merge series "ASoC: qcom: Fix broken lpass driver" from Srinivas Kandagatla... · 411fc208
      Mark Brown authored
      Merge series "ASoC: qcom: Fix broken lpass driver" from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>:
      
      LPASS driver is partially broken on DragonBoard DB410c on 5.10 and
      its totally broken on other Supported Qualcomm SoCs.
      
      This was due to DAI ids being over written by the SoC specific header files
      in the dt-bindings.
      
      Idea of having SoC specific headers is not doable when we are dealing with
      a common driver. So this patchset attempts to fix this properly by creating
      a common dt-bindings header for lpass which can be updated with new entries
      if required. This patchset also add an simple of_xlate function to resolve
      the dai names and different SoCs might not have 1:1 mapping for the
      dai_driver array with dai ids.
      
      Changes since v1:
      	- removed array indexes as suggested by Stephan G.
      	- rebased to sound/for-next branch
      	- collected Srinivasa tested-by tag for sc7180 platform.
      
      Thanks,
      srini
      
      Srinivas Kandagatla (2):
        ASoC: dt-bindings: lpass: Fix and common up lpass dai ids
        ASoC: qcom: Fix broken support to MI2S TERTIARY and QUATERNARY
      
       include/dt-bindings/sound/apq8016-lpass.h |  7 +++----
       include/dt-bindings/sound/qcom,lpass.h    | 15 +++++++++++++++
       include/dt-bindings/sound/sc7180-lpass.h  |  6 ++----
       sound/soc/qcom/lpass-cpu.c                | 22 ++++++++++++++++++++++
       sound/soc/qcom/lpass-platform.c           | 12 ++++++++++++
       sound/soc/qcom/lpass-sc7180.c             |  9 +++------
       sound/soc/qcom/lpass.h                    |  2 +-
       7 files changed, 58 insertions(+), 15 deletions(-)
       create mode 100644 include/dt-bindings/sound/qcom,lpass.h
      
      --
      2.21.0
      411fc208
    • Mark Brown's avatar
      Merge series "ASoC: mediatek: mt8183: ignore TDM DAI link by by default" from... · d146c7b0
      Mark Brown authored
      Merge series "ASoC: mediatek: mt8183: ignore TDM DAI link by by default" from Tzung-Bi Shih <tzungbi@google.com>:
      
      hdmi-codec is an optional property.  The 2 patches fix DAI link binding
      error when the property doesn't exist in DTS.
      
      Tzung-Bi Shih (2):
        ASoC: mediatek: mt8183-mt6358: ignore TDM DAI link by default
        ASoC: mediatek: mt8183-da7219: ignore TDM DAI link by default
      
       sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c         | 5 ++++-
       sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 5 ++++-
       2 files changed, 8 insertions(+), 2 deletions(-)
      
      --
      2.30.0.284.gd98b1dd5eaa7-goog
      d146c7b0
    • Mark Brown's avatar
      Merge series "Add KUNIT tests for ASoC topology" from Amadeusz... · 29be3f02
      Mark Brown authored
      Merge series "Add KUNIT tests for ASoC topology" from Amadeusz Sławiński<amadeuszx.slawinski@linux.intel.com>:
      
      This series adds unit tests for ASoC topology.
      
      First fix problems found when developing and running test cases and
      then add tests implementation.
      
      Tests themselves are quite simple and just call
      snd_soc_tplg_component_load() with various parameters and check the
      result. Tests themselves are described in more detail in commits
      adding them.
      
      Goal is to expand the amount of test cases in following patches.
      
      Prerequisity for this patchset are 2 patches which have already been
      sent:
      https://lore.kernel.org/alsa-devel/20210114163602.911205-1-amadeuszx.slawinski@linux.intel.com/T/#t
      
      Description on how typical test case itself works:
      
      In order to load topology we need to have 3 things:
      card, codec component & platform component.
      
      In typical test case we register card and platform component and bind
      to dummy codec. There are of course execeptions, when we want to
      test behaviour of topology API when component or card is missing.
      Note that this is bit different from typical scenario (in SOF and skylake
      drivers) where card is registered by machine driver and component by
      platform driver, as we register both when setting up test.
      
      If you check the test case most of them have similar architecture of:
      1.
      	/* run test */
      	ret = snd_soc_register_card(&kunit_comp->card);
      	if (ret != 0 && ret != -EPROBE_DEFER)
      		KUNIT_FAIL(test, "Failed to register card");
      
      2.
      	ret = snd_soc_component_initialize(&kunit_comp->comp, &test_component, test_dev);
      	KUNIT_EXPECT_EQ(test, 0, ret);
      
      3.
      	ret = snd_soc_add_component(&kunit_comp->comp, NULL, 0);
      	KUNIT_EXPECT_EQ(test, 0, ret);
      
      Ad. 1.
      First we register card, which in most tests returns -EPROBE_DEFER
      (from snd_soc_bind_card()), as platform component is not yet created.
      I test for both 0 and -EPROBE_DEFER, as it makes it easier to reshuffle
      this code around if needed and there is one test case which does it in
      different order.
      
      Ad. 2.
      Then we initialize platform component with structure pointing at proper
      probe function, which calls snd_soc_tplg_component_load() with test
      parameters and checks expected result.
      
      Ad. 3.
      And then in follow up we call snd_soc_add_component() which creates
      platform component for us and calls snd_soc_try_rebind_card() which
      if everything is bound properly calls previously set probe function.
      
      Amadeusz Sławiński (5):
        ASoC: topology: Properly unregister DAI on removal
        Revert "ASoC: soc-devres: add devm_snd_soc_register_dai()"
        ASoC: topology: KUnit: Add KUnit tests passing various arguments to
          snd_soc_tplg_component_load
        ASoC: topology: KUnit: Add KUnit tests passing empty topology with
          variants to snd_soc_tplg_component_load
        ASoC: topology: KUnit: Add KUnit tests passing topology with PCM to
          snd_soc_tplg_component_load
      
       include/sound/soc.h           |   4 -
       sound/soc/Kconfig             |  17 +
       sound/soc/Makefile            |   5 +
       sound/soc/soc-devres.c        |  37 --
       sound/soc/soc-topology-test.c | 843 ++++++++++++++++++++++++++++++++++
       sound/soc/soc-topology.c      |   9 +-
       6 files changed, 870 insertions(+), 45 deletions(-)
       create mode 100644 sound/soc/soc-topology-test.c
      
      --
      2.25.1
      29be3f02
    • Takashi Iwai's avatar
      ALSA: usb-audio: Fix hw constraints dependencies · 506c203c
      Takashi Iwai authored
      Since the recent refactoring, it's been reported that some USB-audio
      devices (typically webcams) are no longer detected properly by
      PulseAudio.  The debug session revealed that it's failing at probing
      by PA to try the sample rate 44.1kHz while the device has discrete
      sample rates other than 44.1kHz.  But the puzzle was that arecord
      works as is, and some other devices with the discrete rates work,
      either.
      
      After all, this turned out to be the lack of the dependencies in a few
      hw constraint rules: snd_pcm_hw_rule_add() has the (variable)
      arguments specifying the dependent parameters, and some functions
      didn't set the target parameter itself as the dependencies.  This
      resulted in an invalid parameter that could be generated only in a
      certain call pattern.  This bug itself has been present in the code,
      but it didn't trigger errors just because the rules were casually
      avoiding such a corner case.  After the recent refactoring and
      cleanup, however, the hw constraints work "as expected", and the
      problem surfaced now.
      
      For fixing the problem above, this patch adds the missing dependent
      parameters to each snd_pcm_hw_rule() call.
      
      Fixes: bc4e94aa
      
       ("ALSA: usb-audio: Handle discrete rates properly in hw constraints")
      BugLink: http://bugzilla.opensuse.org/show_bug.cgi?id=1181014
      Link: https://lore.kernel.org/r/20210120204554.30177-1-tiwai@suse.de
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      506c203c
    • Tzung-Bi Shih's avatar
      ASoC: mediatek: mt8183-da7219: ignore TDM DAI link by default · 4d36ed8e
      Tzung-Bi Shih authored
      hdmi-codec is an optional property.  Ignore to bind TDM DAI link
      if the property isn't specified.
      
      Fixes: 5bdbe977
      
       ("ASoC: mediatek: mt8183-da7219: use hdmi-codec")
      Signed-off-by: default avatarTzung-Bi Shih <tzungbi@google.com>
      Link: https://lore.kernel.org/r/20210120092237.1553938-3-tzungbi@google.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      4d36ed8e
    • Tzung-Bi Shih's avatar
      ASoC: mediatek: mt8183-mt6358: ignore TDM DAI link by default · 5ac15444
      Tzung-Bi Shih authored
      hdmi-codec is an optional property.  Ignore to bind TDM DAI link
      if the property isn't specified.
      
      Fixes: f2024dc5
      
       ("ASoC: mediatek: mt8183: use hdmi-codec")
      Signed-off-by: default avatarTzung-Bi Shih <tzungbi@google.com>
      Link: https://lore.kernel.org/r/20210120092237.1553938-2-tzungbi@google.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      5ac15444
    • Amadeusz Sławiński's avatar
      ASoC: topology: Properly unregister DAI on removal · fc4cb1e1
      Amadeusz Sławiński authored
      DAIs need to be removed when topology unload function is called (usually
      done when component is being removed). We can't do this when device is
      being removed, as structures we operate on when removing DAI can already
      be freed.
      
      Fixes: 6ae4902f
      
       ("ASoC: soc-topology: use devm_snd_soc_register_dai()")
      Signed-off-by: default avatarAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
      Tested-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20210120152846.1703655-2-amadeuszx.slawinski@linux.intel.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      fc4cb1e1
    • Dan Carpenter's avatar
      ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values() · 543466ef
      Dan Carpenter authored
      The allocation uses sizeof(u32) when it should use sizeof(unsigned long)
      so it leads to memory corruption later in the function when the data is
      initialized.
      
      Fixes: 5aebe7c7
      
       ("ASoC: topology: fix endianness issues")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Link: https://lore.kernel.org/r/YAf+8QZoOv+ct526@mwanda
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      543466ef
    • Srinivas Kandagatla's avatar
      ASoC: qcom: lpass-ipq806x: fix bitwidth regmap field · 1e066a23
      Srinivas Kandagatla authored
      BIT_WIDTH field in I2S_CTL register is two bits wide, however
      recent regmap field conversion patch trimmed it down to one bit.
      Fix this by correcting the bit range!
      
      Fixes: b5022a36
      
       ("ASoC: qcom: lpass: Use regmap_field for i2sctl and dmactl registers")
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20210119174700.32639-1-srinivas.kandagatla@linaro.org
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      1e066a23
    • Jaroslav Kysela's avatar
      ASoC: AMD Renoir - refine DMI entries for some Lenovo products · 40caffd6
      Jaroslav Kysela authored
      
      
      Apparently, the DMI board name LNVNB161216 is also used also
      for products with the digital microphones connected to the AMD's
      audio bridge. Refine the DMI table - use product name identifiers
      extracted from https://bugzilla.redhat.com/show_bug.cgi?id=1892115 .
      
      The report for Lenovo Yoga Slim 7 14ARE05 (82A2) is in buglink.
      
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=211299
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
      Cc: Mark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20210120144211.817937-1-perex@perex.cz
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      40caffd6
    • Srinivas Kandagatla's avatar
      ASoC: qcom: Fix broken support to MI2S TERTIARY and QUATERNARY · cd3484f7
      Srinivas Kandagatla authored
      lpass hdmi support patch totally removed support for MI2S TERTIARY
      and QUATERNARY.
      
      One of the major issue was spotted with the design of having
      separate SoC specific header files for the common lpass driver.
      This design is prone to break as an when new SoC header is added
      as the common DAI ids of other SoCs will be overwritten by the
      new ones.
      
      Having a common header qcom,lpass.h should fix the issue and any new
      DAI ids should be added to the common header.
      
      With this change lpass also needs a new of_xlate function to resolve
      dai name.
      
      Fixes: 7cb37b7b
      
       ("ASoC: qcom: Add support for lpass hdmi driver")
      Reported-by: default avatarJun Nie <jun.nie@linaro.org>
      Reported-by: default avatarStephan Gerhold <stephan@gerhold.net>
      Tested-by: default avatarSrinivasa Rao <srivasam@codeaurora.org>
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Tested-by: default avatarStephan Gerhold <stephan@gerhold.net>
      Link: https://lore.kernel.org/r/20210119171527.32145-3-srinivas.kandagatla@linaro.org
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      cd3484f7
    • Srinivas Kandagatla's avatar
      ASoC: dt-bindings: lpass: Fix and common up lpass dai ids · 09a4f6f5
      Srinivas Kandagatla authored
      Existing header file design of having separate SoC specific header files
      for the common lpass driver has mutiple issues.
      This design is prone to break as an when new SoC header is added
      as the common DAI ids of other SoCs will be overwritten by the
      new ones.
      
      One of them surfaced by recent patch that adds support to sc7180, this
      one totally broke LPASS drivers on other Qualcomm SoCs.
      
      Before this gets worst, fix this by having a common header qcom,lpass.h.
      This should fix the issue and any new DAI ids should be added to the
      common header. This will be more sustainable then the existing design!
      
      Fixes: 12fbfc4c
      
       ("ASoC: Add sc7180-lpass binding header hdmi define")
      Reported-by: default avatarJun Nie <jun.nie@linaro.org>
      Reported-by: default avatarStephan Gerhold <stephan@gerhold.net>
      Tested-by: default avatarSrinivasa Rao <srivasam@codeaurora.org>
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20210119171527.32145-2-srinivas.kandagatla@linaro.org
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      09a4f6f5
  8. Jan 19, 2021
    • Kai-Heng Feng's avatar
      ALSA: hda: Balance runtime/system PM if direct-complete is disabled · 2b73649c
      Kai-Heng Feng authored
      After hibernation, HDA controller can't be runtime-suspended after
      commit 215a22ed
      
       ("ALSA: hda: Refactor codjc PM to use
      direct-complete optimization"), which enables direct-complete for HDA
      codec.
      
      The HDA codec driver didn't expect direct-complete will be disabled
      after it returns a positive value from prepare() callback. However,
      there are some places that PM core can disable direct-complete. For
      instance, system hibernation or when codec has subordinates like LEDs.
      
      So if the codec is prepared for direct-complete but PM core still calls
      codec's suspend or freeze callback, partially revert the commit and take
      the original approach, which uses pm_runtime_force_*() helpers to
      ensure PM refcount are balanced. Meanwhile, still keep prepare() and
      complete() callbacks to enable direct-complete and request a resume for
      jack detection, respectively.
      
      Reported-by: default avatarKenneth R. Crudup <kenny@panix.com>
      Fixes: 215a22ed
      
       ("ALSA: hda: Refactor codec PM to use direct-complete optimization")
      Signed-off-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Link: https://lore.kernel.org/r/20210119152145.346558-1-kai.heng.feng@canonical.com
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2b73649c
    • Takashi Iwai's avatar
      Merge tag 'asoc-fix-v5.11-rc4' of... · c23010ff
      Takashi Iwai authored
      Merge tag 'asoc-fix-v5.11-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v5.11
      
      A few more fixes for v5.11, mostly around HDA jack detection, plus
      a couple of updates to the MAINTAINERS entries.
      c23010ff
  9. Jan 18, 2021
    • Jonathan Neuschäfer's avatar
      ASoC: dt-bindings: mt8192-mt6359: Fix indentation · e36626bb
      Jonathan Neuschäfer authored
      
      
      The items of the 'maintainers' list are indented with three spaces.
      Use the usual two spaces instead, for consistency and to silence
      yamllint.
      
      Signed-off-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
      Link: https://lore.kernel.org/r/20210116013403.3490518-1-j.neuschaefer@gmx.net
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      e36626bb
    • James Schulman's avatar
      ASoC: wm_adsp: Fix control name parsing for multi-fw · a8939f2e
      James Schulman authored
      
      
      When switching between firmware types, the wrong control
      can be selected when requesting control in kernel API.
      Use the currently selected DSP firwmare type to select
      the proper mixer control.
      
      Signed-off-by: default avatarJames Schulman <james.schulman@cirrus.com>
      Acked-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20210115201105.14075-1-james.schulman@cirrus.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      a8939f2e
    • Takashi Iwai's avatar
      ALSA: usb-audio: Avoid implicit feedback on Pioneer devices · 532a208a
      Takashi Iwai authored
      For addressing the regression on Pioneer devices, we recently
      corrected the quirk code to enable the implicit feedback mode on those
      devices properly.  However, the devices still showed problems with the
      full duplex operations with JACK, and after debug sessions, we figured
      out that the older kernels that had worked with JACK also didn't use
      the implicit feedback mode at all although they had the quirk code to
      enable it; instead, the old code worked just to skip the normal sync
      endpoint setup that would have been detected without it.  IOW, what
      broke without the implicit-fb quirk in the past was the application of
      the normal sync endpoint that is actually the capture data endpoint on
      these devices.
      
      This patch covers the overseen piece: it modifies the quirk code again
      not to enable the implicit feedback mode but just to make the driver
      skipping the sync endpoint detection.  This made the driver working
      with JACK full-duplex mode again.
      
      Still it's not quite clear why the implicit feedback doesn't work on
      those devices yet; maybe it's about some issues in the URB setup.  But
      at least, with this patch, the driver should work in the level of the
      older kernels again.
      
      Fixes: 167c9dc8
      
       ("ALSA: usb-audio: Fix implicit feedback sync setup for Pioneer devices")
      Link: https://lore.kernel.org/r/20210118075816.25068-4-tiwai@suse.de
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      532a208a
    • Takashi Iwai's avatar
      ALSA: usb-audio: Set sample rate for all sharing EPs on UAC1 · 3784d449
      Takashi Iwai authored
      The UAC2/3 sample rate setup is based on the clock node, which is
      usually shared in the interface, and can't be re-setup without
      deselecting the interface once, and that's how the current code
      behaves.  OTOH, the sample rate setup of UAC1 is per endpoint, hence
      we basically need to call for each endpoint usage even if those share
      the same interface.
      
      This patch fixes the behavior of UAC1 to call always
      snd_usb_init_sample_rate() in snd_usb_endpoint_configure().
      
      Fixes: bf6313a0
      
       ("ALSA: usb-audio: Refactor endpoint management")
      Link: https://lore.kernel.org/r/20210118075816.25068-3-tiwai@suse.de
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3784d449
    • Takashi Iwai's avatar
      ALSA: usb-audio: Fix UAC1 rate setup for secondary endpoints · 87cb9af9
      Takashi Iwai authored
      
      
      The current sample rate setup function for UAC1 assumes only the first
      endpoint retrieved from the interface:altset pair, but the rate set up
      may be needed also for the secondary endpoint.  Also, retrieving the
      endpoint number from the interface descriptor is redundant; we have
      already the target endpoint in the given audioformat object.
      
      This patch simplifies the code and corrects the target endpoint as
      described in the above.  It simply refers to fmt->endpoint directly.
      
      Also, this patch drops the pioneer_djm_set_format_quirk() that is
      caleld from snd_usb_set_format_quirk(); this function does the sample
      rate setup but for the capture endpoint (0x82), and that's exactly
      what the change above fixes.
      
      Link: https://lore.kernel.org/r/20210118075816.25068-2-tiwai@suse.de
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      87cb9af9
  10. Jan 16, 2021
  11. Jan 15, 2021