mbox series

[RESEND,v6,0/6] Tegra210 audio graph card

Message ID 1611048496-24650-1-git-send-email-spujar@nvidia.com
Headers show
Series Tegra210 audio graph card | expand

Message

Sameer Pujar Jan. 19, 2021, 9:28 a.m. UTC
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

Comments

Thierry Reding Jan. 19, 2021, 5:15 p.m. UTC | #1
On Tue, Jan 19, 2021 at 02:58:15PM +0530, Sameer Pujar wrote:
> Expose a header which describes DT bindings required to use audio-graph
> based sound card. All Tegra210 based platforms can include this header
> and add platform specific information. Currently, from SoC point of view,
> all links are exposed for ADMAIF, AHUB, I2S and DMIC components.
> 
> Signed-off-by: Sameer Pujar <spujar@nvidia.com>
> Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
> ---
>  .../boot/dts/nvidia/tegra210-audio-graph.dtsi      | 153 +++++++++++++++++++++
>  1 file changed, 153 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi

I prefer keeping everything in tegra210.dtsi, but I can do that merge
when I apply, after the DT bindings have been acked, so no need to
resend just because of that.

Thierry
Sameer Pujar Jan. 19, 2021, 5:39 p.m. UTC | #2
On 1/19/2021 10:45 PM, Thierry Reding wrote:
> On Tue, Jan 19, 2021 at 02:58:15PM +0530, Sameer Pujar wrote:
>> Expose a header which describes DT bindings required to use audio-graph
>> based sound card. All Tegra210 based platforms can include this header
>> and add platform specific information. Currently, from SoC point of view,
>> all links are exposed for ADMAIF, AHUB, I2S and DMIC components.
>>
>> Signed-off-by: Sameer Pujar <spujar@nvidia.com>
>> Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
>> ---
>>   .../boot/dts/nvidia/tegra210-audio-graph.dtsi      | 153 +++++++++++++++++++++
>>   1 file changed, 153 insertions(+)
>>   create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi
> I prefer keeping everything in tegra210.dtsi, but I can do that merge
> when I apply, after the DT bindings have been acked, so no need to
> resend just because of that.

I think this may be fine for Tegra210 based boards. But for Tegra186 and 
Tegra194, whenever we add support for it, can rely on a common 
audio-graph dtsi because there is no change w.r.t APE. This can help us 
to avoid duplication of the bindings. This most likely applies to future 
chips as well (where Tegra186 audio-graph bindings can be considered as 
base) when there is no significant change in APE.
Thierry Reding Jan. 19, 2021, 5:57 p.m. UTC | #3
On Tue, Jan 19, 2021 at 11:09:32PM +0530, Sameer Pujar wrote:
> 
> 
> On 1/19/2021 10:45 PM, Thierry Reding wrote:
> > On Tue, Jan 19, 2021 at 02:58:15PM +0530, Sameer Pujar wrote:
> > > Expose a header which describes DT bindings required to use audio-graph
> > > based sound card. All Tegra210 based platforms can include this header
> > > and add platform specific information. Currently, from SoC point of view,
> > > all links are exposed for ADMAIF, AHUB, I2S and DMIC components.
> > > 
> > > Signed-off-by: Sameer Pujar <spujar@nvidia.com>
> > > Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
> > > ---
> > >   .../boot/dts/nvidia/tegra210-audio-graph.dtsi      | 153 +++++++++++++++++++++
> > >   1 file changed, 153 insertions(+)
> > >   create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi
> > I prefer keeping everything in tegra210.dtsi, but I can do that merge
> > when I apply, after the DT bindings have been acked, so no need to
> > resend just because of that.
> 
> I think this may be fine for Tegra210 based boards. But for Tegra186 and
> Tegra194, whenever we add support for it, can rely on a common audio-graph
> dtsi because there is no change w.r.t APE. This can help us to avoid
> duplication of the bindings. This most likely applies to future chips as
> well (where Tegra186 audio-graph bindings can be considered as base) when
> there is no significant change in APE.

Maybe. Although that argument is somewhat extreme because we already
have some of that same duplication throughout the other .dtsi files. By
the same argument we could save a bit of duplication by having something
like tegra-gpio.dtsi and including that in all the SoC .dtsi files and
only update the compatible string, because that's the only significant
change.

Duplication isn't a big problem for DTS files because the data is meant
to be stable anyway. So once it is in place and doesn't have to change,
it really doesn't matter if it comes from an include or it's duplicated.

Thierry
Sameer Pujar Jan. 20, 2021, 5:06 a.m. UTC | #4
On 1/19/2021 11:27 PM, Thierry Reding wrote:
> On Tue, Jan 19, 2021 at 11:09:32PM +0530, Sameer Pujar wrote:

>>

>> On 1/19/2021 10:45 PM, Thierry Reding wrote:

>>> On Tue, Jan 19, 2021 at 02:58:15PM +0530, Sameer Pujar wrote:

>>>> Expose a header which describes DT bindings required to use audio-graph

>>>> based sound card. All Tegra210 based platforms can include this header

>>>> and add platform specific information. Currently, from SoC point of view,

>>>> all links are exposed for ADMAIF, AHUB, I2S and DMIC components.

>>>>

>>>> Signed-off-by: Sameer Pujar <spujar@nvidia.com>

>>>> Reviewed-by: Jon Hunter <jonathanh@nvidia.com>

>>>> ---

>>>>    .../boot/dts/nvidia/tegra210-audio-graph.dtsi      | 153 +++++++++++++++++++++

>>>>    1 file changed, 153 insertions(+)

>>>>    create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-audio-graph.dtsi

>>> I prefer keeping everything in tegra210.dtsi, but I can do that merge

>>> when I apply, after the DT bindings have been acked, so no need to

>>> resend just because of that.

>> I think this may be fine for Tegra210 based boards. But for Tegra186 and

>> Tegra194, whenever we add support for it, can rely on a common audio-graph

>> dtsi because there is no change w.r.t APE. This can help us to avoid

>> duplication of the bindings. This most likely applies to future chips as

>> well (where Tegra186 audio-graph bindings can be considered as base) when

>> there is no significant change in APE.

> Maybe. Although that argument is somewhat extreme because we already

> have some of that same duplication throughout the other .dtsi files. By

> the same argument we could save a bit of duplication by having something

> like tegra-gpio.dtsi and including that in all the SoC .dtsi files and

> only update the compatible string, because that's the only significant

> change.


> Duplication isn't a big problem for DTS files because the data is meant

> to be stable anyway. So once it is in place and doesn't have to change,

> it really doesn't matter if it comes from an include or it's duplicated.


OK, if there is no issue with duplication then fine with me. Thanks.
Mark Brown Jan. 21, 2021, 12:05 a.m. UTC | #5
On Tue, 19 Jan 2021 14:58:10 +0530, Sameer Pujar wrote:
> 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.

> 

> [...]


Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/6] ASoC: dt-bindings: tegra: Add graph bindings
      commit: 9e0f86fdcdab6a0e183ad4ec2410453985b4cf3c
[2/6] ASoC: dt-bindings: tegra: Add json-schema for Tegra audio graph card
      commit: a9f22c03a8ac5d21ce7a9b9307d9654c963a1f9c
[3/6] ASoC: tegra: Add audio graph based card driver
      commit: 202e2f7745437aa5b694de92cbd30bb43b23fbed

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark