All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: "Kuninori Morimoto" <kuninori.morimoto.gx@renesas.com>,
	"Amadeusz S�awi�ski" <amadeuszx.slawinski@linux.intel.com>,
	"NÃ colas F. R. A. Prado" <nfraprado@collabora.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"chunxu.li" <chunxu.li@mediatek.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Bard Liao" <yung-chuan.liao@linux.intel.com>,
	"Brent Lu" <brent.lu@intel.com>,
	"Cezary Rojewski" <cezary.rojewski@intel.com>,
	"Daniel Baluta" <daniel.baluta@nxp.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Jerome Brunet" <jbrunet@baylibre.com>,
	"Jiaxin Yu" <jiaxin.yu@mediatek.com>,
	"Kai Vehmanen" <kai.vehmanen@linux.intel.com>,
	"Kevin Hilman" <khilman@baylibre.com>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"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>,
	"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Trevor Wu" <trevor.wu@mediatek.com>,
	"Vijendar Mukunda" <Vijendar.Mukunda@amd.com>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Wang Yufen" <wangyufen@huawei.com>,
	"Xiubo Li" <Xiubo.Lee@gmail.com>
Cc: Fabio Estevam <festevam@gmail.com>,
	Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Nicolin Chen <nicoleotsuka@gmail.com>,
	Shengjiu Wang <shengjiu.wang@nxp.com>,
	alsa-devel@alsa-project.org
Subject: Re: [PATCH v2 00/21] ASoC: replace dpcm_playback/capture to playback/capture_only
Date: Thu, 25 May 2023 18:47:12 -0500	[thread overview]
Message-ID: <ff4586eb-4363-2592-97f7-d2fa8bbdee8a@linux.intel.com> (raw)
In-Reply-To: <87ttw1gqgn.wl-kuninori.morimoto.gx@renesas.com>



> This is v2 patch-set of dpcm_playback/capture flag cleanup.
> 
> Current ASoC DPCM need dpcm_playback/capture flags to use it.
> But we are using playback/capture_only flag on Normal/Codec2Codec case.
> I think these are duplicated, we can share same flags for all cases.
> 
> On v1 patch-set, we noticed that some DPCM BE Codec valid check
> breaks compatibility.
> 
> 	static int soc_get_playback_capture(...)
> 	{
> 		...
> (A)		if (dai_link->dynamic || dai_link->no_pcm) {
> 			...
> 			if (dai_link->dpcm_playback) {
> 				...
> (B)				for_each_rtd_cpu_dais(rtd, i, cpu_dai) {
> (C)					if (snd_soc_dai_stream_valid(cpu_dai, stream)) {
> 						has_playback = 1;
> 						break;
> 				}
> 			}
> 		...
> 	}
> 
> (A) is for DPCM case, and "dai_link->no_pcm" means BE,
> (B)/(C) means CPU validation check.
> In many case, DPCM is like this.
> 
> 	FE (dynamic)		BE (no_pcm)
> 	[CPU/dummy-Codec] - [dummy-CPU/Codec]
> 
> DPCM FE (dynamic) Codec no check is no problem, because it is dummy DAI.
> DPCM BE (no_pcm)  Codec no check is not good,
> but checking it might breaks compatibility, because some Codec doesn't have
> necessary settings (= channels_min). Solving this issue seems not easy,
> because it is using very complex setting timing.
> 
> v2 ignores DPCM BE Codec check, same as before, but added comment for it.
> I hope we can valid check for all cases in some day.

Our CI tests show a rather large regression on a CometLake ChromeBook,
see
https://sof-ci.01.org/linuxpr/PR4379/build5131/devicetest/index.html?model=CML_HEL_RT5682&testcase=verify-kernel-boot-log

[   12.883662] kernel:  SSP1-Codec: SSP1-Codec: 1 cpus to 4 codecs link
is not supported yet
[   12.883674] kernel: cml_rt1011_rt5682 cml_rt1011_rt5682: ASoC: can't
create pcm SSP1-Codec :-22

This is problematic, 1:4 connections have been handled for a very long
time, this is basic TDM.

git blame tells me this was added by
"
ASoC: soc-pcm.c: cleanup normal connection loop at
soc_get_playback_capture() part1
"

below...
> 
> v1 -> v2
> 	- Add Reviewed-by
> 	- Separate Intel patch
> 	- tidyup playback/capture_only flags conversion
> 
> Link: https://lore.kernel.org/r/87353uqjiu.wl-kuninori.morimoto.gx@renesas.com
> Link: https://lore.kernel.org/r/ab3f0c0a-62fd-a468-b3cf-0e4b59bac6ae@linux.intel.com
> 
> Kuninori Morimoto (21):
>   ASoC: soc-pcm.c: indicate error if stream has no playback no capture
>   ASoC: soc-pcm.c: use dai_link on soc_get_playback_capture()
>   ASoC: soc-pcm.c: cleanup soc_get_playback_capture() error
>   ASoC: soc-pcm.c: use temporary variable at soc_get_playback_capture()
>   ASoC: soc-pcm.c: tidyup playback/capture_only at soc_get_playback_capture()
>   ASoC: soc-pcm.c: cleanup normal connection loop at soc_get_playback_capture() part1

...here...

>   ASoC: soc-pcm.c: cleanup normal connection loop at soc_get_playback_capture() part2
>   ASoC: soc-pcm.c: cleanup soc_get_playback_capture()
>   ASoC: amd: replace dpcm_playback/capture to playback/capture_only
>   ASoC: fsl: replace dpcm_playback/capture to playback/capture_only
>   ASoC: sof: replace dpcm_playback/capture to playback/capture_only
>   ASoC: meson: replace dpcm_playback/capture to playback/capture_only
>   ASoC: Intel: replace dpcm_playback/capture to playback/capture_only
>   ASoC: samsung: replace dpcm_playback/capture to playback/capture_only
>   ASoC: mediatek: replace dpcm_playback/capture to playback/capture_only
>   ASoC: soc-dai.c: replace dpcm_playback/capture to playback/capture_only
>   ASoC: Intel/avs: replace dpcm_playback/capture to playback/capture_only
>   ASoC: soc-core.c: replace dpcm_playback/capture to playback/capture_only
>   ASoC: soc-topology.c: replace dpcm_playback/capture to playback/capture_only
>   ASoC: soc-compress.c: replace dpcm_playback/capture to playback/capture_only
>   ASoC: soc-pcm.c: remove dpcm_playback/capture
> 
>  include/sound/soc.h                           |   4 -
>  sound/soc/amd/acp-da7219-max98357a.c          |  20 +--
>  sound/soc/amd/acp-es8336.c                    |   2 -
>  sound/soc/amd/acp/acp-mach-common.c           |  20 +--
>  sound/soc/amd/acp3x-rt5682-max9836.c          |   6 +-
>  sound/soc/amd/vangogh/acp5x-mach.c            |   3 -
>  sound/soc/fsl/fsl-asoc-card.c                 |  16 +--
>  sound/soc/fsl/imx-audmix.c                    |   6 +-
>  sound/soc/fsl/imx-card.c                      |   4 +-
>  sound/soc/intel/avs/boards/da7219.c           |   2 -
>  sound/soc/intel/avs/boards/dmic.c             |   4 +-
>  sound/soc/intel/avs/boards/hdaudio.c          |   4 -
>  sound/soc/intel/avs/boards/i2s_test.c         |   2 -
>  sound/soc/intel/avs/boards/max98357a.c        |   2 +-
>  sound/soc/intel/avs/boards/max98373.c         |   2 -
>  sound/soc/intel/avs/boards/max98927.c         |   2 -
>  sound/soc/intel/avs/boards/nau8825.c          |   2 -
>  sound/soc/intel/avs/boards/rt274.c            |   2 -
>  sound/soc/intel/avs/boards/rt286.c            |   2 -
>  sound/soc/intel/avs/boards/rt298.c            |   2 -
>  sound/soc/intel/avs/boards/rt5682.c           |   2 -
>  sound/soc/intel/avs/boards/ssm4567.c          |   2 -
>  sound/soc/intel/boards/bdw-rt5650.c           |   4 -
>  sound/soc/intel/boards/bdw-rt5677.c           |   4 -
>  sound/soc/intel/boards/bdw_rt286.c            |  10 +-
>  sound/soc/intel/boards/bxt_da7219_max98357a.c |  32 +++--
>  sound/soc/intel/boards/bxt_rt298.c            |  26 ++--
>  sound/soc/intel/boards/bytcht_cx2072x.c       |   6 +-
>  sound/soc/intel/boards/bytcht_da7213.c        |   6 +-
>  sound/soc/intel/boards/bytcht_es8316.c        |   6 +-
>  sound/soc/intel/boards/bytcht_nocodec.c       |   6 +-
>  sound/soc/intel/boards/bytcr_rt5640.c         |   6 +-
>  sound/soc/intel/boards/bytcr_rt5651.c         |   6 +-
>  sound/soc/intel/boards/bytcr_wm5102.c         |   6 +-
>  sound/soc/intel/boards/cht_bsw_max98090_ti.c  |   6 +-
>  sound/soc/intel/boards/cht_bsw_nau8824.c      |   6 +-
>  sound/soc/intel/boards/cht_bsw_rt5645.c       |   6 +-
>  sound/soc/intel/boards/cht_bsw_rt5672.c       |   6 +-
>  sound/soc/intel/boards/cml_rt1011_rt5682.c    |  14 +--
>  sound/soc/intel/boards/ehl_rt5660.c           |  14 +--
>  sound/soc/intel/boards/glk_rt5682_max98357a.c |  30 +++--
>  sound/soc/intel/boards/hsw_rt5640.c           |  10 +-
>  sound/soc/intel/boards/kbl_da7219_max98357a.c |  26 ++--
>  sound/soc/intel/boards/kbl_da7219_max98927.c  |  54 ++++-----
>  sound/soc/intel/boards/kbl_rt5660.c           |  18 ++-
>  sound/soc/intel/boards/kbl_rt5663_max98927.c  |  44 +++----
>  .../intel/boards/kbl_rt5663_rt5514_max98927.c |  22 ++--
>  sound/soc/intel/boards/skl_hda_dsp_common.c   |  14 +--
>  .../soc/intel/boards/skl_nau88l25_max98357a.c |  26 ++--
>  sound/soc/intel/boards/skl_nau88l25_ssm4567.c |  26 ++--
>  sound/soc/intel/boards/skl_rt286.c            |  26 ++--
>  sound/soc/intel/boards/sof_cs42l42.c          |  12 +-
>  sound/soc/intel/boards/sof_da7219_max98373.c  |  16 +--
>  sound/soc/intel/boards/sof_es8336.c           |   8 +-
>  sound/soc/intel/boards/sof_nau8825.c          |  12 +-
>  sound/soc/intel/boards/sof_pcm512x.c          |   8 +-
>  sound/soc/intel/boards/sof_rt5682.c           |  12 +-
>  sound/soc/intel/boards/sof_sdw.c              |   4 +-
>  sound/soc/intel/boards/sof_ssp_amp.c          |  11 +-
>  sound/soc/intel/boards/sof_wm8804.c           |   2 -
>  sound/soc/mediatek/mt2701/mt2701-cs42448.c    |  20 +--
>  sound/soc/mediatek/mt2701/mt2701-wm8960.c     |   6 +-
>  sound/soc/mediatek/mt6797/mt6797-mt6351.c     |  24 ++--
>  sound/soc/mediatek/mt8173/mt8173-max98090.c   |   6 +-
>  .../mediatek/mt8173/mt8173-rt5650-rt5514.c    |   6 +-
>  .../mediatek/mt8173/mt8173-rt5650-rt5676.c    |  10 +-
>  sound/soc/mediatek/mt8173/mt8173-rt5650.c     |  10 +-
>  .../mediatek/mt8183/mt8183-da7219-max98357.c  |  34 +++---
>  .../mt8183/mt8183-mt6358-ts3a227-max98357.c   |  34 +++---
>  .../mt8186/mt8186-mt6366-da7219-max98357.c    |  86 +++++--------
>  .../mt8186/mt8186-mt6366-rt1019-rt5682s.c     |  86 +++++--------
>  sound/soc/mediatek/mt8188/mt8188-mt6359.c     |  48 ++++----
>  .../mt8192/mt8192-mt6359-rt1015-rt5682.c      |  78 ++++++------
>  sound/soc/mediatek/mt8195/mt8195-mt6359.c     |  60 +++++----
>  sound/soc/meson/axg-card.c                    |   8 +-
>  sound/soc/meson/meson-card-utils.c            |   4 +-
>  sound/soc/samsung/odroid.c                    |  10 +-
>  sound/soc/soc-compress.c                      |  11 +-
>  sound/soc/soc-core.c                          |  20 +--
>  sound/soc/soc-dai.c                           |   6 +-
>  sound/soc/soc-pcm.c                           | 114 +++++++-----------
>  sound/soc/soc-topology-test.c                 |   2 -
>  sound/soc/soc-topology.c                      |   4 +-
>  sound/soc/sof/nocodec.c                       |   4 -
>  84 files changed, 511 insertions(+), 842 deletions(-)
> 

  parent reply	other threads:[~2023-05-25 23:49 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-25  1:16 [PATCH v2 00/21] ASoC: replace dpcm_playback/capture to playback/capture_only Kuninori Morimoto
2023-05-25  1:17 ` [PATCH v2 01/21] ASoC: soc-pcm.c: indicate error if stream has no playback no capture Kuninori Morimoto
2023-05-25  1:17 ` [PATCH v2 02/21] ASoC: soc-pcm.c: use dai_link on soc_get_playback_capture() Kuninori Morimoto
2023-05-25  1:18 ` [PATCH v2 03/21] ASoC: soc-pcm.c: cleanup soc_get_playback_capture() error Kuninori Morimoto
2023-05-25  1:18 ` [PATCH v2 04/21] ASoC: soc-pcm.c: use temporary variable at soc_get_playback_capture() Kuninori Morimoto
2023-05-25  1:18 ` [PATCH v2 05/21] ASoC: soc-pcm.c: tidyup playback/capture_only " Kuninori Morimoto
2023-05-25  1:18 ` [PATCH v2 06/21] ASoC: soc-pcm.c: cleanup normal connection loop at soc_get_playback_capture() part1 Kuninori Morimoto
2023-05-25  1:18 ` [PATCH v2 07/21] ASoC: soc-pcm.c: cleanup normal connection loop at soc_get_playback_capture() part2 Kuninori Morimoto
2023-05-25  1:19 ` [PATCH v2 08/21] ASoC: soc-pcm.c: cleanup soc_get_playback_capture() Kuninori Morimoto
2023-05-25  1:19 ` [PATCH v2 09/21] ASoC: amd: replace dpcm_playback/capture to playback/capture_only Kuninori Morimoto
2023-05-25  1:19 ` [PATCH v2 10/21] ASoC: fsl: " Kuninori Morimoto
2023-05-25  1:20 ` [PATCH v2 11/21] ASoC: sof: " Kuninori Morimoto
2023-05-25  1:20 ` [PATCH v2 12/21] ASoC: meson: " Kuninori Morimoto
2023-05-25  1:20 ` [PATCH v2 13/21] ASoC: Intel: " Kuninori Morimoto
2023-05-25  1:21 ` [PATCH v2 14/21] ASoC: samsung: " Kuninori Morimoto
2023-05-25  1:21 ` [PATCH v2 15/21] ASoC: mediatek: " Kuninori Morimoto
2023-05-25  1:21 ` [PATCH v2 16/21] ASoC: soc-dai.c: " Kuninori Morimoto
2023-05-25  1:21 ` [PATCH v2 17/21] ASoC: Intel/avs: " Kuninori Morimoto
2023-05-25  1:21 ` [PATCH v2 18/21] ASoC: soc-core.c: " Kuninori Morimoto
2023-05-25  1:21 ` [PATCH v2 19/21] ASoC: soc-topology.c: " Kuninori Morimoto
2023-05-25  1:21 ` [PATCH v2 20/21] ASoC: soc-compress.c: " Kuninori Morimoto
2023-05-25  1:22 ` [PATCH v2 21/21] ASoC: soc-pcm.c: remove dpcm_playback/capture Kuninori Morimoto
2023-05-25 23:47 ` Pierre-Louis Bossart [this message]
2023-05-26  1:11   ` [PATCH v2 00/21] ASoC: replace dpcm_playback/capture to playback/capture_only Kuninori Morimoto
2023-06-01 23:45     ` Kuninori Morimoto
2023-06-02 14:53       ` Pierre-Louis Bossart
2023-06-04 23:49         ` Kuninori Morimoto
2023-06-02 15:31       ` Mark Brown
2023-06-04 23:31         ` 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=ff4586eb-4363-2592-97f7-d2fa8bbdee8a@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=Vijendar.Mukunda@amd.com \
    --cc=Xiubo.Lee@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=amadeuszx.slawinski@linux.intel.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=brent.lu@intel.com \
    --cc=broonie@kernel.org \
    --cc=cezary.rojewski@intel.com \
    --cc=chunxu.li@mediatek.com \
    --cc=daniel.baluta@nxp.com \
    --cc=festevam@gmail.com \
    --cc=hdegoede@redhat.com \
    --cc=jbrunet@baylibre.com \
    --cc=jiaxin.yu@mediatek.com \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=khilman@baylibre.com \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=lgirdwood@gmail.com \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=matthias.bgg@gmail.com \
    --cc=neil.armstrong@linaro.org \
    --cc=nfraprado@collabora.com \
    --cc=nicoleotsuka@gmail.com \
    --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=shengjiu.wang@nxp.com \
    --cc=tiwai@suse.com \
    --cc=trevor.wu@mediatek.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=vkoul@kernel.org \
    --cc=wangyufen@huawei.com \
    --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 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.