All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/21] ASoC: replace dpcm_playback/capture to playback/capture_only
@ 2023-05-25  1:16 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
                   ` (21 more replies)
  0 siblings, 22 replies; 29+ messages in thread
From: Kuninori Morimoto @ 2023-05-25  1:16 UTC (permalink / raw)
  To: "Amadeusz S�awi�ski",
	"Nícolas F. R. A. Prado",
	"Uwe Kleine-König", chunxu.li,
	AngeloGioacchino Del Regno, Bard Liao, Brent Lu, Cezary Rojewski,
	Daniel Baluta, Hans de Goede, Jaroslav Kysela, Jerome Brunet,
	Jiaxin Yu, Kai Vehmanen, Kevin Hilman, Krzysztof Kozlowski,
	Liam Girdwood, Mark Brown, Matthias Brugger, Neil Armstrong,
	Peter Ujfalusi, Pierre-Louis Bossart, Ranjani Sridharan,
	Sascha Hauer, Shawn Guo, Shengjiu Wang, Sylwester Nawrocki,
	Takashi Iwai, Trevor Wu, Vijendar Mukunda, Vinod Koul, Wang Yufen,
	Xiubo Li
  Cc: Fabio Estevam, Martin Blumenstingl, Nicolin Chen, Shengjiu Wang,
	alsa-devel


Hi Mark

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.

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
  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(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2023-06-04 23:52 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH v2 00/21] ASoC: replace dpcm_playback/capture to playback/capture_only Pierre-Louis Bossart
2023-05-26  1:11   ` 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

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.