All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jaroslav Kysela <perex@perex.cz>
To: Mark Brown <broonie@kernel.org>
Cc: Dmitry Osipenko <digetx@gmail.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Takashi Iwai <tiwai@suse.com>, Ion Agorria <ion@agorria.com>,
	Svyatoslav Ryhel <clamor95@gmail.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	alsa-devel@alsa-project.org, linux-tegra@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] ASoC: tegra: Unify ASoC machine drivers
Date: Fri, 21 May 2021 10:54:17 +0200	[thread overview]
Message-ID: <ef59dad1-b06e-1d90-5948-9bb6e79478a2@perex.cz> (raw)
In-Reply-To: <20210520190812.GF3962@sirena.org.uk>

Dne 20. 05. 21 v 21:08 Mark Brown napsal(a):
> On Thu, May 20, 2021 at 09:02:49PM +0200, Jaroslav Kysela wrote:
>> Dne 20. 05. 21 v 19:50 Dmitry Osipenko napsal(a):
>>> Squash all machine drivers into a single-universal one. This reduces
>>> code duplication, eases addition of a new drivers and upgrades older
>>> code to a modern Linux kernel APIs.
> 
>>> +static struct snd_soc_card snd_soc_tegra_wm9712 = {
>>> +	.dai_link = &tegra_wm9712_dai,
>>> +	.num_links = 1,
>>> +	.fully_routed = true,
>>> +};
> 
>> Please, could you also initialize snd_soc_card->components? It may be useful
>> to pass the codec identification to the user space like:
> 
>> .components = "codec:wm9712"
> 
> Hrm, if this is important to userspace shouldn't the core be doing
> something by default given that it already knows all the components
> going into the card?

I don't think that we can pass the complex topology in the simple string (127
chars). For the time, it's better to pass only the vital information which the
user space requires for the fine-grained hw configuration detection and
description.

For the above example, the "codec:" prefix may be replaced by the purpose
string (like "hs:" - headset, "spk:" - speaker) etc. This information is not
available in the ASoC components (purpose / location / exact I/O config etc.).

>> The passed information should be consistent. You may look into the Intel ASoC
>> drivers for the examples (card->components initialization). There are also
>> hints about the number of connected microphones ("cfg-mic:2" - configuration
>> with 2 microphones) or the codec purpose ("hs:rt711" - headset codec is RT711)
>> etc.
> 
> This sort of stuff is more something that the card should layer on top.

It would be nice to have this layer with the topology description, but until
someone designs it, it's much easier to describe the configuration and hints
in the simple string passed to the user space.

Actually, for ACPI/PCI platforms, the information is gathered from the tables
or detected by PCI IDs. For the device tree. It may be worth to allow to pass
this string from the device tree, too. I believe that the DT config author has
enough information to describe the hardware.

						Jaroslav

-- 
Jaroslav Kysela <perex@perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.

WARNING: multiple messages have this Message-ID
From: Jaroslav Kysela <perex@perex.cz>
To: Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org, Liam Girdwood <lgirdwood@gmail.com>,
	linux-kernel@vger.kernel.org,
	Svyatoslav Ryhel <clamor95@gmail.com>,
	Takashi Iwai <tiwai@suse.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Ion Agorria <ion@agorria.com>,
	linux-tegra@vger.kernel.org, Dmitry Osipenko <digetx@gmail.com>
Subject: Re: [PATCH v2 2/2] ASoC: tegra: Unify ASoC machine drivers
Date: Fri, 21 May 2021 10:54:17 +0200	[thread overview]
Message-ID: <ef59dad1-b06e-1d90-5948-9bb6e79478a2@perex.cz> (raw)
In-Reply-To: <20210520190812.GF3962@sirena.org.uk>

