1. 12 May, 2020 11 commits
  2. 11 May, 2020 2 commits
  3. 08 May, 2020 3 commits
  4. 07 May, 2020 5 commits
  5. 06 May, 2020 2 commits
  6. 05 May, 2020 2 commits
    • Stephan Gerhold's avatar
      ASoC: qcom: lpass-cpu: Make I2S SD lines configurable · 4ff028f6
      Stephan Gerhold authored
      The LPASS hardware allows configuring the MI2S SD lines to use
      when playing/recording audio. However, at the moment the lpass-cpu
      driver has SD0 hard-coded for mono/stereo (or additional fixed
      SD lines for more channels).
      
      For weird reasons there seems to be hardware that uses one of the
      other SD lines for mono/stereo. For example, some Samsung devices
      use an external Speaker amplifier connected to Quaternary MI2S.
      For some reason, the SD line for audio playback was connected to
      SD1 rather than SD0. (I have no idea why...)
      At the moment, the lpass-cpu driver cannot be configured to work
      for the Speaker on these devices.
      
      The q6afe driver already allows configuring the MI2S SD lines
      through the "qcom,sd-lines" device tree property, but this works
      only when routing audio through the ADSP.
      
      This commit adds a very similar configuration for the lpass-cpu driver.
      It is now possible to add additional subnodes to the lpass device in
      the device tree, to configure the SD lines for playback and/or capture.
      E.g. for the Samsung devices mentioned above:
      
      &lpass {
      	dai@3 {
      		reg = <MI2S_QUATERNARY>;
      		qcom,playback-sd-lines = <1>;
      	};
      };
      
      qcom,playback/capture-sd-lines takes a list of SD lines (0-3)
      in the same format as the q6afe driver. (The difference here is that
      q6afe has separate DAIs for playback/capture, while lpass-cpu has one
      for both...)
      
      For backwards compatibility with older device trees, the lpass-cpu driver
      defaults to LPAIF_I2SCTL_MODE_8CH if the subnode for a DAI is missing.
      This is equivalent to the previous behavior: Up to 8 channels can be
      configured, and SD0/QUAT01 will be chosen when setting up a stream
      with fewer channels.
      
      This allows the speaker to work on Samsung MSM8916 devices
      that use an external speaker amplifier.
      Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
      Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Link: https://lore.kernel.org/r/20200425184657.121991-2-stephan@gerhold.netSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      4ff028f6
    • Stephan Gerhold's avatar
      dt-bindings: sound: lpass-cpu: Document DAI subnodes · d5797ede
      Stephan Gerhold authored
      The lpass-cpu driver now allows configuring the MI2S SD lines
      by defining subnodes for one of the DAIs.
      
      Document this in the device tree bindings.
      Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
      Link: https://lore.kernel.org/r/20200425184657.121991-1-stephan@gerhold.netSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      d5797ede
  7. 04 May, 2020 8 commits
  8. 01 May, 2020 4 commits
  9. 30 Apr, 2020 3 commits
    • Mark Brown's avatar
      Merge series "ASoC: rt5682: apply some refactors" from Tzung-Bi Shih <tzungbi@google.com>: · e8e7ef43
      Mark Brown authored
      The series tries to refactor the coding style to follow most conventions.
      
      The 4th patch converts pr_() to dev_().
      (https://mailman.alsa-project.org/pipermail/alsa-devel/2020-March/164849.html)
      
      The 6th patch changes the behavior a bit to restore its original intent.
      
      Tzung-Bi Shih (6):
        ASoC: rt5682: simplify assertions
        ASoC: rt5682: fix space issues
        ASoC: rt5682: remove empty default case
        ASoC: rt5682: replace message printing from pr_() to dev_()
        ASoC: rt5682: remove duplicate rt5682_reset() calls
        ASoC: rt5682: remove unwanted btn_type assignment
      
       sound/soc/codecs/rt5682.c | 198 ++++++++++++++++----------------------
       1 file changed, 84 insertions(+), 114 deletions(-)
      
      --
      2.26.2.303.gf8c07b1a785-goog
      e8e7ef43
    • Mark Brown's avatar
      Merge series "SOF topology parsing updates" from Ranjani Sridharan... · c03d5821
      Mark Brown authored
      Merge series "SOF topology parsing updates" from Ranjani Sridharan <ranjani.sridharan@linux.intel.com>:
      
      This series includes updates in the topology parser for DAIs
      and their config.
      
      The first three patches address the problem of sending the DAI
      config to the DSP when there are multiple DAIs associated with
      a DAI link.
      
      The last patch deals with setting the default trigger order
      for all links. Exceptions needed for HDA links are moved to
      the DAI link fixup() callback.
      
      Bard Liao (3):
        ASoC: SOF: topology: send ipc for all found DAIs in sof_set_dai_config
        ASoC: topology: set component dai_index to ipc dai config dai_index
        ASoC: SOF: topology: replace sof_link_hda_process by
          sof_set_dai_config
      
      randerwang (1):
        ASoC: SOF: Intel: change trigger sequence to fix pop noise when
          stopping playback on sdw platforms
      
       sound/soc/sof/pcm.c      |  12 ++-
       sound/soc/sof/topology.c | 167 ++++++++++-----------------------------
       2 files changed, 51 insertions(+), 128 deletions(-)
      
      --
      2.17.1
      c03d5821
    • Arnd Bergmann's avatar
      ASoC: SOF: sort out Kconfig, again · f9dfa8f2
      Arnd Bergmann authored
      The imx8 config keeps causing issues:
      
      WARNING: unmet direct dependencies detected for SND_SOC_SOF_IMX8M
        Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=m] && SND_SOC_SOF_TOPLEVEL [=y] && SND_SOC_SOF_IMX_TOPLEVEL [=y] && IMX_DSP [=n]
        Selected by [m]:
        - SND_SOC_SOF_IMX_OF [=m] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=m] && SND_SOC_SOF_TOPLEVEL [=y] && SND_SOC_SOF_IMX_TOPLEVEL [=y] && SND_SOC_SOF_IMX8M_SUPPORT [=y]
      
      This is complicated by two drivers having dependencies on both
      platform specific drivers and the SND_SOC_SOF_OF framework code,
      and using an somewhat obscure method to build them the same way
      as the SOC_SOF_OF symbol (built-in or modular).
      
      My solution now ensures that the two drivers can only be enabled
      when the dependencies are met:
      
      - When the platform specific drivers are built-in, everything is
        fine, as SOC_SOF_OF is either =y or =m
      
      - When both are loadable modules, it also works, both for Kconfig
        and at runtime
      
      - When the hardware drivers are loadable modules or disabled, and
        SOC_SOF_OF=y, prevent the IMX_SOF_OF drivers from being turned on,
        as this would be broken.
      
      It seems that this is just an elaborate way to describe two tristate
      symbols that have straight dependencies, but maybe I'm missing some
      subtle point. It seems to always build for me now.
      
      Fixes: fe57a92c ("ASoC: SOF: Add missing dependency on IMX_SCU")
      Fixes: afb93d71 ("ASoC: SOF: imx: Add i.MX8M HW support")
      Fixes: cb0312f6 ("ASoC: SOF: imx: fix undefined reference issue")
      Fixes: afb93d71 ("ASoC: SOF: imx: Add i.MX8M HW support")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Acked-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
      Link: https://lore.kernel.org/r/20200428212752.2901778-1-arnd@arndb.deSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      f9dfa8f2