All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/13] Extend AHUB audio support for Tegra210 and later
@ 2021-09-13 16:42 ` Sameer Pujar
  0 siblings, 0 replies; 56+ messages in thread
From: Sameer Pujar @ 2021-09-13 16:42 UTC (permalink / raw)
  To: broonie, lgirdwood, robh+dt, thierry.reding, jonathanh,
	catalin.marinas, will, perex, tiwai, kuninori.morimoto.gx
  Cc: sharadg, alsa-devel, devicetree, linux-tegra, linux-kernel,
	linux-arm-kernel, Sameer Pujar

Earlier as part of series [0], support for ADMAIF and I/O modules (such
as I2S, DMIC and DSPK) was added. This series aims at exposing some of
the AHUB internal modules (listed below), which can be used for audio
pre or post processing.

  * SFC (Sampling Frequency Converter)
  * MVC (Master Volume Control)
  * AMX (Audio Multiplexer)
  * ADX (Audio Demultiplexer)
  * Mixer

These modules can be plugged into audio paths and relevant processing
can be done. The MUX routes are extended to allow add or remove above
modules in the path via mixer controls. This is similar to how specific
ADMAIF channels are connected to relevant I/O module instances at the
moment.

Some of these modules can alter PCM parameters. Consider example of
resampler (44.1 -> 48 kHz) in the path.

  aplay(44.1 kHz) -> ADMAIF -> SFC -> (48 kHz) I2S -> (48kHz) Codec

The modules following SFC should be using converted sample rate and DAIs
need to be configured accordingly. The audio-graph driver provides a
mechanism to fixup the new parameters which can be specified in DT for a
given DAI. Then core uses these new values via fixup callback and then
pass it to respective DAIs hw_param() callback. The "convert-rate",
described in [1], property can be used when there is rate conversion in
the audio path. Similarly "convert-channels" can be used when there is
channel conversion in the path. There is no "convert-xxx" property for
sample size conversions. It can be added if necessary.

[0] https://www.lkml.org/lkml/2020/7/21/1357
[1] Documentation/devicetree/bindings/sound/audio-graph-port.yaml


Changelog
=========

v1 -> v2
--------
 * Put comments for soft reset application in the drivers.
 * Split out mute/volume control logic in put() calls of MVC driver and
   use separate callbacks for the respective kcontrols.
 * Update kcontrol put() callback in MVC driver to return 1 whenever
   there is change. Similar change is done in other drivers too.
 * Use name-prefix.yaml reference for the driver documentation now.
 * Add sound-name-prefix pattern for MIXER driver and use prefix
   accordingly in DT.

Sameer Pujar (13):
  ASoC: soc-pcm: Don't reconnect an already active BE
  ASoC: simple-card-utils: Increase maximum DAI links limit to 512
  ASoC: audio-graph: Fixup CPU endpoint hw_params in a BE<->BE link
  ASoC: dt-bindings: tegra: Few more Tegra210 AHUB modules
  ASoC: tegra: Add routes for few AHUB modules
  ASoC: tegra: Add Tegra210 based MVC driver
  ASoC: tegra: Add Tegra210 based SFC driver
  ASoC: tegra: Add Tegra210 based AMX driver
  ASoC: tegra: Add Tegra210 based ADX driver
  ASoC: tegra: Add Tegra210 based Mixer driver
  arm64: defconfig: Enable few Tegra210 based AHUB drivers
  arm64: tegra: Add few AHUB devices for Tegra210 and later
  arm64: tegra: Extend APE audio support on Jetson platforms

 .../bindings/sound/nvidia,tegra210-adx.yaml        |   76 +
 .../bindings/sound/nvidia,tegra210-ahub.yaml       |   20 +
 .../bindings/sound/nvidia,tegra210-amx.yaml        |   76 +
 .../bindings/sound/nvidia,tegra210-mixer.yaml      |   74 +
 .../bindings/sound/nvidia,tegra210-mvc.yaml        |   76 +
 .../bindings/sound/nvidia,tegra210-sfc.yaml        |   73 +
 arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 1554 ++++++++-
 arch/arm64/boot/dts/nvidia/tegra186.dtsi           |  120 +
 arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 1493 +++++++-
 .../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 1520 ++++++++-
 arch/arm64/boot/dts/nvidia/tegra194.dtsi           |  116 +
 arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts |  876 +++++
 arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts |  876 +++++
 arch/arm64/boot/dts/nvidia/tegra210.dtsi           |   77 +
 arch/arm64/configs/defconfig                       |    5 +
 include/sound/simple_card_utils.h                  |    2 +-
 sound/soc/generic/audio-graph-card.c               |    4 +-
 sound/soc/soc-pcm.c                                |    4 +
 sound/soc/tegra/Kconfig                            |   48 +
 sound/soc/tegra/Makefile                           |   10 +
 sound/soc/tegra/tegra210_adx.c                     |  531 +++
 sound/soc/tegra/tegra210_adx.h                     |   72 +
 sound/soc/tegra/tegra210_ahub.c                    |  511 ++-
 sound/soc/tegra/tegra210_amx.c                     |  600 ++++
 sound/soc/tegra/tegra210_amx.h                     |   93 +
 sound/soc/tegra/tegra210_mixer.c                   |  674 ++++
 sound/soc/tegra/tegra210_mixer.h                   |  100 +
 sound/soc/tegra/tegra210_mvc.c                     |  645 ++++
 sound/soc/tegra/tegra210_mvc.h                     |  117 +
 sound/soc/tegra/tegra210_sfc.c                     | 3549 ++++++++++++++++++++
 sound/soc/tegra/tegra210_sfc.h                     |   78 +
 31 files changed, 13647 insertions(+), 423 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-adx.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-amx.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-mixer.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-mvc.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-sfc.yaml
 create mode 100644 sound/soc/tegra/tegra210_adx.c
 create mode 100644 sound/soc/tegra/tegra210_adx.h
 create mode 100644 sound/soc/tegra/tegra210_amx.c
 create mode 100644 sound/soc/tegra/tegra210_amx.h
 create mode 100644 sound/soc/tegra/tegra210_mixer.c
 create mode 100644 sound/soc/tegra/tegra210_mixer.h
 create mode 100644 sound/soc/tegra/tegra210_mvc.c
 create mode 100644 sound/soc/tegra/tegra210_mvc.h
 create mode 100644 sound/soc/tegra/tegra210_sfc.c
 create mode 100644 sound/soc/tegra/tegra210_sfc.h

-- 
2.7.4


^ permalink raw reply	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2021-10-07 18:40 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-13 16:42 [PATCH v2 00/13] Extend AHUB audio support for Tegra210 and later Sameer Pujar
2021-09-13 16:42 ` Sameer Pujar
2021-09-13 16:42 ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 01/13] ASoC: soc-pcm: Don't reconnect an already active BE Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 02/13] ASoC: simple-card-utils: Increase maximum DAI links limit to 512 Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 03/13] ASoC: audio-graph: Fixup CPU endpoint hw_params in a BE<->BE link Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 04/13] ASoC: dt-bindings: tegra: Few more Tegra210 AHUB modules Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-14 16:01   ` Rob Herring
2021-09-14 16:01     ` Rob Herring
2021-09-14 16:01     ` Rob Herring
2021-09-13 16:42 ` [PATCH v2 05/13] ASoC: tegra: Add routes for few " Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 06/13] ASoC: tegra: Add Tegra210 based MVC driver Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 07/13] ASoC: tegra: Add Tegra210 based SFC driver Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 08/13] ASoC: tegra: Add Tegra210 based AMX driver Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 09/13] ASoC: tegra: Add Tegra210 based ADX driver Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 10/13] ASoC: tegra: Add Tegra210 based Mixer driver Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42 ` [PATCH v2 11/13] arm64: defconfig: Enable few Tegra210 based AHUB drivers Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-10-07 18:36   ` Thierry Reding
2021-10-07 18:36     ` Thierry Reding
2021-10-07 18:36     ` Thierry Reding
2021-09-13 16:42 ` [PATCH v2 12/13] arm64: tegra: Add few AHUB devices for Tegra210 and later Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-10-07 18:37   ` Thierry Reding
2021-10-07 18:37     ` Thierry Reding
2021-10-07 18:37     ` Thierry Reding
2021-09-13 16:42 ` [PATCH v2 13/13] arm64: tegra: Extend APE audio support on Jetson platforms Sameer Pujar
2021-09-13 16:42   ` Sameer Pujar
2021-10-07 18:38   ` Thierry Reding
2021-10-07 18:38     ` Thierry Reding
2021-10-07 18:38     ` Thierry Reding
2021-09-20 15:30 ` (subset) [PATCH v2 00/13] Extend AHUB audio support for Tegra210 and later Mark Brown
2021-09-20 15:30   ` Mark Brown
2021-09-20 15:30   ` Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.