Dne 20. 05. 21 v 21:08 Mark Brown napsal(a):
> On Thu, May 20, 2021 at 09:02:49PM +0200, Jaroslav Kysela wrote:
>> Dne 20. 05. 21 v 19:50 Dmitry Osipenko napsal(a):
>>> Squash all machine drivers into a single-universal one. This reduces
>>> code duplication, eases addition of a new drivers and upgrades older
>>> code to a modern Linux kernel APIs.
> 
>>> +static struct snd_soc_card snd_soc_tegra_wm9712 = {
>>> +	.dai_link = &tegra_wm9712_dai,
>>> +	.num_links = 1,
>>> +	.fully_routed = true,
>>> +};
> 
>> Please, could you also initialize snd_soc_card->components? It may be useful
>> to pass the codec identification to the user space like:
> 
>> .components = "codec:wm9712"
> 
> Hrm, if this is important to userspace shouldn't the core be doing
> something by default given that it already knows all the components
> going into the card?

I don't think that we can pass the complex topology in the simple string (127
chars). For the time, it's better to pass only the vital information which the
user space requires for the fine-grained hw configuration detection and
description.

For the above example, the "codec:" prefix may be replaced by the purpose
string (like "hs:" - headset, "spk:" - speaker) etc. This information is not
available in the ASoC components (purpose / location / exact I/O config etc.).

>> The passed information should be consistent. You may look into the Intel ASoC
>> drivers for the examples (card->components initialization). There are also
>> hints about the number of connected microphones ("cfg-mic:2" - configuration
>> with 2 microphones) or the codec purpose ("hs:rt711" - headset codec is RT711)
>> etc.
> 
> This sort of stuff is more something that the card should layer on top.

It would be nice to have this layer with the topology description, but until
someone designs it, it's much easier to describe the configuration and hints
in the simple string passed to the user space.

Actually, for ACPI/PCI platforms, the information is gathered from the tables
or detected by PCI IDs. For the device tree. It may be worth to allow to pass
this string from the device tree, too. I believe that the DT config author has
enough information to describe the hardware.

						Jaroslav

-- 
Jaroslav Kysela <perex@perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.

  reply	other threads:[~2021-05-21  8:54 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-20 17:50 [PATCH v2 0/2] Unify NVIDIA Tegra " Dmitry Osipenko
2021-05-20 17:50 ` Dmitry Osipenko
2021-05-20 17:50 ` [PATCH v2 1/2] ASoC: tegra: Set driver_name=tegra for all " Dmitry Osipenko
2021-05-20 17:50   ` Dmitry Osipenko
2021-05-20 18:12   ` Dmitry Osipenko
2021-05-20 18:12     ` Dmitry Osipenko
2021-05-20 17:50 ` [PATCH v2 2/2] ASoC: tegra: Unify ASoC " Dmitry Osipenko
2021-05-20 17:50   ` Dmitry Osipenko
2021-05-20 19:02   ` Jaroslav Kysela
2021-05-20 19:02     ` Jaroslav Kysela
2021-05-20 19:08     ` Mark Brown
2021-05-20 19:08       ` Mark Brown
2021-05-21  8:54       ` Jaroslav Kysela [this message]
2021-05-21  8:54         ` Jaroslav Kysela
2021-05-21 18:43     ` Dmitry Osipenko
2021-05-21 18:43       ` Dmitry Osipenko
2021-05-21 13:12   ` Jon Hunter
2021-05-21 13:12     ` Jon Hunter
2021-05-21 19:05     ` Dmitry Osipenko
2021-05-21 19:05       ` Dmitry Osipenko
2021-05-24 12:22       ` Jon Hunter
2021-05-24 12:22         ` Jon Hunter
2021-05-24 13:40         ` Dmitry Osipenko
2021-05-24 13:40           ` Dmitry Osipenko
2021-05-24 18:50           ` Jon Hunter
2021-05-24 18:50             ` Jon Hunter
2021-05-24 21:02             ` Dmitry Osipenko
2021-05-24 21:02               ` Dmitry Osipenko
2021-05-25  6:51               ` Jon Hunter
2021-05-25  6:51                 ` Jon Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ef59dad1-b06e-1d90-5948-9bb6e79478a2@perex.cz \
    --to=perex@perex.cz \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=clamor95@gmail.com \
    --cc=digetx@gmail.com \
    --cc=ion@agorria.com \
    --cc=jonathanh@nvidia.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=tiwai@suse.com \
    --subject='Re: [PATCH v2 2/2] ASoC: tegra: Unify ASoC machine drivers' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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.