All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] ASoC: rsrc-card to simple-scu-card
@ 2016-08-23  1:33 Kuninori Morimoto
  2016-08-23  1:33 ` [PATCH v2 1/4] ASoC: rsrc-card: remove board specific compatible Kuninori Morimoto
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Kuninori Morimoto @ 2016-08-23  1:33 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Simon, Liam Girdwood


Hi Mark

Thesee are v2 of rsrc-card to simple-scu-card.

rsrc-card was created for DPCM sound card for Renesas,
but we can reuse this driver as more generic purpose.
This driver is supporting Multi CPU and Single Codec DPCM system.

Kuninori Morimoto (4):
  ASoC: rsrc-card: remove board specific compatible
  ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1
  ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2
  ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase3

 .../bindings/sound/renesas,rsrc-card.txt           |  75 ---------
 .../devicetree/bindings/sound/simple-scu-card.txt  |  80 ++++++++++
 sound/soc/generic/Kconfig                          |   7 +
 sound/soc/generic/Makefile                         |   2 +
 .../rcar/rsrc-card.c => generic/simple-scu-card.c} | 172 +++++++++------------
 sound/soc/sh/Kconfig                               |   6 -
 sound/soc/sh/rcar/Makefile                         |   3 -
 7 files changed, 162 insertions(+), 183 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
 create mode 100644 Documentation/devicetree/bindings/sound/simple-scu-card.txt
 rename sound/soc/{sh/rcar/rsrc-card.c => generic/simple-scu-card.c} (57%)

-- 
1.9.1

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

* [PATCH v2 1/4] ASoC: rsrc-card: remove board specific compatible
  2016-08-23  1:33 [PATCH v2 0/4] ASoC: rsrc-card to simple-scu-card Kuninori Morimoto
@ 2016-08-23  1:33 ` Kuninori Morimoto
  2016-08-24 11:20   ` Applied "ASoC: rsrc-card: remove board specific compatible" to the asoc tree Mark Brown
  2016-08-23  1:34 ` [PATCH v2 2/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1 Kuninori Morimoto
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Kuninori Morimoto @ 2016-08-23  1:33 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Simon, Liam Girdwood


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

rsrc-card has board specific compatible (= lager/koelsh), but these were
created as 1st prototype, and it is used in my test environment only.
Now normal user can use generic compatible (= renesas,rsrc-card).
Removing these board specific compatible doesn't breake compatibility.
This patch remove these.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - new patch

 .../devicetree/bindings/sound/renesas,rsrc-card.txt         |  7 ++-----
 sound/soc/sh/rcar/rsrc-card.c                               | 13 -------------
 2 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
index 255ece3..f148bf2 100644
--- a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
+++ b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
@@ -4,11 +4,8 @@ Renesas Sampling Rate Convert Sound Card specifies audio DAI connections of SoC
 
 Required properties:
 
-- compatible				: "renesas,rsrc-card{,<board>}"
-					  Examples with boards are:
-					    - "renesas,rsrc-card"
-					    - "renesas,rsrc-card,lager"
-					    - "renesas,rsrc-card,koelsch"
+- compatible				: "renesas,rsrc-card"
+
 Optional properties:
 
 - card_name				: User specified audio sound card name, one string
diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/sh/rcar/rsrc-card.c
index 16dc13e..ce9f911 100644
--- a/sound/soc/sh/rcar/rsrc-card.c
+++ b/sound/soc/sh/rcar/rsrc-card.c
@@ -28,20 +28,7 @@ struct rsrc_card_of_data {
 	int num_routes;
 };
 
-static const struct snd_soc_dapm_route routes_ssi0_ak4642[] = {
-	{"ak4642 Playback", NULL, "DAI0 Playback"},
-	{"DAI0 Capture", NULL, "ak4642 Capture"},
-};
-
-static const struct rsrc_card_of_data routes_of_ssi0_ak4642 = {
-	.prefix		= "ak4642",
-	.routes		= routes_ssi0_ak4642,
-	.num_routes	= ARRAY_SIZE(routes_ssi0_ak4642),
-};
-
 static const struct of_device_id rsrc_card_of_match[] = {
-	{ .compatible = "renesas,rsrc-card,lager",	.data = &routes_of_ssi0_ak4642 },
-	{ .compatible = "renesas,rsrc-card,koelsch",	.data = &routes_of_ssi0_ak4642 },
 	{ .compatible = "renesas,rsrc-card", },
 	{},
 };
-- 
1.9.1

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

* [PATCH v2 2/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1
  2016-08-23  1:33 [PATCH v2 0/4] ASoC: rsrc-card to simple-scu-card Kuninori Morimoto
  2016-08-23  1:33 ` [PATCH v2 1/4] ASoC: rsrc-card: remove board specific compatible Kuninori Morimoto
@ 2016-08-23  1:34 ` Kuninori Morimoto
  2016-08-24 11:20   ` Applied "ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1" to the asoc tree Mark Brown
  2016-08-23  1:34 ` [PATCH v2 3/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2 Kuninori Morimoto
  2016-08-23  1:35 ` [PATCH v2 4/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase3 Kuninori Morimoto
  3 siblings, 1 reply; 8+ messages in thread
From: Kuninori Morimoto @ 2016-08-23  1:34 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Simon, Liam Girdwood

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

rsrc-card which is using DPCM feature was created for Renesas sound.
But not only Renesas, but many SoC can use this driver, because
it is based on simple-card driver.
To use it as more open driver, rsrc-card will be renamed to
simple-scu-card. In order to easy patch review, as 1st step,
this patch renames "rsrc" function prefix to "asoc_simple".

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - dpcm-card -> scu-card

 sound/soc/sh/rcar/rsrc-card.c | 108 +++++++++++++++++++++---------------------
 1 file changed, 54 insertions(+), 54 deletions(-)

diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/sh/rcar/rsrc-card.c
index ce9f911..a0d0f36 100644
--- a/sound/soc/sh/rcar/rsrc-card.c
+++ b/sound/soc/sh/rcar/rsrc-card.c
@@ -1,5 +1,5 @@
 /*
- * Renesas Sampling Rate Convert Sound Card for DPCM
+ * ASoC simple SCU sound card support
  *
  * Copyright (C) 2015 Renesas Solutions Corp.
  * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
@@ -22,21 +22,21 @@
 #include <sound/soc-dai.h>
 #include <sound/simple_card_utils.h>
 
-struct rsrc_card_of_data {
+struct asoc_simple_card_of_data {
 	const char *prefix;
 	const struct snd_soc_dapm_route *routes;
 	int num_routes;
 };
 
-static const struct of_device_id rsrc_card_of_match[] = {
+static const struct of_device_id asoc_simple_card_of_match[] = {
 	{ .compatible = "renesas,rsrc-card", },
 	{},
 };
-MODULE_DEVICE_TABLE(of, rsrc_card_of_match);
+MODULE_DEVICE_TABLE(of, asoc_simple_card_of_match);
 
 #define IDX_CPU		0
 #define IDX_CODEC	1
-struct rsrc_card_priv {
+struct asoc_simple_card_priv {
 	struct snd_soc_card snd_card;
 	struct snd_soc_codec_conf codec_conf;
 	struct asoc_simple_dai *dai_props;
@@ -45,48 +45,48 @@ struct rsrc_card_priv {
 	u32 convert_channels;
 };
 
-#define rsrc_priv_to_dev(priv) ((priv)->snd_card.dev)
-#define rsrc_priv_to_link(priv, i) ((priv)->snd_card.dai_link + (i))
-#define rsrc_priv_to_props(priv, i) ((priv)->dai_props + (i))
+#define simple_priv_to_dev(priv) ((priv)->snd_card.dev)
+#define simple_priv_to_link(priv, i) ((priv)->snd_card.dai_link + (i))
+#define simple_priv_to_props(priv, i) ((priv)->dai_props + (i))
 
 #define DAI	"sound-dai"
 #define CELL	"#sound-dai-cells"
 
-static int rsrc_card_startup(struct snd_pcm_substream *substream)
+static int asoc_simple_card_startup(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-	struct rsrc_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
 	struct asoc_simple_dai *dai_props =
-		rsrc_priv_to_props(priv, rtd->num);
+		simple_priv_to_props(priv, rtd->num);
 
 	return clk_prepare_enable(dai_props->clk);
 }
 
-static void rsrc_card_shutdown(struct snd_pcm_substream *substream)
+static void asoc_simple_card_shutdown(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-	struct rsrc_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
 	struct asoc_simple_dai *dai_props =
-		rsrc_priv_to_props(priv, rtd->num);
+		simple_priv_to_props(priv, rtd->num);
 
 	clk_disable_unprepare(dai_props->clk);
 }
 
-static struct snd_soc_ops rsrc_card_ops = {
-	.startup = rsrc_card_startup,
-	.shutdown = rsrc_card_shutdown,
+static struct snd_soc_ops asoc_simple_card_ops = {
+	.startup = asoc_simple_card_startup,
+	.shutdown = asoc_simple_card_shutdown,
 };
 
-static int rsrc_card_dai_init(struct snd_soc_pcm_runtime *rtd)
+static int asoc_simple_card_dai_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct rsrc_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
 	struct snd_soc_dai *dai;
 	struct snd_soc_dai_link *dai_link;
 	struct asoc_simple_dai *dai_props;
 	int num = rtd->num;
 
-	dai_link	= rsrc_priv_to_link(priv, num);
-	dai_props	= rsrc_priv_to_props(priv, num);
+	dai_link	= simple_priv_to_link(priv, num);
+	dai_props	= simple_priv_to_props(priv, num);
 	dai		= dai_link->dynamic ?
 				rtd->cpu_dai :
 				rtd->codec_dai;
@@ -94,10 +94,10 @@ static int rsrc_card_dai_init(struct snd_soc_pcm_runtime *rtd)
 	return asoc_simple_card_init_dai(dai, dai_props);
 }
 
-static int rsrc_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
+static int asoc_simple_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 					struct snd_pcm_hw_params *params)
 {
-	struct rsrc_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
 	struct snd_interval *rate = hw_param_interval(params,
 						      SNDRV_PCM_HW_PARAM_RATE);
 	struct snd_interval *channels = hw_param_interval(params,
@@ -114,13 +114,13 @@ static int rsrc_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 	return 0;
 }
 
-static int rsrc_card_parse_links(struct device_node *np,
-				 struct rsrc_card_priv *priv,
-				 int idx, bool is_fe)
+static int asoc_simple_card_parse_links(struct device_node *np,
+					struct asoc_simple_card_priv *priv,
+					int idx, bool is_fe)
 {
-	struct device *dev = rsrc_priv_to_dev(priv);
-	struct snd_soc_dai_link *dai_link = rsrc_priv_to_link(priv, idx);
-	struct asoc_simple_dai *dai_props = rsrc_priv_to_props(priv, idx);
+	struct device *dev = simple_priv_to_dev(priv);
+	struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, idx);
+	struct asoc_simple_dai *dai_props = simple_priv_to_props(priv, idx);
 	int ret;
 
 	/* Parse TDM slot */
@@ -161,7 +161,7 @@ static int rsrc_card_parse_links(struct device_node *np,
 
 		asoc_simple_card_canonicalize_cpu(dai_link, is_single_links);
 	} else {
-		const struct rsrc_card_of_data *of_data;
+		const struct asoc_simple_card_of_data *of_data;
 
 		of_data = of_device_get_match_data(dev);
 
@@ -172,7 +172,7 @@ static int rsrc_card_parse_links(struct device_node *np,
 
 		/* BE settings */
 		dai_link->no_pcm		= 1;
-		dai_link->be_hw_params_fixup	= rsrc_card_be_hw_params_fixup;
+		dai_link->be_hw_params_fixup	= asoc_simple_card_be_hw_params_fixup;
 
 		ret = asoc_simple_card_parse_codec(np, dai_link, DAI, CELL);
 		if (ret < 0)
@@ -206,8 +206,8 @@ static int rsrc_card_parse_links(struct device_node *np,
 
 	dai_link->dpcm_playback		= 1;
 	dai_link->dpcm_capture		= 1;
-	dai_link->ops			= &rsrc_card_ops;
-	dai_link->init			= rsrc_card_dai_init;
+	dai_link->ops			= &asoc_simple_card_ops;
+	dai_link->init			= asoc_simple_card_dai_init;
 
 	dev_dbg(dev, "\t%s / %04x / %d\n",
 		dai_link->name,
@@ -217,10 +217,10 @@ static int rsrc_card_parse_links(struct device_node *np,
 	return 0;
 }
 
-static int rsrc_card_dai_link_of(struct device_node *node,
-				 struct rsrc_card_priv *priv)
+static int asoc_simple_card_dai_link_of(struct device_node *node,
+				 struct asoc_simple_card_priv *priv)
 {
-	struct device *dev = rsrc_priv_to_dev(priv);
+	struct device *dev = simple_priv_to_dev(priv);
 	struct snd_soc_dai_link *dai_link;
 	struct device_node *np;
 	unsigned int daifmt = 0;
@@ -230,7 +230,7 @@ static int rsrc_card_dai_link_of(struct device_node *node,
 	/* find 1st codec */
 	i = 0;
 	for_each_child_of_node(node, np) {
-		dai_link = rsrc_priv_to_link(priv, i);
+		dai_link = simple_priv_to_link(priv, i);
 
 		if (strcmp(np->name, "codec") == 0) {
 			ret = asoc_simple_card_parse_daifmt(dev, node, np,
@@ -244,14 +244,14 @@ static int rsrc_card_dai_link_of(struct device_node *node,
 
 	i = 0;
 	for_each_child_of_node(node, np) {
-		dai_link = rsrc_priv_to_link(priv, i);
+		dai_link = simple_priv_to_link(priv, i);
 		dai_link->dai_fmt = daifmt;
 
 		is_fe = false;
 		if (strcmp(np->name, "cpu") == 0)
 			is_fe = true;
 
-		ret = rsrc_card_parse_links(np, priv, i, is_fe);
+		ret = asoc_simple_card_parse_links(np, priv, i, is_fe);
 		if (ret < 0)
 			return ret;
 		i++;
@@ -260,11 +260,11 @@ static int rsrc_card_dai_link_of(struct device_node *node,
 	return 0;
 }
 
-static int rsrc_card_parse_of(struct device_node *node,
-			      struct rsrc_card_priv *priv,
+static int asoc_simple_card_parse_of(struct device_node *node,
+			      struct asoc_simple_card_priv *priv,
 			      struct device *dev)
 {
-	const struct rsrc_card_of_data *of_data = of_device_get_match_data(dev);
+	const struct asoc_simple_card_of_data *of_data = of_device_get_match_data(dev);
 	struct asoc_simple_dai *props;
 	struct snd_soc_dai_link *links;
 	int ret;
@@ -309,7 +309,7 @@ static int rsrc_card_parse_of(struct device_node *node,
 	dev_dbg(dev, "SRC : convert_rate     %d\n", priv->convert_rate);
 	dev_dbg(dev, "CTU : convert_channels %d\n", priv->convert_channels);
 
-	ret = rsrc_card_dai_link_of(node, priv);
+	ret = asoc_simple_card_dai_link_of(node, priv);
 	if (ret < 0)
 		return ret;
 
@@ -320,9 +320,9 @@ static int rsrc_card_parse_of(struct device_node *node,
 	return 0;
 }
 
-static int rsrc_card_probe(struct platform_device *pdev)
+static int asoc_simple_card_probe(struct platform_device *pdev)
 {
-	struct rsrc_card_priv *priv;
+	struct asoc_simple_card_priv *priv;
 	struct device_node *np = pdev->dev.of_node;
 	struct device *dev = &pdev->dev;
 	int ret;
@@ -332,7 +332,7 @@ static int rsrc_card_probe(struct platform_device *pdev)
 	if (!priv)
 		return -ENOMEM;
 
-	ret = rsrc_card_parse_of(np, priv, dev);
+	ret = asoc_simple_card_parse_of(np, priv, dev);
 	if (ret < 0) {
 		if (ret != -EPROBE_DEFER)
 			dev_err(dev, "parse error %d\n", ret);
@@ -350,25 +350,25 @@ err:
 	return ret;
 }
 
-static int rsrc_card_remove(struct platform_device *pdev)
+static int asoc_simple_card_remove(struct platform_device *pdev)
 {
 	struct snd_soc_card *card = platform_get_drvdata(pdev);
 
 	return asoc_simple_card_clean_reference(card);
 }
 
-static struct platform_driver rsrc_card = {
+static struct platform_driver asoc_simple_card = {
 	.driver = {
 		.name = "renesas-src-audio-card",
-		.of_match_table = rsrc_card_of_match,
+		.of_match_table = asoc_simple_card_of_match,
 	},
-	.probe = rsrc_card_probe,
-	.remove = rsrc_card_remove,
+	.probe = asoc_simple_card_probe,
+	.remove = asoc_simple_card_remove,
 };
 
-module_platform_driver(rsrc_card);
+module_platform_driver(asoc_simple_card);
 
-MODULE_ALIAS("platform:renesas-src-audio-card");
+MODULE_ALIAS("platform:asoc-simple-scu-card");
 MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Renesas Sampling Rate Convert Sound Card");
+MODULE_DESCRIPTION("ASoC Simple SCU Sound Card");
 MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>");
-- 
1.9.1

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

* [PATCH v2 3/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2
  2016-08-23  1:33 [PATCH v2 0/4] ASoC: rsrc-card to simple-scu-card Kuninori Morimoto
  2016-08-23  1:33 ` [PATCH v2 1/4] ASoC: rsrc-card: remove board specific compatible Kuninori Morimoto
  2016-08-23  1:34 ` [PATCH v2 2/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1 Kuninori Morimoto
@ 2016-08-23  1:34 ` Kuninori Morimoto
  2016-08-24 11:20   ` Applied "ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2" to the asoc tree Mark Brown
  2016-08-23  1:35 ` [PATCH v2 4/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase3 Kuninori Morimoto
  3 siblings, 1 reply; 8+ messages in thread
From: Kuninori Morimoto @ 2016-08-23  1:34 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Simon, Liam Girdwood

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

rsrc-card which is using DPCM feature was created for Renesas sound.
But not only Renesas, but many SoC can use this driver, because
it is based on simple-card driver.
To use it as more open driver, rsrc-card will be renamed to
simple-scu-card. In order to easy patch review, as 2nd step,
this patch adds new compatible "simple-scu-audio-card";

rcar-card used specific property, not "simple-audio-card",
but it should be now. Actually, rsrc-card is upstreamed driver,
but noone is using it on upstream. The user is only local,
and it is only me. Thus, there is no compatible break by this patch.
This patch uses "simple-audio-card" prefix.
And it removes rcar-card specifix compatible too.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - dpcm-card -> scu-card
 - board specific compatibility part was separated

 .../bindings/sound/renesas,rsrc-card.txt           | 52 +++++++++++---------
 sound/soc/sh/rcar/rsrc-card.c                      | 55 +++++++++-------------
 2 files changed, 51 insertions(+), 56 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
index f148bf2..ecb4a24 100644
--- a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
+++ b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
@@ -1,35 +1,36 @@
-Renesas Sampling Rate Convert Sound Card:
+ASoC simple SCU Sound Card
 
-Renesas Sampling Rate Convert Sound Card specifies audio DAI connections of SoC <-> codec.
+Simple-Card specifies audio DAI connections of SoC <-> codec.
 
 Required properties:
 
-- compatible				: "renesas,rsrc-card"
+- compatible				: "simple-scu-audio-card"
+					  "renesas,rsrc-card"
 
 Optional properties:
 
-- card_name				: User specified audio sound card name, one string
+- simple-audio-card,name		: User specified audio sound card name, one string
 					  property.
-- cpu					: CPU   sub-node
-- codec					: CODEC sub-node
+- simple-audio-card,cpu			: CPU   sub-node
+- simple-audio-card,codec		: CODEC sub-node
 
 Optional subnode properties:
 
-- format				: CPU/CODEC common audio format.
+- simple-audio-card,format		: CPU/CODEC common audio format.
 					  "i2s", "right_j", "left_j" , "dsp_a"
 					  "dsp_b", "ac97", "pdm", "msb", "lsb"
-- frame-master				: Indicates dai-link frame master.
+- simple-audio-card,frame-master	: Indicates dai-link frame master.
 					  phandle to a cpu or codec subnode.
-- bitclock-master			: Indicates dai-link bit clock master.
+- simple-audio-card,bitclock-master	: Indicates dai-link bit clock master.
 					  phandle to a cpu or codec subnode.
-- bitclock-inversion			: bool property. Add this if the
+- simple-audio-card,bitclock-inversion	: bool property. Add this if the
 					  dai-link uses bit clock inversion.
-- frame-inversion			: bool property. Add this if the
+- simple-audio-card,frame-inversion	: bool property. Add this if the
 					  dai-link uses frame clock inversion.
-- convert-rate				: platform specified sampling rate convert
-- convert-channels			: platform specified converted channel size (2 - 8 ch)
-- audio-prefix				: see audio-routing
-- audio-routing				: A list of the connections between audio components.
+- simple-audio-card,convert-rate	: platform specified sampling rate convert
+- simple-audio-card,convert-channels	: platform specified converted channel size (2 - 8 ch)
+- simple-audio-card,prefix		: see audio-routing
+- simple-audio-card,routing		: A list of the connections between audio components.
 					  Each entry is a pair of strings, the first being the connection's sink,
 					  the second being the connection's source. Valid names for sources.
 					  use audio-prefix if some components is using same sink/sources naming.
@@ -54,18 +55,25 @@ Optional CPU/CODEC subnodes properties:
 Example
 
 sound {
-	compatible = "renesas,rsrc-card,lager";
+	compatible = "simple-scu-audio-card";
 
-	card-name = "rsnd-ak4643";
-	format = "left_j";
-	bitclock-master = <&sndcodec>;
-	frame-master = <&sndcodec>;
+	simple-audio-card,name = "rsnd-ak4643";
+	simple-audio-card,format = "left_j";
+	simple-audio-card,format = "left_j";
+	simple-audio-card,bitclock-master = <&sndcodec>;
+	simple-audio-card,frame-master = <&sndcodec>;
 
-	sndcpu: cpu {
+	simple-audio-card,convert-rate = <48000>; /* see audio_clk_a */
+
+	simple-audio-card,prefix = "ak4642";
+	simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback",
+			"DAI0 Capture", "ak4642 Capture";
+
+	sndcpu: simple-audio-card,cpu {
 		sound-dai = <&rcar_sound>;
 	};
 
-	sndcodec: codec {
+	sndcodec: simple-audio-card,codec {
 		sound-dai = <&ak4643>;
 		system-clock-frequency = <11289600>;
 	};
diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/sh/rcar/rsrc-card.c
index a0d0f36..3fa1908 100644
--- a/sound/soc/sh/rcar/rsrc-card.c
+++ b/sound/soc/sh/rcar/rsrc-card.c
@@ -30,6 +30,7 @@ struct asoc_simple_card_of_data {
 
 static const struct of_device_id asoc_simple_card_of_match[] = {
 	{ .compatible = "renesas,rsrc-card", },
+	{ .compatible = "simple-scu-audio-card", },
 	{},
 };
 MODULE_DEVICE_TABLE(of, asoc_simple_card_of_match);
@@ -51,6 +52,7 @@ struct asoc_simple_card_priv {
 
 #define DAI	"sound-dai"
 #define CELL	"#sound-dai-cells"
+#define PREFIX	"simple-audio-card,"
 
 static int asoc_simple_card_startup(struct snd_pcm_substream *substream)
 {
@@ -161,10 +163,6 @@ static int asoc_simple_card_parse_links(struct device_node *np,
 
 		asoc_simple_card_canonicalize_cpu(dai_link, is_single_links);
 	} else {
-		const struct asoc_simple_card_of_data *of_data;
-
-		of_data = of_device_get_match_data(dev);
-
 		/* FE is dummy */
 		dai_link->cpu_of_node		= NULL;
 		dai_link->cpu_dai_name		= "snd-soc-dummy-dai";
@@ -188,16 +186,10 @@ static int asoc_simple_card_parse_links(struct device_node *np,
 		if (ret < 0)
 			return ret;
 
-		/* additional name prefix */
-		if (of_data) {
-			priv->codec_conf.of_node = dai_link->codec_of_node;
-			priv->codec_conf.name_prefix = of_data->prefix;
-		} else {
-			snd_soc_of_parse_audio_prefix(&priv->snd_card,
-						      &priv->codec_conf,
-						      dai_link->codec_of_node,
-						      "audio-prefix");
-		}
+		snd_soc_of_parse_audio_prefix(&priv->snd_card,
+					      &priv->codec_conf,
+					      dai_link->codec_of_node,
+					      PREFIX "prefix");
 	}
 
 	ret = asoc_simple_card_canonicalize_dailink(dai_link);
@@ -232,9 +224,9 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
 	for_each_child_of_node(node, np) {
 		dai_link = simple_priv_to_link(priv, i);
 
-		if (strcmp(np->name, "codec") == 0) {
+		if (strcmp(np->name, PREFIX "codec") == 0) {
 			ret = asoc_simple_card_parse_daifmt(dev, node, np,
-							    NULL, &daifmt);
+							    PREFIX, &daifmt);
 			if (ret < 0)
 				return ret;
 			break;
@@ -248,7 +240,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
 		dai_link->dai_fmt = daifmt;
 
 		is_fe = false;
-		if (strcmp(np->name, "cpu") == 0)
+		if (strcmp(np->name, PREFIX "cpu") == 0)
 			is_fe = true;
 
 		ret = asoc_simple_card_parse_links(np, priv, i, is_fe);
@@ -264,7 +256,6 @@ static int asoc_simple_card_parse_of(struct device_node *node,
 			      struct asoc_simple_card_priv *priv,
 			      struct device *dev)
 {
-	const struct asoc_simple_card_of_data *of_data = of_device_get_match_data(dev);
 	struct asoc_simple_dai *props;
 	struct snd_soc_dai_link *links;
 	int ret;
@@ -290,33 +281,29 @@ static int asoc_simple_card_parse_of(struct device_node *node,
 	priv->snd_card.codec_conf		= &priv->codec_conf;
 	priv->snd_card.num_configs		= 1;
 
-	if (of_data) {
-		priv->snd_card.of_dapm_routes		= of_data->routes;
-		priv->snd_card.num_of_dapm_routes	= of_data->num_routes;
-	} else {
-		snd_soc_of_parse_audio_routing(&priv->snd_card,
-					       "audio-routing");
-	}
+	ret = snd_soc_of_parse_audio_routing(&priv->snd_card, PREFIX "routing");
+	if (ret < 0)
+		return ret;
 
 	/* sampling rate convert */
-	of_property_read_u32(node, "convert-rate", &priv->convert_rate);
+	of_property_read_u32(node, PREFIX "convert-rate", &priv->convert_rate);
 
 	/* channels transfer */
-	of_property_read_u32(node, "convert-channels", &priv->convert_channels);
-
-	dev_dbg(dev, "New rsrc-audio-card: %s\n",
-		priv->snd_card.name ? priv->snd_card.name : "");
-	dev_dbg(dev, "SRC : convert_rate     %d\n", priv->convert_rate);
-	dev_dbg(dev, "CTU : convert_channels %d\n", priv->convert_channels);
+	of_property_read_u32(node, PREFIX "convert-channels", &priv->convert_channels);
 
 	ret = asoc_simple_card_dai_link_of(node, priv);
 	if (ret < 0)
 		return ret;
 
-	ret = asoc_simple_card_parse_card_name(&priv->snd_card, "card-");
+	ret = asoc_simple_card_parse_card_name(&priv->snd_card, PREFIX);
 	if (ret < 0)
 		return ret;
 
+	dev_dbg(dev, "New card: %s\n",
+		priv->snd_card.name ? priv->snd_card.name : "");
+	dev_dbg(dev, "convert_rate     %d\n", priv->convert_rate);
+	dev_dbg(dev, "convert_channels %d\n", priv->convert_channels);
+
 	return 0;
 }
 
@@ -359,7 +346,7 @@ static int asoc_simple_card_remove(struct platform_device *pdev)
 
 static struct platform_driver asoc_simple_card = {
 	.driver = {
-		.name = "renesas-src-audio-card",
+		.name = "simple-scu-audio-card",
 		.of_match_table = asoc_simple_card_of_match,
 	},
 	.probe = asoc_simple_card_probe,
-- 
1.9.1

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

* [PATCH v2 4/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase3
  2016-08-23  1:33 [PATCH v2 0/4] ASoC: rsrc-card to simple-scu-card Kuninori Morimoto
                   ` (2 preceding siblings ...)
  2016-08-23  1:34 ` [PATCH v2 3/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2 Kuninori Morimoto
@ 2016-08-23  1:35 ` Kuninori Morimoto
  3 siblings, 0 replies; 8+ messages in thread
From: Kuninori Morimoto @ 2016-08-23  1:35 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Simon, Liam Girdwood

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

rsrc-card which is using DPCM feature was created for Renesas sound.
But not only Renesas, but many SoC can use this driver, because
it is based on simple-card driver.
To use it as more open driver, rsrc-card will be renamed to
simple-scu-card. In order to easy patch review, as 3rd step,
this patch moves rsrc-card driver to generic folder.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - dpcm-card -> scu-card

 .../bindings/sound/{renesas,rsrc-card.txt => simple-scu-card.txt}  | 0
 sound/soc/generic/Kconfig                                          | 7 +++++++
 sound/soc/generic/Makefile                                         | 2 ++
 sound/soc/{sh/rcar/rsrc-card.c => generic/simple-scu-card.c}       | 0
 sound/soc/sh/Kconfig                                               | 6 ------
 sound/soc/sh/rcar/Makefile                                         | 3 ---
 6 files changed, 9 insertions(+), 9 deletions(-)
 rename Documentation/devicetree/bindings/sound/{renesas,rsrc-card.txt => simple-scu-card.txt} (100%)
 rename sound/soc/{sh/rcar/rsrc-card.c => generic/simple-scu-card.c} (100%)

diff --git a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt b/Documentation/devicetree/bindings/sound/simple-scu-card.txt
similarity index 100%
rename from Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
rename to Documentation/devicetree/bindings/sound/simple-scu-card.txt
diff --git a/sound/soc/generic/Kconfig b/sound/soc/generic/Kconfig
index c01c5dd..2d0ff03 100644
--- a/sound/soc/generic/Kconfig
+++ b/sound/soc/generic/Kconfig
@@ -6,3 +6,10 @@ config SND_SIMPLE_CARD
 	select SND_SIMPLE_CARD_UTILS
 	help
 	  This option enables generic simple sound card support
+
+config SND_SIMPLE_SCU_CARD
+	tristate "ASoC Simple SCU sound card support"
+	select SND_SIMPLE_CARD_UTILS
+	help
+	  This option enables generic simple SCU sound card support.
+	  It supports DPCM of multi CPU single Codec ststem.
diff --git a/sound/soc/generic/Makefile b/sound/soc/generic/Makefile
index 2d53c8d..ee750f3 100644
--- a/sound/soc/generic/Makefile
+++ b/sound/soc/generic/Makefile
@@ -1,5 +1,7 @@
 snd-soc-simple-card-utils-objs	:= simple-card-utils.o
 snd-soc-simple-card-objs	:= simple-card.o
+snd-soc-simple-scu-card-objs	:= simple-scu-card.o
 
 obj-$(CONFIG_SND_SIMPLE_CARD_UTILS)	+= snd-soc-simple-card-utils.o
 obj-$(CONFIG_SND_SIMPLE_CARD)		+= snd-soc-simple-card.o
+obj-$(CONFIG_SND_SIMPLE_SCU_CARD)	+= snd-soc-simple-scu-card.o
diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/generic/simple-scu-card.c
similarity index 100%
rename from sound/soc/sh/rcar/rsrc-card.c
rename to sound/soc/generic/simple-scu-card.c
diff --git a/sound/soc/sh/Kconfig b/sound/soc/sh/Kconfig
index 9311f11..6db6405 100644
--- a/sound/soc/sh/Kconfig
+++ b/sound/soc/sh/Kconfig
@@ -42,12 +42,6 @@ config SND_SOC_RCAR
 	help
 	  This option enables R-Car SRU/SCU/SSIU/SSI sound support
 
-config SND_SOC_RSRC_CARD
-	tristate "Renesas Sampling Rate Convert Sound Card"
-	select SND_SIMPLE_CARD_UTILS
-	help
-	  This option enables simple sound if you need sampling rate convert
-
 ##
 ## Boards
 ##
diff --git a/sound/soc/sh/rcar/Makefile b/sound/soc/sh/rcar/Makefile
index a89ddf7..9c3d5ae 100644
--- a/sound/soc/sh/rcar/Makefile
+++ b/sound/soc/sh/rcar/Makefile
@@ -1,5 +1,2 @@
 snd-soc-rcar-objs	:= core.o gen.o dma.o adg.o ssi.o ssiu.o src.o ctu.o mix.o dvc.o cmd.o
 obj-$(CONFIG_SND_SOC_RCAR)	+= snd-soc-rcar.o
-
-snd-soc-rsrc-card-objs	:= rsrc-card.o
-obj-$(CONFIG_SND_SOC_RSRC_CARD)	+= snd-soc-rsrc-card.o
-- 
1.9.1

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

* Applied "ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2" to the asoc tree
  2016-08-23  1:34 ` [PATCH v2 3/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2 Kuninori Morimoto
@ 2016-08-24 11:20   ` Mark Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2016-08-24 11:20 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA, Mark Brown, Liam Girdwood, Simon

The patch

   ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 64df0e6842925311d74f6944710495981d5a0ace Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Tue, 23 Aug 2016 01:34:43 +0000
Subject: [PATCH] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2

rsrc-card which is using DPCM feature was created for Renesas sound.
But not only Renesas, but many SoC can use this driver, because
it is based on simple-card driver.
To use it as more open driver, rsrc-card will be renamed to
simple-scu-card. In order to easy patch review, as 2nd step,
this patch adds new compatible "simple-scu-audio-card";

rcar-card used specific property, not "simple-audio-card",
but it should be now. Actually, rsrc-card is upstreamed driver,
but noone is using it on upstream. The user is only local,
and it is only me. Thus, there is no compatible break by this patch.
This patch uses "simple-audio-card" prefix.
And it removes rcar-card specifix compatible too.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 .../bindings/sound/renesas,rsrc-card.txt           | 52 +++++++++++---------
 sound/soc/sh/rcar/rsrc-card.c                      | 55 +++++++++-------------
 2 files changed, 51 insertions(+), 56 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
index f148bf27723b..ecb4a249fe6e 100644
--- a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
+++ b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
@@ -1,35 +1,36 @@
-Renesas Sampling Rate Convert Sound Card:
+ASoC simple SCU Sound Card
 
-Renesas Sampling Rate Convert Sound Card specifies audio DAI connections of SoC <-> codec.
+Simple-Card specifies audio DAI connections of SoC <-> codec.
 
 Required properties:
 
-- compatible				: "renesas,rsrc-card"
+- compatible				: "simple-scu-audio-card"
+					  "renesas,rsrc-card"
 
 Optional properties:
 
-- card_name				: User specified audio sound card name, one string
+- simple-audio-card,name		: User specified audio sound card name, one string
 					  property.
-- cpu					: CPU   sub-node
-- codec					: CODEC sub-node
+- simple-audio-card,cpu			: CPU   sub-node
+- simple-audio-card,codec		: CODEC sub-node
 
 Optional subnode properties:
 
-- format				: CPU/CODEC common audio format.
+- simple-audio-card,format		: CPU/CODEC common audio format.
 					  "i2s", "right_j", "left_j" , "dsp_a"
 					  "dsp_b", "ac97", "pdm", "msb", "lsb"
-- frame-master				: Indicates dai-link frame master.
+- simple-audio-card,frame-master	: Indicates dai-link frame master.
 					  phandle to a cpu or codec subnode.
-- bitclock-master			: Indicates dai-link bit clock master.
+- simple-audio-card,bitclock-master	: Indicates dai-link bit clock master.
 					  phandle to a cpu or codec subnode.
-- bitclock-inversion			: bool property. Add this if the
+- simple-audio-card,bitclock-inversion	: bool property. Add this if the
 					  dai-link uses bit clock inversion.
-- frame-inversion			: bool property. Add this if the
+- simple-audio-card,frame-inversion	: bool property. Add this if the
 					  dai-link uses frame clock inversion.
-- convert-rate				: platform specified sampling rate convert
-- convert-channels			: platform specified converted channel size (2 - 8 ch)
-- audio-prefix				: see audio-routing
-- audio-routing				: A list of the connections between audio components.
+- simple-audio-card,convert-rate	: platform specified sampling rate convert
+- simple-audio-card,convert-channels	: platform specified converted channel size (2 - 8 ch)
+- simple-audio-card,prefix		: see audio-routing
+- simple-audio-card,routing		: A list of the connections between audio components.
 					  Each entry is a pair of strings, the first being the connection's sink,
 					  the second being the connection's source. Valid names for sources.
 					  use audio-prefix if some components is using same sink/sources naming.
@@ -54,18 +55,25 @@ Optional CPU/CODEC subnodes properties:
 Example
 
 sound {
-	compatible = "renesas,rsrc-card,lager";
+	compatible = "simple-scu-audio-card";
 
-	card-name = "rsnd-ak4643";
-	format = "left_j";
-	bitclock-master = <&sndcodec>;
-	frame-master = <&sndcodec>;
+	simple-audio-card,name = "rsnd-ak4643";
+	simple-audio-card,format = "left_j";
+	simple-audio-card,format = "left_j";
+	simple-audio-card,bitclock-master = <&sndcodec>;
+	simple-audio-card,frame-master = <&sndcodec>;
 
-	sndcpu: cpu {
+	simple-audio-card,convert-rate = <48000>; /* see audio_clk_a */
+
+	simple-audio-card,prefix = "ak4642";
+	simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback",
+			"DAI0 Capture", "ak4642 Capture";
+
+	sndcpu: simple-audio-card,cpu {
 		sound-dai = <&rcar_sound>;
 	};
 
-	sndcodec: codec {
+	sndcodec: simple-audio-card,codec {
 		sound-dai = <&ak4643>;
 		system-clock-frequency = <11289600>;
 	};
diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/sh/rcar/rsrc-card.c
index a0d0f3679eeb..3fa19084e326 100644
--- a/sound/soc/sh/rcar/rsrc-card.c
+++ b/sound/soc/sh/rcar/rsrc-card.c
@@ -30,6 +30,7 @@ struct asoc_simple_card_of_data {
 
 static const struct of_device_id asoc_simple_card_of_match[] = {
 	{ .compatible = "renesas,rsrc-card", },
+	{ .compatible = "simple-scu-audio-card", },
 	{},
 };
 MODULE_DEVICE_TABLE(of, asoc_simple_card_of_match);
@@ -51,6 +52,7 @@ struct asoc_simple_card_priv {
 
 #define DAI	"sound-dai"
 #define CELL	"#sound-dai-cells"
+#define PREFIX	"simple-audio-card,"
 
 static int asoc_simple_card_startup(struct snd_pcm_substream *substream)
 {
@@ -161,10 +163,6 @@ static int asoc_simple_card_parse_links(struct device_node *np,
 
 		asoc_simple_card_canonicalize_cpu(dai_link, is_single_links);
 	} else {
-		const struct asoc_simple_card_of_data *of_data;
-
-		of_data = of_device_get_match_data(dev);
-
 		/* FE is dummy */
 		dai_link->cpu_of_node		= NULL;
 		dai_link->cpu_dai_name		= "snd-soc-dummy-dai";
@@ -188,16 +186,10 @@ static int asoc_simple_card_parse_links(struct device_node *np,
 		if (ret < 0)
 			return ret;
 
-		/* additional name prefix */
-		if (of_data) {
-			priv->codec_conf.of_node = dai_link->codec_of_node;
-			priv->codec_conf.name_prefix = of_data->prefix;
-		} else {
-			snd_soc_of_parse_audio_prefix(&priv->snd_card,
-						      &priv->codec_conf,
-						      dai_link->codec_of_node,
-						      "audio-prefix");
-		}
+		snd_soc_of_parse_audio_prefix(&priv->snd_card,
+					      &priv->codec_conf,
+					      dai_link->codec_of_node,
+					      PREFIX "prefix");
 	}
 
 	ret = asoc_simple_card_canonicalize_dailink(dai_link);
@@ -232,9 +224,9 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
 	for_each_child_of_node(node, np) {
 		dai_link = simple_priv_to_link(priv, i);
 
-		if (strcmp(np->name, "codec") == 0) {
+		if (strcmp(np->name, PREFIX "codec") == 0) {
 			ret = asoc_simple_card_parse_daifmt(dev, node, np,
-							    NULL, &daifmt);
+							    PREFIX, &daifmt);
 			if (ret < 0)
 				return ret;
 			break;
@@ -248,7 +240,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *node,
 		dai_link->dai_fmt = daifmt;
 
 		is_fe = false;
-		if (strcmp(np->name, "cpu") == 0)
+		if (strcmp(np->name, PREFIX "cpu") == 0)
 			is_fe = true;
 
 		ret = asoc_simple_card_parse_links(np, priv, i, is_fe);
@@ -264,7 +256,6 @@ static int asoc_simple_card_parse_of(struct device_node *node,
 			      struct asoc_simple_card_priv *priv,
 			      struct device *dev)
 {
-	const struct asoc_simple_card_of_data *of_data = of_device_get_match_data(dev);
 	struct asoc_simple_dai *props;
 	struct snd_soc_dai_link *links;
 	int ret;
@@ -290,33 +281,29 @@ static int asoc_simple_card_parse_of(struct device_node *node,
 	priv->snd_card.codec_conf		= &priv->codec_conf;
 	priv->snd_card.num_configs		= 1;
 
-	if (of_data) {
-		priv->snd_card.of_dapm_routes		= of_data->routes;
-		priv->snd_card.num_of_dapm_routes	= of_data->num_routes;
-	} else {
-		snd_soc_of_parse_audio_routing(&priv->snd_card,
-					       "audio-routing");
-	}
+	ret = snd_soc_of_parse_audio_routing(&priv->snd_card, PREFIX "routing");
+	if (ret < 0)
+		return ret;
 
 	/* sampling rate convert */
-	of_property_read_u32(node, "convert-rate", &priv->convert_rate);
+	of_property_read_u32(node, PREFIX "convert-rate", &priv->convert_rate);
 
 	/* channels transfer */
-	of_property_read_u32(node, "convert-channels", &priv->convert_channels);
-
-	dev_dbg(dev, "New rsrc-audio-card: %s\n",
-		priv->snd_card.name ? priv->snd_card.name : "");
-	dev_dbg(dev, "SRC : convert_rate     %d\n", priv->convert_rate);
-	dev_dbg(dev, "CTU : convert_channels %d\n", priv->convert_channels);
+	of_property_read_u32(node, PREFIX "convert-channels", &priv->convert_channels);
 
 	ret = asoc_simple_card_dai_link_of(node, priv);
 	if (ret < 0)
 		return ret;
 
-	ret = asoc_simple_card_parse_card_name(&priv->snd_card, "card-");
+	ret = asoc_simple_card_parse_card_name(&priv->snd_card, PREFIX);
 	if (ret < 0)
 		return ret;
 
+	dev_dbg(dev, "New card: %s\n",
+		priv->snd_card.name ? priv->snd_card.name : "");
+	dev_dbg(dev, "convert_rate     %d\n", priv->convert_rate);
+	dev_dbg(dev, "convert_channels %d\n", priv->convert_channels);
+
 	return 0;
 }
 
@@ -359,7 +346,7 @@ static int asoc_simple_card_remove(struct platform_device *pdev)
 
 static struct platform_driver asoc_simple_card = {
 	.driver = {
-		.name = "renesas-src-audio-card",
+		.name = "simple-scu-audio-card",
 		.of_match_table = asoc_simple_card_of_match,
 	},
 	.probe = asoc_simple_card_probe,
-- 
2.8.1

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

* Applied "ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1" to the asoc tree
  2016-08-23  1:34 ` [PATCH v2 2/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1 Kuninori Morimoto
@ 2016-08-24 11:20   ` Mark Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2016-08-24 11:20 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA, Mark Brown, Liam Girdwood, Simon

The patch

   ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 53e682b60019d501e00cfeb701f99ca027470e36 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Tue, 23 Aug 2016 01:34:17 +0000
Subject: [PATCH] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1

rsrc-card which is using DPCM feature was created for Renesas sound.
But not only Renesas, but many SoC can use this driver, because
it is based on simple-card driver.
To use it as more open driver, rsrc-card will be renamed to
simple-scu-card. In order to easy patch review, as 1st step,
this patch renames "rsrc" function prefix to "asoc_simple".

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/sh/rcar/rsrc-card.c | 108 +++++++++++++++++++++---------------------
 1 file changed, 54 insertions(+), 54 deletions(-)

diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/sh/rcar/rsrc-card.c
index ce9f91143f1f..a0d0f3679eeb 100644
--- a/sound/soc/sh/rcar/rsrc-card.c
+++ b/sound/soc/sh/rcar/rsrc-card.c
@@ -1,5 +1,5 @@
 /*
- * Renesas Sampling Rate Convert Sound Card for DPCM
+ * ASoC simple SCU sound card support
  *
  * Copyright (C) 2015 Renesas Solutions Corp.
  * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
@@ -22,21 +22,21 @@
 #include <sound/soc-dai.h>
 #include <sound/simple_card_utils.h>
 
-struct rsrc_card_of_data {
+struct asoc_simple_card_of_data {
 	const char *prefix;
 	const struct snd_soc_dapm_route *routes;
 	int num_routes;
 };
 
-static const struct of_device_id rsrc_card_of_match[] = {
+static const struct of_device_id asoc_simple_card_of_match[] = {
 	{ .compatible = "renesas,rsrc-card", },
 	{},
 };
-MODULE_DEVICE_TABLE(of, rsrc_card_of_match);
+MODULE_DEVICE_TABLE(of, asoc_simple_card_of_match);
 
 #define IDX_CPU		0
 #define IDX_CODEC	1
-struct rsrc_card_priv {
+struct asoc_simple_card_priv {
 	struct snd_soc_card snd_card;
 	struct snd_soc_codec_conf codec_conf;
 	struct asoc_simple_dai *dai_props;
@@ -45,48 +45,48 @@ struct rsrc_card_priv {
 	u32 convert_channels;
 };
 
-#define rsrc_priv_to_dev(priv) ((priv)->snd_card.dev)
-#define rsrc_priv_to_link(priv, i) ((priv)->snd_card.dai_link + (i))
-#define rsrc_priv_to_props(priv, i) ((priv)->dai_props + (i))
+#define simple_priv_to_dev(priv) ((priv)->snd_card.dev)
+#define simple_priv_to_link(priv, i) ((priv)->snd_card.dai_link + (i))
+#define simple_priv_to_props(priv, i) ((priv)->dai_props + (i))
 
 #define DAI	"sound-dai"
 #define CELL	"#sound-dai-cells"
 
-static int rsrc_card_startup(struct snd_pcm_substream *substream)
+static int asoc_simple_card_startup(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-	struct rsrc_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
 	struct asoc_simple_dai *dai_props =
-		rsrc_priv_to_props(priv, rtd->num);
+		simple_priv_to_props(priv, rtd->num);
 
 	return clk_prepare_enable(dai_props->clk);
 }
 
-static void rsrc_card_shutdown(struct snd_pcm_substream *substream)
+static void asoc_simple_card_shutdown(struct snd_pcm_substream *substream)
 {
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-	struct rsrc_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv =	snd_soc_card_get_drvdata(rtd->card);
 	struct asoc_simple_dai *dai_props =
-		rsrc_priv_to_props(priv, rtd->num);
+		simple_priv_to_props(priv, rtd->num);
 
 	clk_disable_unprepare(dai_props->clk);
 }
 
-static struct snd_soc_ops rsrc_card_ops = {
-	.startup = rsrc_card_startup,
-	.shutdown = rsrc_card_shutdown,
+static struct snd_soc_ops asoc_simple_card_ops = {
+	.startup = asoc_simple_card_startup,
+	.shutdown = asoc_simple_card_shutdown,
 };
 
-static int rsrc_card_dai_init(struct snd_soc_pcm_runtime *rtd)
+static int asoc_simple_card_dai_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct rsrc_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
 	struct snd_soc_dai *dai;
 	struct snd_soc_dai_link *dai_link;
 	struct asoc_simple_dai *dai_props;
 	int num = rtd->num;
 
-	dai_link	= rsrc_priv_to_link(priv, num);
-	dai_props	= rsrc_priv_to_props(priv, num);
+	dai_link	= simple_priv_to_link(priv, num);
+	dai_props	= simple_priv_to_props(priv, num);
 	dai		= dai_link->dynamic ?
 				rtd->cpu_dai :
 				rtd->codec_dai;
@@ -94,10 +94,10 @@ static int rsrc_card_dai_init(struct snd_soc_pcm_runtime *rtd)
 	return asoc_simple_card_init_dai(dai, dai_props);
 }
 
-static int rsrc_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
+static int asoc_simple_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 					struct snd_pcm_hw_params *params)
 {
-	struct rsrc_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
+	struct asoc_simple_card_priv *priv = snd_soc_card_get_drvdata(rtd->card);
 	struct snd_interval *rate = hw_param_interval(params,
 						      SNDRV_PCM_HW_PARAM_RATE);
 	struct snd_interval *channels = hw_param_interval(params,
@@ -114,13 +114,13 @@ static int rsrc_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
 	return 0;
 }
 
-static int rsrc_card_parse_links(struct device_node *np,
-				 struct rsrc_card_priv *priv,
-				 int idx, bool is_fe)
+static int asoc_simple_card_parse_links(struct device_node *np,
+					struct asoc_simple_card_priv *priv,
+					int idx, bool is_fe)
 {
-	struct device *dev = rsrc_priv_to_dev(priv);
-	struct snd_soc_dai_link *dai_link = rsrc_priv_to_link(priv, idx);
-	struct asoc_simple_dai *dai_props = rsrc_priv_to_props(priv, idx);
+	struct device *dev = simple_priv_to_dev(priv);
+	struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, idx);
+	struct asoc_simple_dai *dai_props = simple_priv_to_props(priv, idx);
 	int ret;
 
 	/* Parse TDM slot */
@@ -161,7 +161,7 @@ static int rsrc_card_parse_links(struct device_node *np,
 
 		asoc_simple_card_canonicalize_cpu(dai_link, is_single_links);
 	} else {
-		const struct rsrc_card_of_data *of_data;
+		const struct asoc_simple_card_of_data *of_data;
 
 		of_data = of_device_get_match_data(dev);
 
@@ -172,7 +172,7 @@ static int rsrc_card_parse_links(struct device_node *np,
 
 		/* BE settings */
 		dai_link->no_pcm		= 1;
-		dai_link->be_hw_params_fixup	= rsrc_card_be_hw_params_fixup;
+		dai_link->be_hw_params_fixup	= asoc_simple_card_be_hw_params_fixup;
 
 		ret = asoc_simple_card_parse_codec(np, dai_link, DAI, CELL);
 		if (ret < 0)
@@ -206,8 +206,8 @@ static int rsrc_card_parse_links(struct device_node *np,
 
 	dai_link->dpcm_playback		= 1;
 	dai_link->dpcm_capture		= 1;
-	dai_link->ops			= &rsrc_card_ops;
-	dai_link->init			= rsrc_card_dai_init;
+	dai_link->ops			= &asoc_simple_card_ops;
+	dai_link->init			= asoc_simple_card_dai_init;
 
 	dev_dbg(dev, "\t%s / %04x / %d\n",
 		dai_link->name,
@@ -217,10 +217,10 @@ static int rsrc_card_parse_links(struct device_node *np,
 	return 0;
 }
 
-static int rsrc_card_dai_link_of(struct device_node *node,
-				 struct rsrc_card_priv *priv)
+static int asoc_simple_card_dai_link_of(struct device_node *node,
+				 struct asoc_simple_card_priv *priv)
 {
-	struct device *dev = rsrc_priv_to_dev(priv);
+	struct device *dev = simple_priv_to_dev(priv);
 	struct snd_soc_dai_link *dai_link;
 	struct device_node *np;
 	unsigned int daifmt = 0;
@@ -230,7 +230,7 @@ static int rsrc_card_dai_link_of(struct device_node *node,
 	/* find 1st codec */
 	i = 0;
 	for_each_child_of_node(node, np) {
-		dai_link = rsrc_priv_to_link(priv, i);
+		dai_link = simple_priv_to_link(priv, i);
 
 		if (strcmp(np->name, "codec") == 0) {
 			ret = asoc_simple_card_parse_daifmt(dev, node, np,
@@ -244,14 +244,14 @@ static int rsrc_card_dai_link_of(struct device_node *node,
 
 	i = 0;
 	for_each_child_of_node(node, np) {
-		dai_link = rsrc_priv_to_link(priv, i);
+		dai_link = simple_priv_to_link(priv, i);
 		dai_link->dai_fmt = daifmt;
 
 		is_fe = false;
 		if (strcmp(np->name, "cpu") == 0)
 			is_fe = true;
 
-		ret = rsrc_card_parse_links(np, priv, i, is_fe);
+		ret = asoc_simple_card_parse_links(np, priv, i, is_fe);
 		if (ret < 0)
 			return ret;
 		i++;
@@ -260,11 +260,11 @@ static int rsrc_card_dai_link_of(struct device_node *node,
 	return 0;
 }
 
-static int rsrc_card_parse_of(struct device_node *node,
-			      struct rsrc_card_priv *priv,
+static int asoc_simple_card_parse_of(struct device_node *node,
+			      struct asoc_simple_card_priv *priv,
 			      struct device *dev)
 {
-	const struct rsrc_card_of_data *of_data = of_device_get_match_data(dev);
+	const struct asoc_simple_card_of_data *of_data = of_device_get_match_data(dev);
 	struct asoc_simple_dai *props;
 	struct snd_soc_dai_link *links;
 	int ret;
@@ -309,7 +309,7 @@ static int rsrc_card_parse_of(struct device_node *node,
 	dev_dbg(dev, "SRC : convert_rate     %d\n", priv->convert_rate);
 	dev_dbg(dev, "CTU : convert_channels %d\n", priv->convert_channels);
 
-	ret = rsrc_card_dai_link_of(node, priv);
+	ret = asoc_simple_card_dai_link_of(node, priv);
 	if (ret < 0)
 		return ret;
 
@@ -320,9 +320,9 @@ static int rsrc_card_parse_of(struct device_node *node,
 	return 0;
 }
 
-static int rsrc_card_probe(struct platform_device *pdev)
+static int asoc_simple_card_probe(struct platform_device *pdev)
 {
-	struct rsrc_card_priv *priv;
+	struct asoc_simple_card_priv *priv;
 	struct device_node *np = pdev->dev.of_node;
 	struct device *dev = &pdev->dev;
 	int ret;
@@ -332,7 +332,7 @@ static int rsrc_card_probe(struct platform_device *pdev)
 	if (!priv)
 		return -ENOMEM;
 
-	ret = rsrc_card_parse_of(np, priv, dev);
+	ret = asoc_simple_card_parse_of(np, priv, dev);
 	if (ret < 0) {
 		if (ret != -EPROBE_DEFER)
 			dev_err(dev, "parse error %d\n", ret);
@@ -350,25 +350,25 @@ err:
 	return ret;
 }
 
-static int rsrc_card_remove(struct platform_device *pdev)
+static int asoc_simple_card_remove(struct platform_device *pdev)
 {
 	struct snd_soc_card *card = platform_get_drvdata(pdev);
 
 	return asoc_simple_card_clean_reference(card);
 }
 
-static struct platform_driver rsrc_card = {
+static struct platform_driver asoc_simple_card = {
 	.driver = {
 		.name = "renesas-src-audio-card",
-		.of_match_table = rsrc_card_of_match,
+		.of_match_table = asoc_simple_card_of_match,
 	},
-	.probe = rsrc_card_probe,
-	.remove = rsrc_card_remove,
+	.probe = asoc_simple_card_probe,
+	.remove = asoc_simple_card_remove,
 };
 
-module_platform_driver(rsrc_card);
+module_platform_driver(asoc_simple_card);
 
-MODULE_ALIAS("platform:renesas-src-audio-card");
+MODULE_ALIAS("platform:asoc-simple-scu-card");
 MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Renesas Sampling Rate Convert Sound Card");
+MODULE_DESCRIPTION("ASoC Simple SCU Sound Card");
 MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>");
-- 
2.8.1

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

* Applied "ASoC: rsrc-card: remove board specific compatible" to the asoc tree
  2016-08-23  1:33 ` [PATCH v2 1/4] ASoC: rsrc-card: remove board specific compatible Kuninori Morimoto
@ 2016-08-24 11:20   ` Mark Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2016-08-24 11:20 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA, Mark Brown, Liam Girdwood, Simon

The patch

   ASoC: rsrc-card: remove board specific compatible

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From a3235938308150fbd0f8b478e73d1e66e945937a Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Tue, 23 Aug 2016 01:33:57 +0000
Subject: [PATCH] ASoC: rsrc-card: remove board specific compatible

rsrc-card has board specific compatible (= lager/koelsh), but these were
created as 1st prototype, and it is used in my test environment only.
Now normal user can use generic compatible (= renesas,rsrc-card).
Removing these board specific compatible doesn't breake compatibility.
This patch remove these.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 .../devicetree/bindings/sound/renesas,rsrc-card.txt         |  7 ++-----
 sound/soc/sh/rcar/rsrc-card.c                               | 13 -------------
 2 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
index 255ece3043ad..f148bf27723b 100644
--- a/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
+++ b/Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt
@@ -4,11 +4,8 @@ Renesas Sampling Rate Convert Sound Card specifies audio DAI connections of SoC
 
 Required properties:
 
-- compatible				: "renesas,rsrc-card{,<board>}"
-					  Examples with boards are:
-					    - "renesas,rsrc-card"
-					    - "renesas,rsrc-card,lager"
-					    - "renesas,rsrc-card,koelsch"
+- compatible				: "renesas,rsrc-card"
+
 Optional properties:
 
 - card_name				: User specified audio sound card name, one string
diff --git a/sound/soc/sh/rcar/rsrc-card.c b/sound/soc/sh/rcar/rsrc-card.c
index 16dc13e0bec9..ce9f91143f1f 100644
--- a/sound/soc/sh/rcar/rsrc-card.c
+++ b/sound/soc/sh/rcar/rsrc-card.c
@@ -28,20 +28,7 @@ struct rsrc_card_of_data {
 	int num_routes;
 };
 
-static const struct snd_soc_dapm_route routes_ssi0_ak4642[] = {
-	{"ak4642 Playback", NULL, "DAI0 Playback"},
-	{"DAI0 Capture", NULL, "ak4642 Capture"},
-};
-
-static const struct rsrc_card_of_data routes_of_ssi0_ak4642 = {
-	.prefix		= "ak4642",
-	.routes		= routes_ssi0_ak4642,
-	.num_routes	= ARRAY_SIZE(routes_ssi0_ak4642),
-};
-
 static const struct of_device_id rsrc_card_of_match[] = {
-	{ .compatible = "renesas,rsrc-card,lager",	.data = &routes_of_ssi0_ak4642 },
-	{ .compatible = "renesas,rsrc-card,koelsch",	.data = &routes_of_ssi0_ak4642 },
 	{ .compatible = "renesas,rsrc-card", },
 	{},
 };
-- 
2.8.1

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

end of thread, other threads:[~2016-08-24 11:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-23  1:33 [PATCH v2 0/4] ASoC: rsrc-card to simple-scu-card Kuninori Morimoto
2016-08-23  1:33 ` [PATCH v2 1/4] ASoC: rsrc-card: remove board specific compatible Kuninori Morimoto
2016-08-24 11:20   ` Applied "ASoC: rsrc-card: remove board specific compatible" to the asoc tree Mark Brown
2016-08-23  1:34 ` [PATCH v2 2/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1 Kuninori Morimoto
2016-08-24 11:20   ` Applied "ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase1" to the asoc tree Mark Brown
2016-08-23  1:34 ` [PATCH v2 3/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2 Kuninori Morimoto
2016-08-24 11:20   ` Applied "ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase2" to the asoc tree Mark Brown
2016-08-23  1:35 ` [PATCH v2 4/4] ASoC: rsrc-card: rename rsrc-card to simple-scu-card phase3 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.