* [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6
@ 2019-11-22 5:37 Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 01/14] ASoC: soc-core: remove dai_link_list Kuninori Morimoto
` (15 more replies)
0 siblings, 16 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:37 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
Hi Mark
These are soc-core cleanup step6.
These doesn't add new features.
Kuninori Morimoto (14):
ASoC: soc-core: remove dai_link_list
ASoC: soc-core: remove snd_soc_disconnect_sync()
ASoC: soc-core: remove snd_soc_get_dai_substream()
ASoC: soc-core: move snd_soc_get_pcm_runtime()
ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime()
ASoC: soc-core: move snd_soc_find_dai_link()
ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime()
ASoC: soc-core: rename snd_soc_remove_dai_link() to snd_soc_remove_pcm_runtime()
ASoC: soc-core: move soc_link_dai_pcm_new()
ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new()
ASoC: soc-core: move soc_link_init()
ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime()
ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition
ASoC: soc-core: soc_set_name_prefix(): get component device_node at out of loop
include/sound/soc.h | 22 +--
sound/soc/fsl/fsl-asoc-card.c | 2 +-
sound/soc/pxa/mioa701_wm9713.c | 2 +-
sound/soc/samsung/bells.c | 12 +-
sound/soc/samsung/littlemill.c | 10 +-
sound/soc/samsung/snow.c | 2 +-
sound/soc/samsung/speyside.c | 4 +-
sound/soc/samsung/tm2_wm5110.c | 6 +-
sound/soc/samsung/tobermory.c | 6 +-
sound/soc/sh/rcar/core.c | 2 -
sound/soc/soc-core.c | 339 ++++++++++++++++-------------------------
sound/soc/soc-topology.c | 47 +++++-
sound/soc/tegra/tegra_wm8903.c | 2 +-
13 files changed, 204 insertions(+), 252 deletions(-)
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 01/14] ASoC: soc-core: remove dai_link_list
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
@ 2019-11-22 5:38 ` Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 02/14] ASoC: soc-core: remove snd_soc_disconnect_sync() Kuninori Morimoto
` (14 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:38 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
ASoC is using many lists.
Now, used dai_link is listed to card as dai_link_list.
[card]->[dai_link]->[dai_link]->...
This "dai_link" is used to create "rtd".
And this rtd is listed to card as rtd_list.
[card]->[rtd]->[rtd]->...
Here, each rtd has dai_link. This means, we can track all dai_link via
rtd list. This patch removes card dai_link_list, and uses rtd_list
instead of it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
include/sound/soc.h | 7 -------
sound/soc/soc-core.c | 17 +++++++----------
2 files changed, 7 insertions(+), 17 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index c28a1ed..b7ba3b9 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -852,7 +852,6 @@ struct snd_soc_dai_link {
/* Do not create a PCM for this DAI link (Backend link) */
unsigned int ignore:1;
- struct list_head list; /* DAI link list of the soc card */
#ifdef CONFIG_SND_SOC_TOPOLOGY
struct snd_soc_dobj dobj; /* For topology */
#endif
@@ -1037,7 +1036,6 @@ struct snd_soc_card {
/* CPU <--> Codec DAI links */
struct snd_soc_dai_link *dai_link; /* predefined links only */
int num_links; /* predefined links only */
- struct list_head dai_link_list; /* all links */
struct list_head rtd_list;
int num_rtd;
@@ -1107,11 +1105,6 @@ struct snd_soc_card {
((i) < (card)->num_aux_devs) && ((aux) = &(card)->aux_dev[i]); \
(i)++)
-#define for_each_card_links(card, link) \
- list_for_each_entry(link, &(card)->dai_link_list, list)
-#define for_each_card_links_safe(card, link, _link) \
- list_for_each_entry_safe(link, _link, &(card)->dai_link_list, list)
-
#define for_each_card_rtds(card, rtd) \
list_for_each_entry(rtd, &(card)->rtd_list, list)
#define for_each_card_rtds_safe(card, rtd, _rtd) \
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index cc0ef0f..19a2a89 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -934,11 +934,14 @@ struct snd_soc_dai_link *snd_soc_find_dai_link(struct snd_soc_card *card,
int id, const char *name,
const char *stream_name)
{
+ struct snd_soc_pcm_runtime *rtd;
struct snd_soc_dai_link *link;
lockdep_assert_held(&client_mutex);
- for_each_card_links(card, link) {
+ for_each_card_rtds(card, rtd) {
+ link = rtd->dai_link;
+
if (link->id != id)
continue;
@@ -1075,8 +1078,6 @@ void snd_soc_remove_dai_link(struct snd_soc_card *card,
if (card->remove_dai_link)
card->remove_dai_link(card, dai_link);
- list_del(&dai_link->list);
-
rtd = snd_soc_get_pcm_runtime(card, dai_link->name);
if (rtd)
soc_free_pcm_runtime(rtd);
@@ -1158,9 +1159,6 @@ int snd_soc_add_dai_link(struct snd_soc_card *card,
}
}
- /* see for_each_card_links */
- list_add_tail(&dai_link->list, &card->dai_link_list);
-
return 0;
_err_defer:
@@ -1946,7 +1944,7 @@ static void __soc_setup_card_name(char *name, int len,
static void soc_cleanup_card_resources(struct snd_soc_card *card,
int card_probed)
{
- struct snd_soc_dai_link *link, *_link;
+ struct snd_soc_pcm_runtime *rtd, *n;
if (card->snd_card)
snd_card_disconnect_sync(card->snd_card);
@@ -1957,8 +1955,8 @@ static void soc_cleanup_card_resources(struct snd_soc_card *card,
soc_remove_link_dais(card);
soc_remove_link_components(card);
- for_each_card_links_safe(card, link, _link)
- snd_soc_remove_dai_link(card, link);
+ for_each_card_rtds_safe(card, rtd, n)
+ snd_soc_remove_dai_link(card, rtd->dai_link);
/* remove auxiliary devices */
soc_remove_aux_devices(card);
@@ -2408,7 +2406,6 @@ int snd_soc_register_card(struct snd_soc_card *card)
INIT_LIST_HEAD(&card->aux_comp_list);
INIT_LIST_HEAD(&card->component_dev_list);
INIT_LIST_HEAD(&card->list);
- INIT_LIST_HEAD(&card->dai_link_list);
INIT_LIST_HEAD(&card->rtd_list);
INIT_LIST_HEAD(&card->dapm_dirty);
INIT_LIST_HEAD(&card->dobj_list);
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 02/14] ASoC: soc-core: remove snd_soc_disconnect_sync()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 01/14] ASoC: soc-core: remove dai_link_list Kuninori Morimoto
@ 2019-11-22 5:38 ` Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 03/14] ASoC: soc-core: remove snd_soc_get_dai_substream() Kuninori Morimoto
` (13 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:38 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Sound card disconnecting operation was needed when "sound driver" was
unbinded without unbinding "sound card".
In such case, sound driver should be stopped even though it was
playbacking/capturing. Otherwise clock open/close counter mismatch happen.
One headache was that we can't skip unbind in error case because unbind
operation doesn't check return value from each drivers.
snd_soc_disconnect_sync() was added for these purpose, and Renesas
sound card only is used it.
But now, ALSA SoC automatically disconnect sound card when sound driver
was unbinded. Thus, snd_soc_disconnect_sync() is no longer needed.
This patch removes it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/sh/rcar/core.c | 2 --
sound/soc/soc-core.c | 12 ------------
2 files changed, 14 deletions(-)
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index fc32cbb..35a6592 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -1808,8 +1808,6 @@ static int rsnd_remove(struct platform_device *pdev)
};
int ret = 0, i;
- snd_soc_disconnect_sync(&pdev->dev);
-
pm_runtime_disable(&pdev->dev);
for_each_rsnd_dai(rdai, priv, i) {
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 19a2a89..1f659e8b 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1444,18 +1444,6 @@ static int soc_probe_link_components(struct snd_soc_card *card)
return 0;
}
-void snd_soc_disconnect_sync(struct device *dev)
-{
- struct snd_soc_component *component =
- snd_soc_lookup_component(dev, NULL);
-
- if (!component || !component->card)
- return;
-
- snd_card_disconnect_sync(component->card->snd_card);
-}
-EXPORT_SYMBOL_GPL(snd_soc_disconnect_sync);
-
static int soc_link_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
struct snd_soc_pcm_runtime *rtd)
{
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 03/14] ASoC: soc-core: remove snd_soc_get_dai_substream()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 01/14] ASoC: soc-core: remove dai_link_list Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 02/14] ASoC: soc-core: remove snd_soc_disconnect_sync() Kuninori Morimoto
@ 2019-11-22 5:38 ` Kuninori Morimoto
2019-11-22 5:39 ` [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime() Kuninori Morimoto
` (12 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:38 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
No driver is using snd_soc_get_dai_substream(),
and snd_soc_get_pcm_runtime() is enough for such purpose.
We can revival it if it was needed in the future.
Let's remove unused function.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
include/sound/soc.h | 2 --
sound/soc/soc-core.c | 15 ---------------
2 files changed, 17 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index b7ba3b9..68ec5a0 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -464,8 +464,6 @@ static inline int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
void snd_soc_disconnect_sync(struct device *dev);
-struct snd_pcm_substream *snd_soc_get_dai_substream(struct snd_soc_card *card,
- const char *dai_link, int stream);
struct snd_soc_pcm_runtime *snd_soc_get_pcm_runtime(struct snd_soc_card *card,
const char *dai_link);
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 1f659e8b..e2a9ee9 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -389,21 +389,6 @@ struct snd_soc_component *snd_soc_lookup_component(struct device *dev,
}
EXPORT_SYMBOL_GPL(snd_soc_lookup_component);
-struct snd_pcm_substream *snd_soc_get_dai_substream(struct snd_soc_card *card,
- const char *dai_link, int stream)
-{
- struct snd_soc_pcm_runtime *rtd;
-
- for_each_card_rtds(card, rtd) {
- if (rtd->dai_link->no_pcm &&
- !strcmp(rtd->dai_link->name, dai_link))
- return rtd->pcm->streams[stream].substream;
- }
- dev_dbg(card->dev, "ASoC: failed to find dai link %s\n", dai_link);
- return NULL;
-}
-EXPORT_SYMBOL_GPL(snd_soc_get_dai_substream);
-
static const struct snd_soc_ops null_snd_soc_ops;
static void soc_release_rtd_dev(struct device *dev)
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (2 preceding siblings ...)
2019-11-22 5:38 ` [alsa-devel] [PATCH 03/14] ASoC: soc-core: remove snd_soc_get_dai_substream() Kuninori Morimoto
@ 2019-11-22 5:39 ` Kuninori Morimoto
2019-11-22 16:22 ` Pierre-Louis Bossart
2019-11-22 16:45 ` Pierre-Louis Bossart
2019-11-22 5:39 ` [alsa-devel] [PATCH 05/14] ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime() Kuninori Morimoto
` (11 subsequent siblings)
15 siblings, 2 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:39 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
This patch moves snd_soc_get_pcm_runtime() next to
snd_soc_get_dai_substream().
This is prepare for snd_soc_get_dai_substream() cleanup.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/soc-core.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index e2a9ee9..4baf2f1 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -389,8 +389,24 @@ struct snd_soc_component *snd_soc_lookup_component(struct device *dev,
}
EXPORT_SYMBOL_GPL(snd_soc_lookup_component);
+
static const struct snd_soc_ops null_snd_soc_ops;
+struct snd_soc_pcm_runtime
+*snd_soc_get_pcm_runtime(struct snd_soc_card *card,
+ const char *dai_link)
+{
+ struct snd_soc_pcm_runtime *rtd;
+
+ for_each_card_rtds(card, rtd) {
+ if (!strcmp(rtd->dai_link->name, dai_link))
+ return rtd;
+ }
+ dev_dbg(card->dev, "ASoC: failed to find rtd %s\n", dai_link);
+ return NULL;
+}
+EXPORT_SYMBOL_GPL(snd_soc_get_pcm_runtime);
+
static void soc_release_rtd_dev(struct device *dev)
{
/* "dev" means "rtd->dev" */
@@ -491,20 +507,6 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
return NULL;
}
-struct snd_soc_pcm_runtime *snd_soc_get_pcm_runtime(struct snd_soc_card *card,
- const char *dai_link)
-{
- struct snd_soc_pcm_runtime *rtd;
-
- for_each_card_rtds(card, rtd) {
- if (!strcmp(rtd->dai_link->name, dai_link))
- return rtd;
- }
- dev_dbg(card->dev, "ASoC: failed to find rtd %s\n", dai_link);
- return NULL;
-}
-EXPORT_SYMBOL_GPL(snd_soc_get_pcm_runtime);
-
static void snd_soc_flush_all_delayed_work(struct snd_soc_card *card)
{
struct snd_soc_pcm_runtime *rtd;
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 05/14] ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (3 preceding siblings ...)
2019-11-22 5:39 ` [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 5:39 ` Kuninori Morimoto
2019-11-22 5:39 ` [alsa-devel] [PATCH 06/14] ASoC: soc-core: move snd_soc_find_dai_link() Kuninori Morimoto
` (10 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:39 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Current snd_soc_get_pcm_runtime() is finding rtd by checking dai_link
name. But, it is strange and waste of CPU power, because its user want
to get rtd from dai_link, not from its name.
This patch find rtd via dai_link pointer instead of its name.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
include/sound/soc.h | 2 +-
sound/soc/fsl/fsl-asoc-card.c | 2 +-
sound/soc/pxa/mioa701_wm9713.c | 2 +-
sound/soc/samsung/bells.c | 12 ++++++------
sound/soc/samsung/littlemill.c | 10 +++++-----
sound/soc/samsung/snow.c | 2 +-
sound/soc/samsung/speyside.c | 4 ++--
sound/soc/samsung/tm2_wm5110.c | 6 +++---
sound/soc/samsung/tobermory.c | 6 +++---
sound/soc/soc-core.c | 9 ++++-----
sound/soc/tegra/tegra_wm8903.c | 2 +-
11 files changed, 28 insertions(+), 29 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 68ec5a0..40c2a67 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -465,7 +465,7 @@ static inline int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
void snd_soc_disconnect_sync(struct device *dev);
struct snd_soc_pcm_runtime *snd_soc_get_pcm_runtime(struct snd_soc_card *card,
- const char *dai_link);
+ struct snd_soc_dai_link *dai_link);
bool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd);
void snd_soc_runtime_activate(struct snd_soc_pcm_runtime *rtd, int stream);
diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c
index 39ea9bd..9ce55fe 100644
--- a/sound/soc/fsl/fsl-asoc-card.c
+++ b/sound/soc/fsl/fsl-asoc-card.c
@@ -256,7 +256,7 @@ static int fsl_asoc_card_set_bias_level(struct snd_soc_card *card,
unsigned int pll_out;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
codec_dai = rtd->codec_dai;
if (dapm->dev != codec_dai->dev)
return 0;
diff --git a/sound/soc/pxa/mioa701_wm9713.c b/sound/soc/pxa/mioa701_wm9713.c
index 129eb52..76e054d 100644
--- a/sound/soc/pxa/mioa701_wm9713.c
+++ b/sound/soc/pxa/mioa701_wm9713.c
@@ -72,7 +72,7 @@ static int rear_amp_event(struct snd_soc_dapm_widget *widget,
struct snd_soc_pcm_runtime *rtd;
struct snd_soc_component *component;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
component = rtd->codec_dai->component;
return rear_amp_power(component, SND_SOC_DAPM_EVENT_ON(event));
}
diff --git a/sound/soc/samsung/bells.c b/sound/soc/samsung/bells.c
index b60b226..58d8a81 100644
--- a/sound/soc/samsung/bells.c
+++ b/sound/soc/samsung/bells.c
@@ -59,7 +59,7 @@ static int bells_set_bias_level(struct snd_soc_card *card,
struct bells_drvdata *bells = card->drvdata;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_DSP_CODEC]);
codec_dai = rtd->codec_dai;
component = codec_dai->component;
@@ -105,7 +105,7 @@ static int bells_set_bias_level_post(struct snd_soc_card *card,
struct bells_drvdata *bells = card->drvdata;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_DSP_CODEC]);
codec_dai = rtd->codec_dai;
component = codec_dai->component;
@@ -151,10 +151,10 @@ static int bells_late_probe(struct snd_soc_card *card)
struct snd_soc_dai *wm9081_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_AP_DSP].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_AP_DSP]);
wm0010 = rtd->codec_dai->component;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_DSP_CODEC]);
component = rtd->codec_dai->component;
aif1_dai = rtd->codec_dai;
@@ -194,7 +194,7 @@ static int bells_late_probe(struct snd_soc_card *card)
return ret;
}
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_CP].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_CODEC_CP]);
aif2_dai = rtd->cpu_dai;
ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0);
@@ -206,7 +206,7 @@ static int bells_late_probe(struct snd_soc_card *card)
if (card->num_rtd == DAI_CODEC_SUB)
return 0;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_SUB].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_CODEC_SUB]);
aif3_dai = rtd->cpu_dai;
wm9081_dai = rtd->codec_dai;
diff --git a/sound/soc/samsung/littlemill.c b/sound/soc/samsung/littlemill.c
index 6132cee..59904f4 100644
--- a/sound/soc/samsung/littlemill.c
+++ b/sound/soc/samsung/littlemill.c
@@ -22,7 +22,7 @@ static int littlemill_set_bias_level(struct snd_soc_card *card,
struct snd_soc_dai *aif1_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
aif1_dai = rtd->codec_dai;
if (dapm->dev != aif1_dai->dev)
@@ -69,7 +69,7 @@ static int littlemill_set_bias_level_post(struct snd_soc_card *card,
struct snd_soc_dai *aif1_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
aif1_dai = rtd->codec_dai;
if (dapm->dev != aif1_dai->dev)
@@ -180,7 +180,7 @@ static int bbclk_ev(struct snd_soc_dapm_widget *w,
struct snd_soc_dai *aif2_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
aif2_dai = rtd->cpu_dai;
switch (event) {
@@ -263,11 +263,11 @@ static int littlemill_late_probe(struct snd_soc_card *card)
struct snd_soc_dai *aif2_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
component = rtd->codec_dai->component;
aif1_dai = rtd->codec_dai;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
aif2_dai = rtd->cpu_dai;
ret = snd_soc_dai_set_sysclk(aif1_dai, WM8994_SYSCLK_MCLK2,
diff --git a/sound/soc/samsung/snow.c b/sound/soc/samsung/snow.c
index 8ea7799..f075aae 100644
--- a/sound/soc/samsung/snow.c
+++ b/sound/soc/samsung/snow.c
@@ -106,7 +106,7 @@ static int snow_late_probe(struct snd_soc_card *card)
struct snd_soc_pcm_runtime *rtd;
struct snd_soc_dai *codec_dai;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
/* In the multi-codec case codec_dais 0 is MAX98095 and 1 is HDMI. */
if (rtd->num_codecs > 1)
diff --git a/sound/soc/samsung/speyside.c b/sound/soc/samsung/speyside.c
index 9e58cbe..5ccdfe0 100644
--- a/sound/soc/samsung/speyside.c
+++ b/sound/soc/samsung/speyside.c
@@ -24,7 +24,7 @@ static int speyside_set_bias_level(struct snd_soc_card *card,
struct snd_soc_dai *codec_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
codec_dai = rtd->codec_dai;
if (dapm->dev != codec_dai->dev)
@@ -60,7 +60,7 @@ static int speyside_set_bias_level_post(struct snd_soc_card *card,
struct snd_soc_dai *codec_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
codec_dai = rtd->codec_dai;
if (dapm->dev != codec_dai->dev)
diff --git a/sound/soc/samsung/tm2_wm5110.c b/sound/soc/samsung/tm2_wm5110.c
index bb9910d..10ff14b8 100644
--- a/sound/soc/samsung/tm2_wm5110.c
+++ b/sound/soc/samsung/tm2_wm5110.c
@@ -282,7 +282,7 @@ static int tm2_set_bias_level(struct snd_soc_card *card,
{
struct snd_soc_pcm_runtime *rtd;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
if (dapm->dev != rtd->codec_dai->dev)
return 0;
@@ -314,7 +314,7 @@ static int tm2_late_probe(struct snd_soc_card *card)
struct snd_soc_dai *aif2_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[TM2_DAI_AIF1].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[TM2_DAI_AIF1]);
aif1_dai = rtd->codec_dai;
priv->component = rtd->codec_dai->component;
@@ -324,7 +324,7 @@ static int tm2_late_probe(struct snd_soc_card *card)
return ret;
}
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[TM2_DAI_AIF2].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[TM2_DAI_AIF2]);
aif2_dai = rtd->codec_dai;
ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0);
diff --git a/sound/soc/samsung/tobermory.c b/sound/soc/samsung/tobermory.c
index ef51f28..fdce28c 100644
--- a/sound/soc/samsung/tobermory.c
+++ b/sound/soc/samsung/tobermory.c
@@ -22,7 +22,7 @@ static int tobermory_set_bias_level(struct snd_soc_card *card,
struct snd_soc_dai *codec_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
codec_dai = rtd->codec_dai;
if (dapm->dev != codec_dai->dev)
@@ -65,7 +65,7 @@ static int tobermory_set_bias_level_post(struct snd_soc_card *card,
struct snd_soc_dai *codec_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
codec_dai = rtd->codec_dai;
if (dapm->dev != codec_dai->dev)
@@ -180,7 +180,7 @@ static int tobermory_late_probe(struct snd_soc_card *card)
struct snd_soc_dai *codec_dai;
int ret;
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
component = rtd->codec_dai->component;
codec_dai = rtd->codec_dai;
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 4baf2f1..23595b3 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -389,20 +389,19 @@ struct snd_soc_component *snd_soc_lookup_component(struct device *dev,
}
EXPORT_SYMBOL_GPL(snd_soc_lookup_component);
-
static const struct snd_soc_ops null_snd_soc_ops;
struct snd_soc_pcm_runtime
*snd_soc_get_pcm_runtime(struct snd_soc_card *card,
- const char *dai_link)
+ struct snd_soc_dai_link *dai_link)
{
struct snd_soc_pcm_runtime *rtd;
for_each_card_rtds(card, rtd) {
- if (!strcmp(rtd->dai_link->name, dai_link))
+ if (rtd->dai_link == dai_link)
return rtd;
}
- dev_dbg(card->dev, "ASoC: failed to find rtd %s\n", dai_link);
+ dev_dbg(card->dev, "ASoC: failed to find rtd %s\n", dai_link->name);
return NULL;
}
EXPORT_SYMBOL_GPL(snd_soc_get_pcm_runtime);
@@ -1065,7 +1064,7 @@ void snd_soc_remove_dai_link(struct snd_soc_card *card,
if (card->remove_dai_link)
card->remove_dai_link(card, dai_link);
- rtd = snd_soc_get_pcm_runtime(card, dai_link->name);
+ rtd = snd_soc_get_pcm_runtime(card, dai_link);
if (rtd)
soc_free_pcm_runtime(rtd);
}
diff --git a/sound/soc/tegra/tegra_wm8903.c b/sound/soc/tegra/tegra_wm8903.c
index 6211dfd..f08d348 100644
--- a/sound/soc/tegra/tegra_wm8903.c
+++ b/sound/soc/tegra/tegra_wm8903.c
@@ -186,7 +186,7 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd)
static int tegra_wm8903_remove(struct snd_soc_card *card)
{
struct snd_soc_pcm_runtime *rtd =
- snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
+ snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
struct snd_soc_dai *codec_dai = rtd->codec_dai;
struct snd_soc_component *component = codec_dai->component;
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 06/14] ASoC: soc-core: move snd_soc_find_dai_link()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (4 preceding siblings ...)
2019-11-22 5:39 ` [alsa-devel] [PATCH 05/14] ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 5:39 ` Kuninori Morimoto
2019-11-22 5:40 ` [alsa-devel] [PATCH 07/14] ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime() Kuninori Morimoto
` (9 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:39 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
snd_soc_find_dai_link() is soc-topology specific function.
We don't need to have it at soc-core.
This patch moves it to soc-topology.c
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
include/sound/soc.h | 3 ---
sound/soc/soc-core.c | 44 --------------------------------------------
sound/soc/soc-topology.c | 41 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 41 insertions(+), 47 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 40c2a67..09d3d9b 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1327,9 +1327,6 @@ int snd_soc_add_dai_link(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link);
void snd_soc_remove_dai_link(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link);
-struct snd_soc_dai_link *snd_soc_find_dai_link(struct snd_soc_card *card,
- int id, const char *name,
- const char *stream_name);
struct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component,
struct snd_soc_dai_driver *dai_drv,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 23595b3..7878c3b 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -901,50 +901,6 @@ struct snd_soc_dai *snd_soc_find_dai(
}
EXPORT_SYMBOL_GPL(snd_soc_find_dai);
-/**
- * snd_soc_find_dai_link - Find a DAI link
- *
- * @card: soc card
- * @id: DAI link ID to match
- * @name: DAI link name to match, optional
- * @stream_name: DAI link stream name to match, optional
- *
- * This function will search all existing DAI links of the soc card to
- * find the link of the same ID. Since DAI links may not have their
- * unique ID, so name and stream name should also match if being
- * specified.
- *
- * Return: pointer of DAI link, or NULL if not found.
- */
-struct snd_soc_dai_link *snd_soc_find_dai_link(struct snd_soc_card *card,
- int id, const char *name,
- const char *stream_name)
-{
- struct snd_soc_pcm_runtime *rtd;
- struct snd_soc_dai_link *link;
-
- lockdep_assert_held(&client_mutex);
-
- for_each_card_rtds(card, rtd) {
- link = rtd->dai_link;
-
- if (link->id != id)
- continue;
-
- if (name && (!link->name || strcmp(name, link->name)))
- continue;
-
- if (stream_name && (!link->stream_name
- || strcmp(stream_name, link->stream_name)))
- continue;
-
- return link;
- }
-
- return NULL;
-}
-EXPORT_SYMBOL_GPL(snd_soc_find_dai_link);
-
static int soc_dai_link_sanity_check(struct snd_soc_card *card,
struct snd_soc_dai_link *link)
{
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 81d2af0..cbd605b 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -2207,6 +2207,47 @@ static int link_new_ver(struct soc_tplg *tplg,
return 0;
}
+/**
+ * snd_soc_find_dai_link - Find a DAI link
+ *
+ * @card: soc card
+ * @id: DAI link ID to match
+ * @name: DAI link name to match, optional
+ * @stream_name: DAI link stream name to match, optional
+ *
+ * This function will search all existing DAI links of the soc card to
+ * find the link of the same ID. Since DAI links may not have their
+ * unique ID, so name and stream name should also match if being
+ * specified.
+ *
+ * Return: pointer of DAI link, or NULL if not found.
+ */
+static struct snd_soc_dai_link *snd_soc_find_dai_link(struct snd_soc_card *card,
+ int id, const char *name,
+ const char *stream_name)
+{
+ struct snd_soc_pcm_runtime *rtd;
+ struct snd_soc_dai_link *link;
+
+ for_each_card_rtds(card, rtd) {
+ link = rtd->dai_link;
+
+ if (link->id != id)
+ continue;
+
+ if (name && (!link->name || strcmp(name, link->name)))
+ continue;
+
+ if (stream_name && (!link->stream_name
+ || strcmp(stream_name, link->stream_name)))
+ continue;
+
+ return link;
+ }
+
+ return NULL;
+}
+
/* Find and configure an existing physical DAI link */
static int soc_tplg_link_config(struct soc_tplg *tplg,
struct snd_soc_tplg_link_config *cfg)
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 07/14] ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (5 preceding siblings ...)
2019-11-22 5:39 ` [alsa-devel] [PATCH 06/14] ASoC: soc-core: move snd_soc_find_dai_link() Kuninori Morimoto
@ 2019-11-22 5:40 ` Kuninori Morimoto
2019-11-22 16:43 ` Pierre-Louis Bossart
2019-11-22 5:41 ` [alsa-devel] [PATCH 08/14] ASoC: soc-core: rename snd_soc_remove_dai_link() to snd_soc_remove_pcm_runtime() Kuninori Morimoto
` (8 subsequent siblings)
15 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:40 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Now soc-core and soc-topology is using snd_soc_add_dai_link().
It sounds like dai_link function.
But, it creates new pcm_runtime (= rtd), and connect it to card.
The purpose is adding pcm_runtime, not dai_link.
This patch renames function name.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
include/sound/soc.h | 4 ++--
sound/soc/soc-core.c | 18 +++++++++---------
sound/soc/soc-topology.c | 2 +-
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 09d3d9b..b223b2d 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1323,8 +1323,8 @@ int snd_soc_of_get_dai_link_codecs(struct device *dev,
struct snd_soc_dai_link *dai_link);
void snd_soc_of_put_dai_link_codecs(struct snd_soc_dai_link *dai_link);
-int snd_soc_add_dai_link(struct snd_soc_card *card,
- struct snd_soc_dai_link *dai_link);
+int snd_soc_add_pcm_runtime(struct snd_soc_card *card,
+ struct snd_soc_dai_link *dai_link);
void snd_soc_remove_dai_link(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link);
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 7878c3b..af2eed7 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1027,18 +1027,18 @@ void snd_soc_remove_dai_link(struct snd_soc_card *card,
EXPORT_SYMBOL_GPL(snd_soc_remove_dai_link);
/**
- * snd_soc_add_dai_link - Add a DAI link dynamically
- * @card: The ASoC card to which the DAI link is added
- * @dai_link: The new DAI link to add
+ * snd_soc_add_pcm_runtime - Add a pcm_runtime dynamically via dai_link
+ * @card: The ASoC card to which the pcm_runtime is added
+ * @dai_link: The DAI link to find pcm_runtime
*
- * This function adds a DAI link to the ASoC card's link list.
+ * This function adds a pcm_runtime ASoC card by using dai_link.
*
- * Note: Topology can use this API to add DAI links when probing the
+ * Note: Topology can use this API to add pcm_runtime when probing the
* topology component. And machine drivers can still define static
* DAI links in dai_link array.
*/
-int snd_soc_add_dai_link(struct snd_soc_card *card,
- struct snd_soc_dai_link *dai_link)
+int snd_soc_add_pcm_runtime(struct snd_soc_card *card,
+ struct snd_soc_dai_link *dai_link)
{
struct snd_soc_pcm_runtime *rtd;
struct snd_soc_dai_link_component *codec, *platform;
@@ -1107,7 +1107,7 @@ int snd_soc_add_dai_link(struct snd_soc_card *card,
soc_free_pcm_runtime(rtd);
return -EPROBE_DEFER;
}
-EXPORT_SYMBOL_GPL(snd_soc_add_dai_link);
+EXPORT_SYMBOL_GPL(snd_soc_add_pcm_runtime);
static void soc_set_of_name_prefix(struct snd_soc_component *component)
{
@@ -1944,7 +1944,7 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
/* add predefined DAI links to the list */
card->num_rtd = 0;
for_each_card_prelinks(card, i, dai_link) {
- ret = snd_soc_add_dai_link(card, dai_link);
+ ret = snd_soc_add_pcm_runtime(card, dai_link);
if (ret < 0)
goto probe_end;
}
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index cbd605b..de42788 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -1945,7 +1945,7 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
list_add(&link->dobj.list, &tplg->comp->dobj_list);
- snd_soc_add_dai_link(tplg->comp->card, link);
+ snd_soc_add_pcm_runtime(tplg->comp->card, link);
return 0;
}
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 08/14] ASoC: soc-core: rename snd_soc_remove_dai_link() to snd_soc_remove_pcm_runtime()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (6 preceding siblings ...)
2019-11-22 5:40 ` [alsa-devel] [PATCH 07/14] ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 5:41 ` Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 09/14] ASoC: soc-core: move soc_link_dai_pcm_new() Kuninori Morimoto
` (7 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:41 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Now soc-core and soc-topology is using snd_soc_remove_dai_link().
It sounds like dai_link function.
It removes pcm_runtime (= rtd) and disconnect it from card.
The purpose is removing pcm_runtime, not dai_link.
This patch renames function name.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
include/sound/soc.h | 4 ++--
sound/soc/soc-core.c | 29 +++++++++++------------------
sound/soc/soc-topology.c | 4 +++-
3 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index b223b2d..3923178 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1325,8 +1325,8 @@ void snd_soc_of_put_dai_link_codecs(struct snd_soc_dai_link *dai_link);
int snd_soc_add_pcm_runtime(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link);
-void snd_soc_remove_dai_link(struct snd_soc_card *card,
- struct snd_soc_dai_link *dai_link);
+void snd_soc_remove_pcm_runtime(struct snd_soc_card *card,
+ struct snd_soc_pcm_runtime *rtd);
struct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component,
struct snd_soc_dai_driver *dai_drv,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index af2eed7..1ad1116 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -998,33 +998,26 @@ static int soc_dai_link_sanity_check(struct snd_soc_card *card,
}
/**
- * snd_soc_remove_dai_link - Remove a DAI link from the list
- * @card: The ASoC card that owns the link
- * @dai_link: The DAI link to remove
+ * snd_soc_remove_pcm_runtime - Remove a pcm_runtime from card
+ * @card: The ASoC card to which the pcm_runtime has
+ * @rtd: The pcm_runtime to remove
*
- * This function removes a DAI link from the ASoC card's link list.
- *
- * For DAI links previously added by topology, topology should
- * remove them by using the dobj embedded in the link.
+ * This function removes a pcm_runtime from the ASoC card.
*/
-void snd_soc_remove_dai_link(struct snd_soc_card *card,
- struct snd_soc_dai_link *dai_link)
+void snd_soc_remove_pcm_runtime(struct snd_soc_card *card,
+ struct snd_soc_pcm_runtime *rtd)
{
- struct snd_soc_pcm_runtime *rtd;
-
lockdep_assert_held(&client_mutex);
/*
* Notify the machine driver for extra destruction
*/
if (card->remove_dai_link)
- card->remove_dai_link(card, dai_link);
+ card->remove_dai_link(card, rtd->dai_link);
- rtd = snd_soc_get_pcm_runtime(card, dai_link);
- if (rtd)
- soc_free_pcm_runtime(rtd);
+ soc_free_pcm_runtime(rtd);
}
-EXPORT_SYMBOL_GPL(snd_soc_remove_dai_link);
+EXPORT_SYMBOL_GPL(snd_soc_remove_pcm_runtime);
/**
* snd_soc_add_pcm_runtime - Add a pcm_runtime dynamically via dai_link
@@ -1104,7 +1097,7 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card,
return 0;
_err_defer:
- soc_free_pcm_runtime(rtd);
+ snd_soc_remove_pcm_runtime(card, rtd);
return -EPROBE_DEFER;
}
EXPORT_SYMBOL_GPL(snd_soc_add_pcm_runtime);
@@ -1886,7 +1879,7 @@ static void soc_cleanup_card_resources(struct snd_soc_card *card,
soc_remove_link_components(card);
for_each_card_rtds_safe(card, rtd, n)
- snd_soc_remove_dai_link(card, rtd->dai_link);
+ snd_soc_remove_pcm_runtime(card, rtd);
/* remove auxiliary devices */
soc_remove_aux_devices(card);
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index de42788..e9b660f 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -553,7 +553,9 @@ static void remove_link(struct snd_soc_component *comp,
kfree(link->cpus->dai_name);
list_del(&dobj->list);
- snd_soc_remove_dai_link(comp->card, link);
+
+ snd_soc_remove_pcm_runtime(comp->card,
+ snd_soc_get_pcm_runtime(comp->card, link));
kfree(link);
}
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 09/14] ASoC: soc-core: move soc_link_dai_pcm_new()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (7 preceding siblings ...)
2019-11-22 5:41 ` [alsa-devel] [PATCH 08/14] ASoC: soc-core: rename snd_soc_remove_dai_link() to snd_soc_remove_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 5:41 ` Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 10/14] ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new() Kuninori Morimoto
` (6 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:41 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
This patch moves soc_link_dai_pcm_new() to upper side.
This is prepare for its cleanup.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/soc-core.c | 42 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 1ad1116..78cd62d 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1102,6 +1102,27 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card,
}
EXPORT_SYMBOL_GPL(snd_soc_add_pcm_runtime);
+static int soc_link_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
+ struct snd_soc_pcm_runtime *rtd)
+{
+ int i, ret = 0;
+
+ for (i = 0; i < num_dais; ++i) {
+ struct snd_soc_dai_driver *drv = dais[i]->driver;
+
+ if (drv->pcm_new)
+ ret = drv->pcm_new(rtd, dais[i]);
+ if (ret < 0) {
+ dev_err(dais[i]->dev,
+ "ASoC: Failed to bind %s with pcm device\n",
+ dais[i]->name);
+ return ret;
+ }
+ }
+
+ return 0;
+}
+
static void soc_set_of_name_prefix(struct snd_soc_component *component)
{
struct device_node *of_node = soc_component_to_node(component);
@@ -1379,27 +1400,6 @@ static int soc_probe_link_components(struct snd_soc_card *card)
return 0;
}
-static int soc_link_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
- struct snd_soc_pcm_runtime *rtd)
-{
- int i, ret = 0;
-
- for (i = 0; i < num_dais; ++i) {
- struct snd_soc_dai_driver *drv = dais[i]->driver;
-
- if (drv->pcm_new)
- ret = drv->pcm_new(rtd, dais[i]);
- if (ret < 0) {
- dev_err(dais[i]->dev,
- "ASoC: Failed to bind %s with pcm device\n",
- dais[i]->name);
- return ret;
- }
- }
-
- return 0;
-}
-
static int soc_link_init(struct snd_soc_card *card,
struct snd_soc_pcm_runtime *rtd)
{
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 10/14] ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (8 preceding siblings ...)
2019-11-22 5:41 ` [alsa-devel] [PATCH 09/14] ASoC: soc-core: move soc_link_dai_pcm_new() Kuninori Morimoto
@ 2019-11-22 5:41 ` Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 11/14] ASoC: soc-core: move soc_link_init() Kuninori Morimoto
` (5 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:41 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
soc_link_dai_pcm_new() sounds like dai_link function,
but it is not related to it.
This patch rename soc_link_dai_pcm_new() to soc_dai_pcm_new().
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/soc-core.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 78cd62d..4c0bcda 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1102,8 +1102,8 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card,
}
EXPORT_SYMBOL_GPL(snd_soc_add_pcm_runtime);
-static int soc_link_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
- struct snd_soc_pcm_runtime *rtd)
+static int soc_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
+ struct snd_soc_pcm_runtime *rtd)
{
int i, ret = 0;
@@ -1464,11 +1464,11 @@ static int soc_link_init(struct snd_soc_card *card,
dai_link->stream_name, ret);
return ret;
}
- ret = soc_link_dai_pcm_new(&cpu_dai, 1, rtd);
+ ret = soc_dai_pcm_new(&cpu_dai, 1, rtd);
if (ret < 0)
return ret;
- ret = soc_link_dai_pcm_new(rtd->codec_dais,
- rtd->num_codecs, rtd);
+ ret = soc_dai_pcm_new(rtd->codec_dais,
+ rtd->num_codecs, rtd);
return ret;
}
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 11/14] ASoC: soc-core: move soc_link_init()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (9 preceding siblings ...)
2019-11-22 5:41 ` [alsa-devel] [PATCH 10/14] ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new() Kuninori Morimoto
@ 2019-11-22 5:41 ` Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 12/14] ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime() Kuninori Morimoto
` (4 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:41 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
This patch moves soc_link_init() to upper side.
This is prepare for its cleanup.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/soc-core.c | 144 +++++++++++++++++++++++++--------------------------
1 file changed, 72 insertions(+), 72 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 4c0bcda..f624a2f 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1123,6 +1123,78 @@ static int soc_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
return 0;
}
+static int soc_link_init(struct snd_soc_card *card,
+ struct snd_soc_pcm_runtime *rtd)
+{
+ struct snd_soc_dai_link *dai_link = rtd->dai_link;
+ struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+ struct snd_soc_rtdcom_list *rtdcom;
+ struct snd_soc_component *component;
+ int ret, num;
+
+ /* set default power off timeout */
+ rtd->pmdown_time = pmdown_time;
+
+ /* do machine specific initialization */
+ if (dai_link->init) {
+ ret = dai_link->init(rtd);
+ if (ret < 0) {
+ dev_err(card->dev, "ASoC: failed to init %s: %d\n",
+ dai_link->name, ret);
+ return ret;
+ }
+ }
+
+ if (dai_link->dai_fmt) {
+ ret = snd_soc_runtime_set_dai_fmt(rtd, dai_link->dai_fmt);
+ if (ret)
+ return ret;
+ }
+
+ /* add DPCM sysfs entries */
+ soc_dpcm_debugfs_add(rtd);
+
+ num = rtd->num;
+
+ /*
+ * most drivers will register their PCMs using DAI link ordering but
+ * topology based drivers can use the DAI link id field to set PCM
+ * device number and then use rtd + a base offset of the BEs.
+ */
+ for_each_rtd_components(rtd, rtdcom, component) {
+ if (!component->driver->use_dai_pcm_id)
+ continue;
+
+ if (rtd->dai_link->no_pcm)
+ num += component->driver->be_pcm_base;
+ else
+ num = rtd->dai_link->id;
+ }
+
+ /* create compress_device if possible */
+ ret = snd_soc_dai_compress_new(cpu_dai, rtd, num);
+ if (ret != -ENOTSUPP) {
+ if (ret < 0)
+ dev_err(card->dev, "ASoC: can't create compress %s\n",
+ dai_link->stream_name);
+ return ret;
+ }
+
+ /* create the pcm */
+ ret = soc_new_pcm(rtd, num);
+ if (ret < 0) {
+ dev_err(card->dev, "ASoC: can't create pcm %s :%d\n",
+ dai_link->stream_name, ret);
+ return ret;
+ }
+ ret = soc_dai_pcm_new(&cpu_dai, 1, rtd);
+ if (ret < 0)
+ return ret;
+ ret = soc_dai_pcm_new(rtd->codec_dais,
+ rtd->num_codecs, rtd);
+ return ret;
+}
+
static void soc_set_of_name_prefix(struct snd_soc_component *component)
{
struct device_node *of_node = soc_component_to_node(component);
@@ -1400,78 +1472,6 @@ static int soc_probe_link_components(struct snd_soc_card *card)
return 0;
}
-static int soc_link_init(struct snd_soc_card *card,
- struct snd_soc_pcm_runtime *rtd)
-{
- struct snd_soc_dai_link *dai_link = rtd->dai_link;
- struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
- struct snd_soc_rtdcom_list *rtdcom;
- struct snd_soc_component *component;
- int ret, num;
-
- /* set default power off timeout */
- rtd->pmdown_time = pmdown_time;
-
- /* do machine specific initialization */
- if (dai_link->init) {
- ret = dai_link->init(rtd);
- if (ret < 0) {
- dev_err(card->dev, "ASoC: failed to init %s: %d\n",
- dai_link->name, ret);
- return ret;
- }
- }
-
- if (dai_link->dai_fmt) {
- ret = snd_soc_runtime_set_dai_fmt(rtd, dai_link->dai_fmt);
- if (ret)
- return ret;
- }
-
- /* add DPCM sysfs entries */
- soc_dpcm_debugfs_add(rtd);
-
- num = rtd->num;
-
- /*
- * most drivers will register their PCMs using DAI link ordering but
- * topology based drivers can use the DAI link id field to set PCM
- * device number and then use rtd + a base offset of the BEs.
- */
- for_each_rtd_components(rtd, rtdcom, component) {
- if (!component->driver->use_dai_pcm_id)
- continue;
-
- if (rtd->dai_link->no_pcm)
- num += component->driver->be_pcm_base;
- else
- num = rtd->dai_link->id;
- }
-
- /* create compress_device if possible */
- ret = snd_soc_dai_compress_new(cpu_dai, rtd, num);
- if (ret != -ENOTSUPP) {
- if (ret < 0)
- dev_err(card->dev, "ASoC: can't create compress %s\n",
- dai_link->stream_name);
- return ret;
- }
-
- /* create the pcm */
- ret = soc_new_pcm(rtd, num);
- if (ret < 0) {
- dev_err(card->dev, "ASoC: can't create pcm %s :%d\n",
- dai_link->stream_name, ret);
- return ret;
- }
- ret = soc_dai_pcm_new(&cpu_dai, 1, rtd);
- if (ret < 0)
- return ret;
- ret = soc_dai_pcm_new(rtd->codec_dais,
- rtd->num_codecs, rtd);
- return ret;
-}
-
static void soc_unbind_aux_dev(struct snd_soc_card *card)
{
struct snd_soc_component *component, *_component;
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 12/14] ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime()
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (10 preceding siblings ...)
2019-11-22 5:41 ` [alsa-devel] [PATCH 11/14] ASoC: soc-core: move soc_link_init() Kuninori Morimoto
@ 2019-11-22 5:41 ` Kuninori Morimoto
2019-11-22 16:41 ` Pierre-Louis Bossart
2019-11-22 5:42 ` [alsa-devel] [PATCH 13/14] ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition Kuninori Morimoto
` (3 subsequent siblings)
15 siblings, 1 reply; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:41 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
soc-core is using soc_link_init().
It sounds like dai_link function, but it is for pcm_runtime.
This patch renames soc_link_init() to soc_init_pcm_runtime(),
and checks missing return value.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/soc-core.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index f624a2f..843bfe1 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1123,8 +1123,8 @@ static int soc_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
return 0;
}
-static int soc_link_init(struct snd_soc_card *card,
- struct snd_soc_pcm_runtime *rtd)
+static int soc_init_pcm_runtime(struct snd_soc_card *card,
+ struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_dai_link *dai_link = rtd->dai_link;
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
@@ -1998,8 +1998,11 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
goto probe_end;
}
- for_each_card_rtds(card, rtd)
- soc_link_init(card, rtd);
+ for_each_card_rtds(card, rtd) {
+ ret = soc_init_pcm_runtime(card, rtd);
+ if (ret < 0)
+ goto probe_end;
+ }
snd_soc_dapm_link_dai_widgets(card);
snd_soc_dapm_connect_dai_link_widgets(card);
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 13/14] ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (11 preceding siblings ...)
2019-11-22 5:41 ` [alsa-devel] [PATCH 12/14] ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 5:42 ` Kuninori Morimoto
2019-11-22 5:42 ` [alsa-devel] [PATCH 14/14] ASoC: soc-core: soc_set_name_prefix(): get component device_node at out of loop Kuninori Morimoto
` (2 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:42 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Current soc_set_name_prefix() for loop is checking both codec_conf
pointer and its number
for (...; i < card->num_configs && card->codec_conf; ...)
But, if card->num_configs exists but card->codec_conf was NULL,
it is just bug.
This patch cleanups for loop condition.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/soc-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 843bfe1..af33fbc 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1211,7 +1211,7 @@ static void soc_set_name_prefix(struct snd_soc_card *card,
{
int i;
- for (i = 0; i < card->num_configs && card->codec_conf; i++) {
+ for (i = 0; i < card->num_configs; i++) {
struct snd_soc_codec_conf *map = &card->codec_conf[i];
struct device_node *of_node = soc_component_to_node(component);
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [alsa-devel] [PATCH 14/14] ASoC: soc-core: soc_set_name_prefix(): get component device_node at out of loop
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (12 preceding siblings ...)
2019-11-22 5:42 ` [alsa-devel] [PATCH 13/14] ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition Kuninori Morimoto
@ 2019-11-22 5:42 ` Kuninori Morimoto
2019-11-22 16:49 ` [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Pierre-Louis Bossart
2019-11-22 20:34 ` Sridharan, Ranjani
15 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-22 5:42 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Component device_node is not related to codec_conf loop at
soc_set_name_prefix().
This patch moves it to out of loop.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/soc-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index af33fbc..089394a 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1209,11 +1209,11 @@ static void soc_set_of_name_prefix(struct snd_soc_component *component)
static void soc_set_name_prefix(struct snd_soc_card *card,
struct snd_soc_component *component)
{
+ struct device_node *of_node = soc_component_to_node(component);
int i;
for (i = 0; i < card->num_configs; i++) {
struct snd_soc_codec_conf *map = &card->codec_conf[i];
- struct device_node *of_node = soc_component_to_node(component);
if (map->of_node && of_node != map->of_node)
continue;
--
2.7.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime()
2019-11-22 5:39 ` [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 16:22 ` Pierre-Louis Bossart
2019-11-22 16:45 ` Pierre-Louis Bossart
1 sibling, 0 replies; 23+ messages in thread
From: Pierre-Louis Bossart @ 2019-11-22 16:22 UTC (permalink / raw)
To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA
On 11/21/19 11:39 PM, Kuninori Morimoto wrote:
>
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>
> This patch moves snd_soc_get_pcm_runtime() next to
> snd_soc_get_dai_substream().
> This is prepare for snd_soc_get_dai_substream() cleanup.
which was done in the previous patch?
ASoC: soc-core: remove snd_soc_get_dai_substream()
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 12/14] ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime()
2019-11-22 5:41 ` [alsa-devel] [PATCH 12/14] ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 16:41 ` Pierre-Louis Bossart
0 siblings, 0 replies; 23+ messages in thread
From: Pierre-Louis Bossart @ 2019-11-22 16:41 UTC (permalink / raw)
To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA
> +static int soc_init_pcm_runtime(struct snd_soc_card *card,
> + struct snd_soc_pcm_runtime *rtd)
> {
> struct snd_soc_dai_link *dai_link = rtd->dai_link;
> struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
> @@ -1998,8 +1998,11 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
> goto probe_end;
> }
>
> - for_each_card_rtds(card, rtd)
> - soc_link_init(card, rtd);
> + for_each_card_rtds(card, rtd) {
> + ret = soc_init_pcm_runtime(card, rtd);
> + if (ret < 0)
> + goto probe_end;
> + }
might be better to first introduce the error check (functional change),
then rename?
>
> snd_soc_dapm_link_dai_widgets(card);
> snd_soc_dapm_connect_dai_link_widgets(card);
>
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 07/14] ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime()
2019-11-22 5:40 ` [alsa-devel] [PATCH 07/14] ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime() Kuninori Morimoto
@ 2019-11-22 16:43 ` Pierre-Louis Bossart
0 siblings, 0 replies; 23+ messages in thread
From: Pierre-Louis Bossart @ 2019-11-22 16:43 UTC (permalink / raw)
To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA
On 11/21/19 11:40 PM, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>
> Now soc-core and soc-topology is using snd_soc_add_dai_link().
> It sounds like dai_link function.
> But, it creates new pcm_runtime (= rtd), and connect it to card.
> The purpose is adding pcm_runtime, not dai_link.
this function seems to have 2 purposes, dai_link operations and
pcm_runtime creation.
int snd_soc_add_dai_link(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link)
{
/*
* Notify the machine driver for extra initialization
*/
if (card->add_dai_link)
card->add_dai_link(card, dai_link);
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime()
2019-11-22 5:39 ` [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime() Kuninori Morimoto
2019-11-22 16:22 ` Pierre-Louis Bossart
@ 2019-11-22 16:45 ` Pierre-Louis Bossart
1 sibling, 0 replies; 23+ messages in thread
From: Pierre-Louis Bossart @ 2019-11-22 16:45 UTC (permalink / raw)
To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA
On 11/21/19 11:39 PM, Kuninori Morimoto wrote:
>
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>
> This patch moves snd_soc_get_pcm_runtime() next to
> snd_soc_get_dai_substream().
> This is prepare for snd_soc_get_dai_substream() cleanup.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
CHECK: Please don't use multiple blank lines
#23: FILE: sound/soc/soc-core.c:392:
+
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (13 preceding siblings ...)
2019-11-22 5:42 ` [alsa-devel] [PATCH 14/14] ASoC: soc-core: soc_set_name_prefix(): get component device_node at out of loop Kuninori Morimoto
@ 2019-11-22 16:49 ` Pierre-Louis Bossart
2019-11-25 0:01 ` Kuninori Morimoto
2019-11-22 20:34 ` Sridharan, Ranjani
15 siblings, 1 reply; 23+ messages in thread
From: Pierre-Louis Bossart @ 2019-11-22 16:49 UTC (permalink / raw)
To: Kuninori Morimoto, Mark Brown; +Cc: Linux-ALSA
On 11/21/19 11:37 PM, Kuninori Morimoto wrote:
>
> Hi Mark
>
> These are soc-core cleanup step6.
> These doesn't add new features.
Looks mostly good to me, I only have a set of nit-picks.
First tests look ok (2 known/unrelated errors)
https://sof-ci.01.org/linuxpr/PR1538/build2542/devicetest/
Sounds promising, thanks for all this Morimoto-san.
>
> Kuninori Morimoto (14):
> ASoC: soc-core: remove dai_link_list
> ASoC: soc-core: remove snd_soc_disconnect_sync()
> ASoC: soc-core: remove snd_soc_get_dai_substream()
> ASoC: soc-core: move snd_soc_get_pcm_runtime()
> ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime()
> ASoC: soc-core: move snd_soc_find_dai_link()
> ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime()
> ASoC: soc-core: rename snd_soc_remove_dai_link() to snd_soc_remove_pcm_runtime()
> ASoC: soc-core: move soc_link_dai_pcm_new()
> ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new()
> ASoC: soc-core: move soc_link_init()
> ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime()
> ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition
> ASoC: soc-core: soc_set_name_prefix(): get component device_node at out of loop
>
> include/sound/soc.h | 22 +--
> sound/soc/fsl/fsl-asoc-card.c | 2 +-
> sound/soc/pxa/mioa701_wm9713.c | 2 +-
> sound/soc/samsung/bells.c | 12 +-
> sound/soc/samsung/littlemill.c | 10 +-
> sound/soc/samsung/snow.c | 2 +-
> sound/soc/samsung/speyside.c | 4 +-
> sound/soc/samsung/tm2_wm5110.c | 6 +-
> sound/soc/samsung/tobermory.c | 6 +-
> sound/soc/sh/rcar/core.c | 2 -
> sound/soc/soc-core.c | 339 ++++++++++++++++-------------------------
> sound/soc/soc-topology.c | 47 +++++-
> sound/soc/tegra/tegra_wm8903.c | 2 +-
> 13 files changed, 204 insertions(+), 252 deletions(-)
>
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
` (14 preceding siblings ...)
2019-11-22 16:49 ` [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Pierre-Louis Bossart
@ 2019-11-22 20:34 ` Sridharan, Ranjani
2019-11-25 0:01 ` Kuninori Morimoto
15 siblings, 1 reply; 23+ messages in thread
From: Sridharan, Ranjani @ 2019-11-22 20:34 UTC (permalink / raw)
To: Kuninori Morimoto; +Cc: Linux-ALSA, Mark Brown
On Thu, Nov 21, 2019 at 9:39 PM Kuninori Morimoto <
kuninori.morimoto.gx@renesas.com> wrote:
>
> Hi Mark
>
> These are soc-core cleanup step6.
> These doesn't add new features.
>
> Kuninori Morimoto (14):
> ASoC: soc-core: remove dai_link_list
> ASoC: soc-core: remove snd_soc_disconnect_sync()
> ASoC: soc-core: remove snd_soc_get_dai_substream()
> ASoC: soc-core: move snd_soc_get_pcm_runtime()
> ASoC: soc-core: find rtd via dai_link pointer at
> snd_soc_get_pcm_runtime()
> ASoC: soc-core: move snd_soc_find_dai_link()
> ASoC: soc-core: rename snd_soc_add_dai_link() to
> snd_soc_add_pcm_runtime()
> ASoC: soc-core: rename snd_soc_remove_dai_link() to
> snd_soc_remove_pcm_runtime()
> ASoC: soc-core: move soc_link_dai_pcm_new()
> ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new()
> ASoC: soc-core: move soc_link_init()
> ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime()
> ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition
> ASoC: soc-core: soc_set_name_prefix(): get component device_node at out
> of loop
>
Looks good to me, Morimoto-san. Thanks for this cleanup!
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
>
> include/sound/soc.h | 22 +--
> sound/soc/fsl/fsl-asoc-card.c | 2 +-
> sound/soc/pxa/mioa701_wm9713.c | 2 +-
> sound/soc/samsung/bells.c | 12 +-
> sound/soc/samsung/littlemill.c | 10 +-
> sound/soc/samsung/snow.c | 2 +-
> sound/soc/samsung/speyside.c | 4 +-
> sound/soc/samsung/tm2_wm5110.c | 6 +-
> sound/soc/samsung/tobermory.c | 6 +-
> sound/soc/sh/rcar/core.c | 2 -
> sound/soc/soc-core.c | 339
> ++++++++++++++++-------------------------
> sound/soc/soc-topology.c | 47 +++++-
> sound/soc/tegra/tegra_wm8903.c | 2 +-
> 13 files changed, 204 insertions(+), 252 deletions(-)
>
> --
> 2.7.4
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6
2019-11-22 16:49 ` [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Pierre-Louis Bossart
@ 2019-11-25 0:01 ` Kuninori Morimoto
0 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-25 0:01 UTC (permalink / raw)
To: Pierre-Louis Bossart; +Cc: Linux-ALSA, Mark Brown
Hi Pierre-Louis
Thank you for reviewing, and testing
> > These are soc-core cleanup step6.
> > These doesn't add new features.
>
> Looks mostly good to me, I only have a set of nit-picks.
>
> First tests look ok (2 known/unrelated errors)
> https://sof-ci.01.org/linuxpr/PR1538/build2542/devicetest/
>
> Sounds promising, thanks for all this Morimoto-san.
I will fixup and re-post patches.
Thank you for your help !!
Best regards
---
Kuninori Morimoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6
2019-11-22 20:34 ` Sridharan, Ranjani
@ 2019-11-25 0:01 ` Kuninori Morimoto
0 siblings, 0 replies; 23+ messages in thread
From: Kuninori Morimoto @ 2019-11-25 0:01 UTC (permalink / raw)
To: Sridharan, Ranjani; +Cc: Linux-ALSA, Mark Brown
Hi Sridharan
Thank you for reviewing
> Kuninori Morimoto (14):
> ASoC: soc-core: remove dai_link_list
> ASoC: soc-core: remove snd_soc_disconnect_sync()
> ASoC: soc-core: remove snd_soc_get_dai_substream()
> ASoC: soc-core: move snd_soc_get_pcm_runtime()
> ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime()
> ASoC: soc-core: move snd_soc_find_dai_link()
> ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime()
> ASoC: soc-core: rename snd_soc_remove_dai_link() to snd_soc_remove_pcm_runtime()
> ASoC: soc-core: move soc_link_dai_pcm_new()
> ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new()
> ASoC: soc-core: move soc_link_init()
> ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime()
> ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition
> ASoC: soc-core: soc_set_name_prefix(): get component device_node at out of loop
>
> Looks good to me, Morimoto-san. Thanks for this cleanup!
> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
I will post v2 patch with your reviewed-by
Thank you for your help !!
Best regards
---
Kuninori Morimoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2019-11-25 0:03 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-22 5:37 [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 01/14] ASoC: soc-core: remove dai_link_list Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 02/14] ASoC: soc-core: remove snd_soc_disconnect_sync() Kuninori Morimoto
2019-11-22 5:38 ` [alsa-devel] [PATCH 03/14] ASoC: soc-core: remove snd_soc_get_dai_substream() Kuninori Morimoto
2019-11-22 5:39 ` [alsa-devel] [PATCH 04/14] ASoC: soc-core: move snd_soc_get_pcm_runtime() Kuninori Morimoto
2019-11-22 16:22 ` Pierre-Louis Bossart
2019-11-22 16:45 ` Pierre-Louis Bossart
2019-11-22 5:39 ` [alsa-devel] [PATCH 05/14] ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime() Kuninori Morimoto
2019-11-22 5:39 ` [alsa-devel] [PATCH 06/14] ASoC: soc-core: move snd_soc_find_dai_link() Kuninori Morimoto
2019-11-22 5:40 ` [alsa-devel] [PATCH 07/14] ASoC: soc-core: rename snd_soc_add_dai_link() to snd_soc_add_pcm_runtime() Kuninori Morimoto
2019-11-22 16:43 ` Pierre-Louis Bossart
2019-11-22 5:41 ` [alsa-devel] [PATCH 08/14] ASoC: soc-core: rename snd_soc_remove_dai_link() to snd_soc_remove_pcm_runtime() Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 09/14] ASoC: soc-core: move soc_link_dai_pcm_new() Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 10/14] ASoC: soc-core: rename soc_link_dai_pcm_new() to soc_dai_pcm_new() Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 11/14] ASoC: soc-core: move soc_link_init() Kuninori Morimoto
2019-11-22 5:41 ` [alsa-devel] [PATCH 12/14] ASoC: soc-core: rename soc_link_init() to soc_init_pcm_runtime() Kuninori Morimoto
2019-11-22 16:41 ` Pierre-Louis Bossart
2019-11-22 5:42 ` [alsa-devel] [PATCH 13/14] ASoC: soc-core: soc_set_name_prefix(): tidyup loop condition Kuninori Morimoto
2019-11-22 5:42 ` [alsa-devel] [PATCH 14/14] ASoC: soc-core: soc_set_name_prefix(): get component device_node at out of loop Kuninori Morimoto
2019-11-22 16:49 ` [alsa-devel] [PATCH 00/14] ASoC: soc-core cleanup step6 Pierre-Louis Bossart
2019-11-25 0:01 ` Kuninori Morimoto
2019-11-22 20:34 ` Sridharan, Ranjani
2019-11-25 0:01 ` Kuninori Morimoto
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).