alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Cezary Rojewski <cezary.rojewski@intel.com>
To: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.de>,
	ALSA development <alsa-devel@alsa-project.org>,
	Mark Brown <broonie@kernel.org>,
	Kai Vehmanen <kai.vehmanen@linux.intel.com>
Subject: Re: [alsa-devel] UCM extensions
Date: Thu, 7 Nov 2019 11:18:52 +0100	[thread overview]
Message-ID: <60c63704-44ce-d80b-ccbd-b23d748b009b@intel.com> (raw)
In-Reply-To: <6dcc3e0d-0df5-90cf-220f-59253d3b5c7c@perex.cz>

On 2019-11-05 20:36, Jaroslav Kysela wrote:
> Hi all,
> 
>      I make some internal ucm code cleanups in alsa-lib and added three 
> major extensions to allow more complex configurations which we require 
> for the SOF kernel driver.
> 
>      The first thing is the added substitution for the value strings:
> 
> https://github.com/alsa-project/alsa-lib/commit/f1e637b285e8e04e6761248a070f58f3a8fde6fc 
> 
> 
>      The second thing is the If block:
> 
> https://github.com/alsa-project/alsa-lib/commit/985715ce8148dc7ef62c8e3d8ce5a0c2ac51f8df 
> 
> 
>      The third thing is the card / hardware like specifier passed as the 
> ucm name to snd_use_case_mgr_open() to support multiple card instances:
> 
> https://github.com/alsa-project/alsa-lib/commit/60164fc5886cdc6ca55eeed0c2e3f751a7d2b2c0 
> 
> 
>      All those patches (with other cleanups) are in the ucm2 branch on 
> github for comments:
> 
> https://github.com/alsa-project/alsa-lib/commits/ucm2
> 
>      The proposed SOF UCM config diff is here:
> 
> https://github.com/alsa-project/alsa-ucm-conf/commit/723b6da881721488229154e923ed36413955a051 
> 
> https://github.com/alsa-project/alsa-ucm-conf/commits/ucm2
> 
>      I added everything to keep the interface backward compatible, so 
> the current applications should not observe any different behavior. The 
> applications like pulseaudio should use the 'hw:CARD_INDEX' specifier 
> for the open call in the future and snd_use_case_parse_ctl_elem_id() 
> helper for the element control names.
> 
>      If you have another ideas to address those issues, please, let me 
> know.
> 
>      BTW, Mark: The SOF UCM configs relies on the driver name changes, 
> so it might be worth to send "ASoC: intel - fix the card names" patch to 
> 5.4 to make things stable more quickly:
> 
>      https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?h=for-5.5&id=d745cc1ab65945b2d17ec9c5652f38299c054649
> 
>                  Thanks,
>                      Jaroslav
> 


Thanks for your work, Jaroslav.

However, I have some concerns here. First, could you elaborate on "we 
require for the SOF kernel driver"?

The substitutions and multi-instance support is probably warmly welcomed 
by many, but "If" blocks are what worries me. Especially the nested 
"Ifs". As Takashi pointed already out, UCM - which is currently is 
viewed as a simple configuration syntax - is becoming a language on its 
own. If we are to keep extending UCM on and on, we might as well switch 
to JSON/ XML/ YAML entirely instead of developing our own thingy.

"If" block could just be what's needed to open new pandora box, allowing 
for very complex and no longer easy-to-read config files. In general, if 
one is to enlist an "If", why not define two UCMs instead?

Moreover, I see you mentioning the card-name dependency. This sounds 
rather invasive. Separation of different config-versions would be required.

Czarek
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2019-11-07 10:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-05 19:36 [alsa-devel] UCM extensions Jaroslav Kysela
2019-11-05 19:52 ` Pierre-Louis Bossart
2019-11-05 20:19   ` Jaroslav Kysela
2019-11-05 20:27     ` Pierre-Louis Bossart
2019-11-06 11:50 ` Kai Vehmanen
2019-11-06 13:10   ` Jaroslav Kysela
2019-11-06 13:51     ` Jaska Uimonen
2019-11-06 17:04       ` Jaroslav Kysela
2019-11-07  6:48 ` Takashi Iwai
2019-11-07  8:33   ` Jaroslav Kysela
2019-11-07  9:23     ` Takashi Iwai
2019-11-07 11:08       ` Jaroslav Kysela
2019-11-07 11:16         ` Takashi Iwai
2019-11-07 13:14           ` Jaroslav Kysela
2019-11-07 10:18 ` Cezary Rojewski [this message]
2019-11-07 11:01   ` Jaroslav Kysela
2019-11-07 11:54     ` Kai Vehmanen

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=60c63704-44ce-d80b-ccbd-b23d748b009b@intel.com \
    --to=cezary.rojewski@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.de \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).