1. 21 Jan, 2021 19 commits
  2. 20 Jan, 2021 13 commits
  3. 19 Jan, 2021 8 commits
    • Mark Brown's avatar
      Merge series "Tegra210 audio graph card" from Sameer Pujar <spujar@nvidia.com>: · 6b050d45
      Mark Brown authored
      This series adds audio graph based sound card support for Tegra210
      platforms like Jetson-TX1 an Jetson-Nano. The following preparatory
      audio graph enhancement series is already merged.
       * https://patchwork.kernel.org/project/alsa-devel/list/?series=375629&state=*
      
      Following are the summary of changes:
       * Add graph/audio-graph based schemas or schema updates for Tegra210
         component and machine drivers.
       * Add Tegra audio graph machine driver.
       * Add required DT support for Jetson-TX1/Nano.
      
      This work is based on earlier discussion of DPCM usage for Tegra
      and simple card driver updates.
       * https://lkml.org/lkml/2020/4/30/519
       * https://lkml.org/lkml/2020/6/27/4
      
      Original v6 series was sent about 6-7 weeks back. The dependency commit,
      https://lore.kernel.org/alsa-devel/1610948585-16286-1-git-send-email-spujar@nvidia.com/
      is now merged. Resending this now to appear in the top of the mail list.
      
      Changelog
      =========
      
      v5 -> v6
      --------
       * Added ports or port description in YAML docs for Tegra AHUB
         devices and graph card in patch 1/6 and 2/6. Reference of
         audio-graph-port.yaml is used for AHUB devices.
       * Dropped redundant NULL check return for of_device_get_match_data()
         in patch 3/6.
       * Added 'Reviewed-by' tag from Jon Hunter.
       * No changes in remaining patches.
      
      v4 -> v5
      --------
       * Audio graph related changes were sent in separate v5 series as
         mentioned above and are dropped from current series.
       * Graph and audio graph doc patches are dropped from this series
         and are sent separately as mentioned above.
       * Minor change with phandle label for TX1 and Nano platform DT files.
       * No changes in other patches.
      
      v3 -> v4
      --------
       * Added new patches to convert graph.txt and audio-graph-card.txt
         to corresponding json-schema files. Later these references
         are used in Tegra audio graph schema.
      
       * AHUB component binding docs are updated to reflect the usage
         of ports/port/endpoint
      
       * More common stuff is moved into graph_parse_of() and this is
         used by both generic and Tegra audio graph.
      
       * DT binding for Tegra audio graph is updated to included "ports { }"
      
       * As per the suggestion 'void *data' member is dropped from
         'asoc_simple_priv' and instead container method is used to
         maintain required custom data internal to Tegra audio graph.
      
      v2 -> v3
      --------
       * Dropped new compatible addition in generic graph driver
         after reviewing it with Morimoto-san. Instead added Tegra
         audio graph driver and new compatibles are added in the same.
       * Added new patches to expose new members for customization
         in audio graph driver.
       * Added new patch for Tegra audio graph driver and related
         documentation.
       * Minor change in below commit where mutex version of helper is used
         "ASoC: audio-graph: Identify 'no_pcm' DAI links for DPCM"
       * DT binding is updated to use the newly exposed compatibles
       * No changes in other patches
      
      v1 -> v2
      --------
       * Re-organized ports/endpoints description for ADMAIF and XBAR.
         Updated DT patches accordingly.
       * After above change, multiple Codec endpoint support is not
         required and hence dropped for now. This will be considered
         separately if at all required in future.
       * Re-ordered patches in the series.
      
      Sameer Pujar (6):
        ASoC: dt-bindings: tegra: Add graph bindings
        ASoC: dt-bindings: tegra: Add json-schema for Tegra audio graph card
        ASoC: tegra: Add audio graph based card driver
        arm64: defconfig: Enable Tegra audio graph card driver
        arm64: tegra: Audio graph header for Tegra210
        arm64: tegra: Audio graph sound card for Jetson Nano and TX1
      
       .../sound/nvidia,tegra-audio-graph-card.yaml       | 187 +++++++++++++++
       .../bindings/sound/nvidia,tegra186-dspk.yaml       |  18 +-
       .../bindings/sound/nvidia,tegra210-admaif.yaml     |  13 +-
       .../bindings/sound/nvidia,tegra210-ahub.yaml       |  13 +-
       .../bindings/sound/nvidia,tegra210-dmic.yaml       |  18 +-
       .../bindings/sound/nvidia,tegra210-i2s.yaml        |  18 +-
       .../boot/dts/nvidia/tegra210-audio-graph.dtsi      | 153 ++++++++++++
       arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 262 +++++++++++++++++++++
       arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 146 ++++++++++++
       arch/arm64/configs/defconfig                       |   1 +
       sound/soc/tegra/Kconfig                            |   9 +
       sound/soc/tegra/Makefile                           |   2 +
       sound/soc/tegra/tegra_audio_graph_card.c           | 251 ++++++++++++++++++++
       13 files changed, 1085 insertions(+), 6 deletions(-)
       create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-graph-card.yaml
       create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi
       create mode 100644 sound/soc/tegra/tegra_audio_graph_card.c
      
      --
      2.7.4
      6b050d45
    • Mark Brown's avatar
      Merge series "ASoC: Simplify with dma_set_mask_and_coherent()" from Takashi Iwai <tiwai@suse.de>: · 97692432
      Mark Brown authored
      Simple conversions from two dma_set_mask*() calls into the single
      dma_set_mask_and_coherent().
      
      Just a minor code refactoring, no functional changes.
      
      Takashi
      
      ===
      
      Takashi Iwai (3):
        ASoC: intel: skl: Simplify with dma_set_mask_and_coherent()
        ASoC: SOF: intel: Simplify with dma_set_mask_and_coherent()
        ASoC: tegra: Simplify with dma_set_mask_and_coherent()
      
       sound/soc/intel/skylake/skl.c | 8 ++------
       sound/soc/sof/intel/hda.c     | 8 ++------
       sound/soc/tegra/tegra_pcm.c   | 6 +-----
       3 files changed, 5 insertions(+), 17 deletions(-)
      
      --
      2.26.2
      97692432
    • Tony Lindgren's avatar
      ASoC: cpcap: Implement set_tdm_slot for voice call support · 0dedbde5
      Tony Lindgren authored
      ASoC: cpcap: Implement set_tdm_slot for voice call support
      
      For using cpcap for voice calls, we need to route audio directly from
      the modem to cpcap for TDM (Time Division Multiplexing). The voice call
      is direct data between the modem and cpcap with no CPU involvment. In
      this mode, the cpcap related audio mixer controls work for the speaker
      selection and volume though.
      
      To do this, we need to implement standard snd_soc_dai_set_tdm_slot()
      for cpcap. Then the modem codec driver can use snd_soc_dai_set_sysclk(),
      snd_soc_dai_set_fmt(), and snd_soc_dai_set_tdm_slot() to configure a
      voice call.
      
      Let's add cpcap_voice_set_tdm_slot() for this, and cpcap_voice_call()
      helper to configure the additional registers needed for voice call.
      
      Let's also clear CPCAP_REG_VAUDIOC on init in case we have the bit for
      CPCAP_BIT_VAUDIO_MODE0 set on init.
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      Link: https://lore.kernel.org/r/20210112174704.GA13496@duo.ucw.czSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      0dedbde5
    • Yu-Hsuan Hsu's avatar
      ASoC: cros_ec_codec: Reset I2S RX when probing · 7f1f7ae1
      Yu-Hsuan Hsu authored
      It is not guaranteed that I2S RX is disabled when the kernel booting.
      For example, if the kernel crashes while it is enabled, it will keep
      enabled until the next time EC reboots. Reset I2S RX when probing to
      fix this issue.
      Signed-off-by: default avatarYu-Hsuan Hsu <yuhsuan@chromium.org>
      Reviewed-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
      Link: https://lore.kernel.org/r/20210115075301.47995-2-yuhsuan@chromium.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      7f1f7ae1
    • Yu-Hsuan Hsu's avatar
      cros_ec_commands: Add EC_CODEC_I2S_RX_RESET · f4d3bd8b
      Yu-Hsuan Hsu authored
      Add the new command EC_CODEC_I2S_RX_RESET in ec_codec_i2s_rx_subcmd,
      which is used for resetting the EC codec.
      Signed-off-by: default avatarYu-Hsuan Hsu <yuhsuan@chromium.org>
      Acked-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
      Link: https://lore.kernel.org/r/20210115075301.47995-1-yuhsuan@chromium.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      f4d3bd8b
    • Sameer Pujar's avatar
      ASoC: tegra: Add audio graph based card driver · 202e2f77
      Sameer Pujar authored
      Add Tegra audio machine driver which is based on generic audio graph card
      driver. It re-uses most of the common stuff from audio graph driver and
      uses the same DT binding. Required Tegra specific customizations are done
      in the driver and additional DT bindings are required for clock handling.
      
      Details on the customizations done:
      
       - Update PLL rates at runtime: Tegra HW supports multiple sample rates
         (multiples of 8x and 11.025x) and both of these groups require different
         PLL rates. Hence there is a requirement to update this at runtime.
         This is achieved by providing a custom 'snd_soc_ops' and in hw_param()
         callback PLL rate is updated as per the sample rate.
      
       - Internal structure 'tegra_audio_graph_data' is used to maintain clock
         handles of PLL.
      
       - The 'force_dpcm' flag is set to use DPCM for all DAI links.
      
       - The 'component_chaining' flag is set to use DPCM with component model.
      Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
      Reviewed-by: default avatarJon Hunter <jonathanh@nvidia.com>
      Link: https://lore.kernel.org/r/1611048496-24650-4-git-send-email-spujar@nvidia.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      202e2f77
    • Sameer Pujar's avatar
      ASoC: dt-bindings: tegra: Add json-schema for Tegra audio graph card · a9f22c03
      Sameer Pujar authored
      Add YAML schema for Tegra audio graph sound card DT bindings. It uses the
      same DT bindings provided by generic audio graph driver. Along with this
      few standard clock DT bindings are added which are specifically required
      for Tegra audio.
      Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
      Reviewed-by: default avatarJon Hunter <jonathanh@nvidia.com>
      Link: https://lore.kernel.org/r/1611048496-24650-3-git-send-email-spujar@nvidia.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      a9f22c03
    • Sameer Pujar's avatar
      ASoC: dt-bindings: tegra: Add graph bindings · 9e0f86fd
      Sameer Pujar authored
      Add device tree binding properties of generic graph to ASoC component
      devices. This allows to define audio ports out of these components or
      DAIs and audio graph based sound card can be realised with this.
      Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
      Reviewed-by: default avatarJon Hunter <jonathanh@nvidia.com>
      Link: https://lore.kernel.org/r/1611048496-24650-2-git-send-email-spujar@nvidia.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      9e0f86fd