From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: "Amadeusz Sławiński" <amadeuszx.slawinski@linux.intel.com>,
"Alper Nebi Yasak" <alpernebiyasak@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Banajit Goswami" <bgoswami@quicinc.com>,
"Bard Liao" <yung-chuan.liao@linux.intel.com>,
"Brent Lu" <brent.lu@intel.com>,
"Cezary Rojewski" <cezary.rojewski@intel.com>,
"Cristian Ciocaltea" <cristian.ciocaltea@collabora.com>,
"Daniel Baluta" <daniel.baluta@nxp.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Jaroslav Kysela" <perex@perex.cz>,
"Jerome Brunet" <jbrunet@baylibre.com>,
"Kai Vehmanen" <kai.vehmanen@linux.intel.com>,
"Kevin Hilman" <khilman@baylibre.com>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Mark Brown" <broonie@kernel.org>,
"Maso Huang" <maso.huang@mediatek.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Peter Ujfalusi" <peter.ujfalusi@linux.intel.com>,
"Ranjani Sridharan" <ranjani.sridharan@linux.intel.com>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Shawn Guo" <shawnguo@kernel.org>,
"Shengjiu Wang" <shengjiu.wang@gmail.com>,
"Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
"Takashi Iwai" <tiwai@suse.com>,
"Trevor Wu" <trevor.wu@mediatek.com>,
"Vinod Koul" <vkoul@kernel.org>, "Xiubo Li" <Xiubo.Lee@gmail.com>,
alsa-devel@alsa-project.org, imx@lists.linux.dev,
linux-sound@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [PATCH v2 01/16] ASoC: soc-pcm.c: cleanup soc_get_playback_capture()
Date: Mon, 8 Apr 2024 10:34:25 -0500 [thread overview]
Message-ID: <acf98b6b-7c18-4f1e-ab8f-039c88679ab9@linux.intel.com> (raw)
In-Reply-To: <87sezwecf1.wl-kuninori.morimoto.gx@renesas.com>
On 4/7/24 22:55, Kuninori Morimoto wrote:
>
> Hi Pierre-Louis, again
>
>> dpcm_xxx is used to declare that the DAI/dailink is possible to use
>> playback/capture. For example dpcm_playback means the DAI / dailink
>> should playback-able, if not it is error.
>>
>> xxx_only is used to limit the playback/capture.
>> For example the DAI / dailink can use both playback and capture,
>> but want to use playback only for some reasons, we can use playback_only.
>
> My pervious patch-set was "try to merge dpcm_xxx and xxx_only flag",
> but next patch will be "expand assertion flag to all connection".
> This "assertion flag" was originaly dpcm_xxx.
>
> In next patch-set, it will assume for example current "dpcm_playback"
> as "playback_assertion". It can be used not only for DPCM, but
> all connection, but is not mandatory option.
>
> Its pseudo code is like below, but what do you think ?
>
> soc_get_playback_capture(...)
> {
> ...
> /*
> * get HW / DAI availability
> */
> for_each_rtd_ch_maps(...) {
> ...
> has_playback = xxx;
> has_capture = xxx;
> }
>
> /*
> * "xxx_assersion" was "dpcm_xxx" before, but expand to
> * all connection. It is not mandatory option.
> * It will be error if dai_link has xxx_assersion flag,
> * but DAI was not valid
> */
> if (dai_link->playback_assertion && !has_playback) {
> dev_err(rtd->dev, ...);
> return -EINVAL;
> }
> if (dai_link->capture_assertion && !has_capture) {
> dev_err(rtd->dev, ...);
> return -EINVAL;
> }
>
> /*
> * xxx_only flag limits availability. It will indicate warning
> * if DAI was not valid.
> */
> if (dai_link->playback_only) {
> if (!has_capture)
> dev_warn(rtd->dev, ...);
> has_capture = 0;
> }
>
> if (dai_link->capture_only) {
> if (!has_playback)
> dev_warn(rtd->dev, ...);
> has_playback = 0;
> }
>
> /*
> * No Playback, No Capture is error
> */
> if (!has_playback && !has_capture) {
> dev_err(rtd->dev, ...);
> return -EINVAL;
> }
> ...
> }
The code looks fine, but what are we trying to achieve?
I thought the idea was to have a single field at the dailink, and with
the example above we would still have two - just like today.
This looks like a lot of code churn in many drivers for limited
benefits. Or I am missing something?
next prev parent reply other threads:[~2024-04-08 17:22 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-01 0:27 [PATCH v2 00/16] ASoC: Replace dpcm_playback/capture to playback/capture_only Kuninori Morimoto
2024-04-01 0:30 ` [PATCH v2 01/16] ASoC: soc-pcm.c: cleanup soc_get_playback_capture() Kuninori Morimoto
2024-04-01 16:10 ` Pierre-Louis Bossart
2024-04-02 0:21 ` Kuninori Morimoto
2024-04-02 6:43 ` Kuninori Morimoto
2024-04-02 14:06 ` Pierre-Louis Bossart
2024-04-02 14:02 ` Pierre-Louis Bossart
2024-04-04 1:53 ` Kuninori Morimoto
2024-04-04 13:27 ` Pierre-Louis Bossart
2024-04-05 0:46 ` Kuninori Morimoto
2024-04-08 3:55 ` Kuninori Morimoto
2024-04-08 15:34 ` Pierre-Louis Bossart [this message]
2024-04-08 23:42 ` Kuninori Morimoto
2024-04-01 0:30 ` [PATCH v2 02/16] ASoC: amd: Replace dpcm_playback/capture to playback/capture_only Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 03/16] ASoC: fsl: " Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 04/16] ASoC: sof: " Kuninori Morimoto
2024-04-01 16:12 ` Pierre-Louis Bossart
2024-04-01 23:19 ` Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 05/16] ASoC: meson: " Kuninori Morimoto
2024-04-04 8:46 ` Jerome Brunet
2024-04-01 0:31 ` [PATCH v2 06/16] ASoC: Intel: " Kuninori Morimoto
2024-04-02 14:04 ` Amadeusz Sławiński
2024-04-03 0:12 ` Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 07/16] ASoC: samsung: " Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 08/16] ASoC: mediatek: " Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 09/16] ASoC: soc-core: " Kuninori Morimoto
2024-04-01 16:22 ` Pierre-Louis Bossart
2024-04-01 23:27 ` Kuninori Morimoto
2024-04-02 14:09 ` Pierre-Louis Bossart
2024-04-04 2:04 ` Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 10/16] ASoC: soc-topology: " Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 11/16] ASoC: soc-compress: " Kuninori Morimoto
2024-04-01 0:31 ` [PATCH v2 12/16] ASoC: Intel: avs: boards: " Kuninori Morimoto
2024-04-01 0:32 ` [PATCH v2 13/16] ASoC: remove snd_soc_dai_link_set_capabilities() Kuninori Morimoto
2024-04-01 16:26 ` Pierre-Louis Bossart
2024-04-02 0:29 ` Kuninori Morimoto
2024-04-02 14:13 ` Pierre-Louis Bossart
2024-04-04 2:22 ` Kuninori Morimoto
2024-04-01 0:32 ` [PATCH v2 14/16] ASoC: soc-pcm: remove dpcm_playback/capture Kuninori Morimoto
2024-04-01 0:32 ` [PATCH v2 15/16] ASoC: soc-pcm: indicate warning if DPCM BE Codec has no settings Kuninori Morimoto
2024-04-01 16:28 ` Pierre-Louis Bossart
2024-04-01 0:32 ` [PATCH v2 16/16] ASoC: doc: remove .dpcm_playback/capture flags Kuninori Morimoto
2024-04-04 8:27 ` [PATCH v2 00/16] ASoC: Replace dpcm_playback/capture to playback/capture_only Jerome Brunet
2024-04-04 23:13 ` Kuninori Morimoto
2024-04-05 8:59 ` Jerome Brunet
2024-04-08 2:13 ` Kuninori Morimoto
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=acf98b6b-7c18-4f1e-ab8f-039c88679ab9@linux.intel.com \
--to=pierre-louis.bossart@linux.intel.com \
--cc=Xiubo.Lee@gmail.com \
--cc=alpernebiyasak@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=amadeuszx.slawinski@linux.intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bgoswami@quicinc.com \
--cc=brent.lu@intel.com \
--cc=broonie@kernel.org \
--cc=cezary.rojewski@intel.com \
--cc=cristian.ciocaltea@collabora.com \
--cc=daniel.baluta@nxp.com \
--cc=hdegoede@redhat.com \
--cc=imx@lists.linux.dev \
--cc=jbrunet@baylibre.com \
--cc=kai.vehmanen@linux.intel.com \
--cc=khilman@baylibre.com \
--cc=kuninori.morimoto.gx@renesas.com \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=maso.huang@mediatek.com \
--cc=matthias.bgg@gmail.com \
--cc=neil.armstrong@linaro.org \
--cc=perex@perex.cz \
--cc=peter.ujfalusi@linux.intel.com \
--cc=ranjani.sridharan@linux.intel.com \
--cc=s.hauer@pengutronix.de \
--cc=s.nawrocki@samsung.com \
--cc=shawnguo@kernel.org \
--cc=shengjiu.wang@gmail.com \
--cc=srinivas.kandagatla@linaro.org \
--cc=tiwai@suse.com \
--cc=trevor.wu@mediatek.com \
--cc=vkoul@kernel.org \
--cc=yung-chuan.liao@linux.intel.com \
/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