linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes
@ 2018-06-26  9:20 Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 01/12] ASoC: q6adm: dt-bindings: add compatible string to routing Srinivas Kandagatla
                   ` (12 more replies)
  0 siblings, 13 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

Recent discussion on https://lkml.org/lkml/2018/6/18/1282 suggested
that qdsp6 code is using less common of_platform apis which would
not give dt based module loading support.

Suggestion from Rob was to add compatible strings to the dais nodes
This patchset adds this. Also this patchset has 3 trivial fixes which
is removing redundant owner, remove unused struct member and fix a
error check in q6routing.

Changes since v1:
- Addressed few trivial comments from Niklas

Thanks,
srini

Srinivas Kandagatla (12):
  ASoC: q6adm: dt-bindings: add compatible string to routing
  ASoC: q6asm: dt-bindings: add compatible string to dais
  ASoC: q6afe: dt-bindings: add compatible string to dais
  ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()
  ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()
  ASoC: qdsp6: q6afe: use of_platform_populate/depopulate()
  ASoC: qdsp6: q6afe-dai: support dt based module loading
  ASoC: qdsp6: q6asm-dai: support dt based module loading
  ASoC: qdsp6: q6routing: support dt based module loading
  ASoC: qcom: apq8096: remove redundant owner assignment
  ASoC: qdsp6: q6routing: add proper error check
  ASoC: qdsp6: q6asm: remove unused struct q6asm member

 Documentation/devicetree/bindings/sound/qcom,q6adm.txt |  6 ++++++
 Documentation/devicetree/bindings/sound/qcom,q6afe.txt |  6 ++++++
 Documentation/devicetree/bindings/sound/qcom,q6asm.txt |  6 ++++++
 sound/soc/qcom/apq8096.c                               |  1 -
 sound/soc/qcom/qdsp6/q6adm.c                           | 16 ++--------------
 sound/soc/qcom/qdsp6/q6afe-dai.c                       |  7 +++++++
 sound/soc/qcom/qdsp6/q6afe.c                           | 16 ++--------------
 sound/soc/qcom/qdsp6/q6asm-dai.c                       |  7 +++++++
 sound/soc/qcom/qdsp6/q6asm.c                           | 17 ++---------------
 sound/soc/qcom/qdsp6/q6routing.c                       |  9 ++++++++-
 10 files changed, 46 insertions(+), 45 deletions(-)

-- 
2.16.2


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

* [PATCH v2 01/12] ASoC: q6adm: dt-bindings: add compatible string to routing
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 02/12] ASoC: q6asm: dt-bindings: add compatible string to dais Srinivas Kandagatla
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

Add compatible string to routing so that it can support DT based module
autoloading.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
---
 Documentation/devicetree/bindings/sound/qcom,q6adm.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/qcom,q6adm.txt b/Documentation/devicetree/bindings/sound/qcom,q6adm.txt
index cb709e5dbc44..bbae426cdfb1 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6adm.txt
+++ b/Documentation/devicetree/bindings/sound/qcom,q6adm.txt
@@ -18,6 +18,11 @@ used by the apr service device.
 = ADM routing
 "routing" subnode of the ADM node represents adm routing specific configuration
 
+- compatible:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "qcom,q6adm-routing".
+
 - #sound-dai-cells
 	Usage: required
 	Value type: <u32>
@@ -28,6 +33,7 @@ q6adm@8 {
 	compatible = "qcom,q6adm";
 	reg = <APR_SVC_ADM>;
 	q6routing: routing {
+		compatible = "qcom,q6adm-routing";
 		#sound-dai-cells = <0>;
 	};
 };
-- 
2.16.2


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

* [PATCH v2 02/12] ASoC: q6asm: dt-bindings: add compatible string to dais
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 01/12] ASoC: q6adm: dt-bindings: add compatible string to routing Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 03/12] ASoC: q6afe: " Srinivas Kandagatla
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

Add compatible string to dais so that it can support DT based module
autoloading.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
---
 Documentation/devicetree/bindings/sound/qcom,q6asm.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/qcom,q6asm.txt b/Documentation/devicetree/bindings/sound/qcom,q6asm.txt
index 2178eb91146f..f9c7bd8c1bc0 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6asm.txt
+++ b/Documentation/devicetree/bindings/sound/qcom,q6asm.txt
@@ -17,6 +17,11 @@ used by the apr service device.
 = ASM DAIs (Digial Audio Interface)
 "dais" subnode of the ASM node represents dai specific configuration
 
+- compatible:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "qcom,q6asm-dais".
+
 - #sound-dai-cells
 	Usage: required
 	Value type: <u32>
@@ -28,6 +33,7 @@ q6asm@7 {
 	compatible = "qcom,q6asm";
 	reg = <APR_SVC_ASM>;
 	q6asmdai: dais {
+		compatible = "qcom,q6asm-dais";
 		#sound-dai-cells = <1>;
 	};
 };
-- 
2.16.2


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

* [PATCH v2 03/12] ASoC: q6afe: dt-bindings: add compatible string to dais
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 01/12] ASoC: q6adm: dt-bindings: add compatible string to routing Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 02/12] ASoC: q6asm: dt-bindings: add compatible string to dais Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:28   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: q6afe: dt-bindings: add compatible string to dais" to the asoc tree Mark Brown
  2018-06-26  9:20 ` [PATCH v2 04/12] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate() Srinivas Kandagatla
                   ` (9 subsequent siblings)
  12 siblings, 2 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

Add compatible string to dais so that it can support DT based module
autoloading.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 Documentation/devicetree/bindings/sound/qcom,q6afe.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
index bdbf87df8c0b..a8179409c194 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
+++ b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
@@ -17,6 +17,11 @@ used by all apr services. Must contain the following properties.
 subnode of "dais" representing board specific dai setup.
 "dais" node should have following properties followed by dai children.
 
+- compatible:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "qcom,q6afe-dais"
+
 - #sound-dai-cells
 	Usage: required
 	Value type: <u32>
@@ -100,6 +105,7 @@ q6afe@4 {
 	reg = <APR_SVC_AFE>;
 
 	dais {
+		compatible = "qcom,q6afe-dais";
 		#sound-dai-cells = <1>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-- 
2.16.2


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

* [PATCH v2 04/12] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (2 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 03/12] ASoC: q6afe: " Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:30   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()" to the asoc tree Mark Brown
  2018-06-26  9:20 ` [PATCH v2 05/12] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate() Srinivas Kandagatla
                   ` (8 subsequent siblings)
  12 siblings, 2 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/qdsp6/q6adm.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/q6adm.c b/sound/soc/qcom/qdsp6/q6adm.c
index 9983c665a941..932c3ebfd252 100644
--- a/sound/soc/qcom/qdsp6/q6adm.c
+++ b/sound/soc/qcom/qdsp6/q6adm.c
@@ -64,7 +64,6 @@ struct q6adm {
 	struct aprv2_ibasic_rsp_result_t result;
 	struct mutex lock;
 	wait_queue_head_t matrix_map_wait;
-	struct platform_device *pdev_routing;
 };
 
 struct q6adm_cmd_device_open_v5 {
@@ -588,7 +587,6 @@ EXPORT_SYMBOL_GPL(q6adm_close);
 static int q6adm_probe(struct apr_device *adev)
 {
 	struct device *dev = &adev->dev;
-	struct device_node *dais_np;
 	struct q6adm *adm;
 
 	adm = devm_kzalloc(&adev->dev, sizeof(*adm), GFP_KERNEL);
@@ -605,22 +603,12 @@ static int q6adm_probe(struct apr_device *adev)
 	INIT_LIST_HEAD(&adm->copps_list);
 	spin_lock_init(&adm->copps_list_lock);
 
-	dais_np = of_get_child_by_name(dev->of_node, "routing");
-	if (dais_np) {
-		adm->pdev_routing = of_platform_device_create(dais_np,
-							   "q6routing", dev);
-		of_node_put(dais_np);
-	}
-
-	return 0;
+	return of_platform_populate(dev->of_node, NULL, NULL, dev);
 }
 
 static int q6adm_remove(struct apr_device *adev)
 {
-	struct q6adm *adm = dev_get_drvdata(&adev->dev);
-
-	if (adm->pdev_routing)
-		of_platform_device_destroy(&adm->pdev_routing->dev, NULL);
+	of_platform_depopulate(&adev->dev);
 
 	return 0;
 }
-- 
2.16.2


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

* [PATCH v2 05/12] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (3 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 04/12] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate() Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:32   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()" to the asoc tree Mark Brown
  2018-06-26  9:20 ` [PATCH v2 06/12] ASoC: qdsp6: q6afe: use of_platform_populate/depopulate() Srinivas Kandagatla
                   ` (7 subsequent siblings)
  12 siblings, 2 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/qdsp6/q6asm.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c
index 530852385cad..c4fd28f168d5 100644
--- a/sound/soc/qcom/qdsp6/q6asm.c
+++ b/sound/soc/qcom/qdsp6/q6asm.c
@@ -177,7 +177,6 @@ struct q6asm {
 	struct platform_device *pcmdev;
 	spinlock_t slock;
 	struct audio_client *session[MAX_SESSIONS + 1];
-	struct platform_device *pdev_dais;
 };
 
 struct audio_client {
@@ -1344,7 +1343,6 @@ EXPORT_SYMBOL_GPL(q6asm_cmd_nowait);
 static int q6asm_probe(struct apr_device *adev)
 {
 	struct device *dev = &adev->dev;
-	struct device_node *dais_np;
 	struct q6asm *q6asm;
 
 	q6asm = devm_kzalloc(dev, sizeof(*q6asm), GFP_KERNEL);
@@ -1359,22 +1357,12 @@ static int q6asm_probe(struct apr_device *adev)
 	spin_lock_init(&q6asm->slock);
 	dev_set_drvdata(dev, q6asm);
 
-	dais_np = of_get_child_by_name(dev->of_node, "dais");
-	if (dais_np) {
-		q6asm->pdev_dais = of_platform_device_create(dais_np,
-							   "q6asm-dai", dev);
-		of_node_put(dais_np);
-	}
-
-	return 0;
+	return of_platform_populate(dev->of_node, NULL, NULL, dev);
 }
 
 static int q6asm_remove(struct apr_device *adev)
 {
-	struct q6asm *q6asm = dev_get_drvdata(&adev->dev);
-
-	if (q6asm->pdev_dais)
-		of_platform_device_destroy(&q6asm->pdev_dais->dev, NULL);
+	of_platform_depopulate(&adev->dev);
 
 	return 0;
 }
-- 
2.16.2


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

* [PATCH v2 06/12] ASoC: qdsp6: q6afe: use of_platform_populate/depopulate()
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (4 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 05/12] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate() Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 07/12] ASoC: qdsp6: q6afe-dai: support dt based module loading Srinivas Kandagatla
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
---
 sound/soc/qcom/qdsp6/q6afe.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/q6afe.c b/sound/soc/qcom/qdsp6/q6afe.c
index 01f43218984b..621b67b34db9 100644
--- a/sound/soc/qcom/qdsp6/q6afe.c
+++ b/sound/soc/qcom/qdsp6/q6afe.c
@@ -316,7 +316,6 @@ struct q6afe {
 	struct mutex lock;
 	struct list_head port_list;
 	spinlock_t port_list_lock;
-	struct platform_device *pdev_dais;
 };
 
 struct afe_port_cmd_device_start {
@@ -1438,7 +1437,6 @@ static int q6afe_probe(struct apr_device *adev)
 {
 	struct q6afe *afe;
 	struct device *dev = &adev->dev;
-	struct device_node *dais_np;
 
 	afe = devm_kzalloc(dev, sizeof(*afe), GFP_KERNEL);
 	if (!afe)
@@ -1453,22 +1451,12 @@ static int q6afe_probe(struct apr_device *adev)
 
 	dev_set_drvdata(dev, afe);
 
-	dais_np = of_get_child_by_name(dev->of_node, "dais");
-	if (dais_np) {
-		afe->pdev_dais = of_platform_device_create(dais_np,
-							   "q6afe-dai", dev);
-		of_node_put(dais_np);
-	}
-
-	return 0;
+	return of_platform_populate(dev->of_node, NULL, NULL, dev);
 }
 
 static int q6afe_remove(struct apr_device *adev)
 {
-	struct q6afe *afe = dev_get_drvdata(&adev->dev);
-
-	if (afe->pdev_dais)
-		of_platform_device_destroy(&afe->pdev_dais->dev, NULL);
+	of_platform_depopulate(&adev->dev);
 
 	return 0;
 }
-- 
2.16.2


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

* [PATCH v2 07/12] ASoC: qdsp6: q6afe-dai: support dt based module loading
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (5 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 06/12] ASoC: qdsp6: q6afe: use of_platform_populate/depopulate() Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:35   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6afe-dai: support dt based module loading" to the asoc tree Mark Brown
  2018-06-26  9:20 ` [PATCH v2 08/12] ASoC: qdsp6: q6asm-dai: support dt based module loading Srinivas Kandagatla
                   ` (5 subsequent siblings)
  12 siblings, 2 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/qdsp6/q6afe-dai.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-dai.c
index 5002dd05bf27..1d2e5013c121 100644
--- a/sound/soc/qcom/qdsp6/q6afe-dai.c
+++ b/sound/soc/qcom/qdsp6/q6afe-dai.c
@@ -1290,9 +1290,16 @@ static int q6afe_dai_dev_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id q6afe_dai_device_id[] = {
+	{ .compatible = "qcom,q6afe-dais" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, q6afe_dai_device_id);
+
 static struct platform_driver q6afe_dai_platform_driver = {
 	.driver = {
 		.name = "q6afe-dai",
+		.of_match_table = of_match_ptr(q6afe_dai_device_id),
 	},
 	.probe = q6afe_dai_dev_probe,
 	.remove = q6afe_dai_dev_remove,
-- 
2.16.2


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

* [PATCH v2 08/12] ASoC: qdsp6: q6asm-dai: support dt based module loading
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (6 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 07/12] ASoC: qdsp6: q6afe-dai: support dt based module loading Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:35   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6asm-dai: support dt based module loading" to the asoc tree Mark Brown
  2018-06-26  9:20 ` [PATCH v2 09/12] ASoC: qdsp6: q6routing: support dt based module loading Srinivas Kandagatla
                   ` (4 subsequent siblings)
  12 siblings, 2 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/qdsp6/q6asm-dai.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
index 349c6a883c63..1196dc7483d2 100644
--- a/sound/soc/qcom/qdsp6/q6asm-dai.c
+++ b/sound/soc/qcom/qdsp6/q6asm-dai.c
@@ -611,9 +611,16 @@ static int q6asm_dai_dev_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id q6asm_dai_device_id[] = {
+	{ .compatible = "qcom,q6asm-dais" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, q6asm_dai_device_id);
+
 static struct platform_driver q6asm_dai_platform_driver = {
 	.driver = {
 		.name = "q6asm-dai",
+		.of_match_table = of_match_ptr(q6asm_dai_device_id),
 	},
 	.probe = q6asm_dai_probe,
 	.remove = q6asm_dai_dev_remove,
-- 
2.16.2


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

* [PATCH v2 09/12] ASoC: qdsp6: q6routing: support dt based module loading
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (7 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 08/12] ASoC: qdsp6: q6asm-dai: support dt based module loading Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:35   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6routing: support dt based module loading" to the asoc tree Mark Brown
  2018-06-26  9:20 ` [PATCH v2 10/12] ASoC: qcom: apq8096: remove redundant owner assignment Srinivas Kandagatla
                   ` (3 subsequent siblings)
  12 siblings, 2 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/qdsp6/q6routing.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
index 593f66b8622f..ab696bf8d1d3 100644
--- a/sound/soc/qcom/qdsp6/q6routing.c
+++ b/sound/soc/qcom/qdsp6/q6routing.c
@@ -993,9 +993,16 @@ static int q6pcm_routing_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id q6pcm_routing_device_id[] = {
+	{ .compatible = "qcom,q6adm-routing" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, q6pcm_routing_device_id);
+
 static struct platform_driver q6pcm_routing_platform_driver = {
 	.driver = {
 		.name = "q6routing",
+		.of_match_table = of_match_ptr(q6pcm_routing_device_id),
 	},
 	.probe = q6pcm_routing_probe,
 	.remove = q6pcm_routing_remove,
-- 
2.16.2


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

* [PATCH v2 10/12] ASoC: qcom: apq8096: remove redundant owner assignment
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (8 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 09/12] ASoC: qdsp6: q6routing: support dt based module loading Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:20 ` [PATCH v2 11/12] ASoC: qdsp6: q6routing: add proper error check Srinivas Kandagatla
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

module owner is already set in platform_driver_register(), so remove this
redundant assignment.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
---
 sound/soc/qcom/apq8096.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sound/soc/qcom/apq8096.c b/sound/soc/qcom/apq8096.c
index 561cd429e6f2..6e79fec7e789 100644
--- a/sound/soc/qcom/apq8096.c
+++ b/sound/soc/qcom/apq8096.c
@@ -245,7 +245,6 @@ static struct platform_driver msm_snd_apq8096_driver = {
 	.remove = apq8096_platform_remove,
 	.driver = {
 		.name = "msm-snd-apq8096",
-		.owner = THIS_MODULE,
 		.of_match_table = msm_snd_apq8096_dt_match,
 	},
 };
-- 
2.16.2


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

* [PATCH v2 11/12] ASoC: qdsp6: q6routing: add proper error check
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (9 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 10/12] ASoC: qcom: apq8096: remove redundant owner assignment Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:36   ` Niklas Cassel
  2018-06-26  9:20 ` [PATCH v2 12/12] ASoC: qdsp6: q6asm: remove unused struct q6asm member Srinivas Kandagatla
  2018-06-26  9:43 ` [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Niklas Cassel
  12 siblings, 1 reply; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

q6adm_open can return error pointer or a null in error cases.
Fix the return handling.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/qdsp6/q6routing.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
index ab696bf8d1d3..c80fdbc2442e 100644
--- a/sound/soc/qcom/qdsp6/q6routing.c
+++ b/sound/soc/qcom/qdsp6/q6routing.c
@@ -310,7 +310,7 @@ int q6routing_stream_open(int fedai_id, int perf_mode,
 			      session->channels, topology, perf_mode,
 			      session->bits_per_sample, 0, 0);
 
-	if (!copp) {
+	if (IS_ERR_OR_NULL(copp)) {
 		mutex_unlock(&routing_data->lock);
 		return -EINVAL;
 	}
-- 
2.16.2


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

* [PATCH v2 12/12] ASoC: qdsp6: q6asm: remove unused struct q6asm member
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (10 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 11/12] ASoC: qdsp6: q6routing: add proper error check Srinivas Kandagatla
@ 2018-06-26  9:20 ` Srinivas Kandagatla
  2018-06-26  9:36   ` Niklas Cassel
  2018-06-26 15:10   ` Applied "ASoC: qdsp6: q6asm: remove unused struct q6asm member" to the asoc tree Mark Brown
  2018-06-26  9:43 ` [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Niklas Cassel
  12 siblings, 2 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:20 UTC (permalink / raw)
  To: broonie, robh+dt, alsa-devel
  Cc: devicetree, linux-arm-msm, lgirdwood, bgoswami, tiwai, perex,
	linux-kernel, linux-arm-kernel, niklas.cassel,
	Srinivas Kandagatla

pcmdev in struct q6asm seems be left over and unused, so just remove it.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/qdsp6/q6asm.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c
index c4fd28f168d5..2b2c7233bb5f 100644
--- a/sound/soc/qcom/qdsp6/q6asm.c
+++ b/sound/soc/qcom/qdsp6/q6asm.c
@@ -174,7 +174,6 @@ struct q6asm {
 	struct device *dev;
 	struct q6core_svc_api_info ainfo;
 	wait_queue_head_t mem_wait;
-	struct platform_device *pcmdev;
 	spinlock_t slock;
 	struct audio_client *session[MAX_SESSIONS + 1];
 };
-- 
2.16.2


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

* Re: [PATCH v2 03/12] ASoC: q6afe: dt-bindings: add compatible string to dais
  2018-06-26  9:20 ` [PATCH v2 03/12] ASoC: q6afe: " Srinivas Kandagatla
@ 2018-06-26  9:28   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: q6afe: dt-bindings: add compatible string to dais" to the asoc tree Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:28 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:07AM +0100, Srinivas Kandagatla wrote:
> Add compatible string to dais so that it can support DT based module
> autoloading.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  Documentation/devicetree/bindings/sound/qcom,q6afe.txt | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
> index bdbf87df8c0b..a8179409c194 100644
> --- a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
> +++ b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
> @@ -17,6 +17,11 @@ used by all apr services. Must contain the following properties.
>  subnode of "dais" representing board specific dai setup.
>  "dais" node should have following properties followed by dai children.
>  
> +- compatible:
> +	Usage: required
> +	Value type: <stringlist>
> +	Definition: must be "qcom,q6afe-dais"
> +
>  - #sound-dai-cells
>  	Usage: required
>  	Value type: <u32>
> @@ -100,6 +105,7 @@ q6afe@4 {
>  	reg = <APR_SVC_AFE>;
>  
>  	dais {
> +		compatible = "qcom,q6afe-dais";
>  		#sound-dai-cells = <1>;
>  		#address-cells = <1>;
>  		#size-cells = <0>;
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 04/12] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()
  2018-06-26  9:20 ` [PATCH v2 04/12] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate() Srinivas Kandagatla
@ 2018-06-26  9:30   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()" to the asoc tree Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:30 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:08AM +0100, Srinivas Kandagatla wrote:
> Now that the child nodes have there own compatible strings,
> Use of_platform_populate/depopulate() instead of less common
> of_platform_device_create()/destroy().
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  sound/soc/qcom/qdsp6/q6adm.c | 16 ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
> 
> diff --git a/sound/soc/qcom/qdsp6/q6adm.c b/sound/soc/qcom/qdsp6/q6adm.c
> index 9983c665a941..932c3ebfd252 100644
> --- a/sound/soc/qcom/qdsp6/q6adm.c
> +++ b/sound/soc/qcom/qdsp6/q6adm.c
> @@ -64,7 +64,6 @@ struct q6adm {
>  	struct aprv2_ibasic_rsp_result_t result;
>  	struct mutex lock;
>  	wait_queue_head_t matrix_map_wait;
> -	struct platform_device *pdev_routing;
>  };
>  
>  struct q6adm_cmd_device_open_v5 {
> @@ -588,7 +587,6 @@ EXPORT_SYMBOL_GPL(q6adm_close);
>  static int q6adm_probe(struct apr_device *adev)
>  {
>  	struct device *dev = &adev->dev;
> -	struct device_node *dais_np;
>  	struct q6adm *adm;
>  
>  	adm = devm_kzalloc(&adev->dev, sizeof(*adm), GFP_KERNEL);
> @@ -605,22 +603,12 @@ static int q6adm_probe(struct apr_device *adev)
>  	INIT_LIST_HEAD(&adm->copps_list);
>  	spin_lock_init(&adm->copps_list_lock);
>  
> -	dais_np = of_get_child_by_name(dev->of_node, "routing");
> -	if (dais_np) {
> -		adm->pdev_routing = of_platform_device_create(dais_np,
> -							   "q6routing", dev);
> -		of_node_put(dais_np);
> -	}
> -
> -	return 0;
> +	return of_platform_populate(dev->of_node, NULL, NULL, dev);
>  }
>  
>  static int q6adm_remove(struct apr_device *adev)
>  {
> -	struct q6adm *adm = dev_get_drvdata(&adev->dev);
> -
> -	if (adm->pdev_routing)
> -		of_platform_device_destroy(&adm->pdev_routing->dev, NULL);
> +	of_platform_depopulate(&adev->dev);
>  
>  	return 0;
>  }
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 05/12] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()
  2018-06-26  9:20 ` [PATCH v2 05/12] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate() Srinivas Kandagatla
@ 2018-06-26  9:32   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()" to the asoc tree Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:32 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:09AM +0100, Srinivas Kandagatla wrote:
> Now that the child nodes have there own compatible strings,
> Use of_platform_populate/depopulate() instead of less common
> of_platform_device_create()/destroy().
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  sound/soc/qcom/qdsp6/q6asm.c | 16 ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
> 
> diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c
> index 530852385cad..c4fd28f168d5 100644
> --- a/sound/soc/qcom/qdsp6/q6asm.c
> +++ b/sound/soc/qcom/qdsp6/q6asm.c
> @@ -177,7 +177,6 @@ struct q6asm {
>  	struct platform_device *pcmdev;
>  	spinlock_t slock;
>  	struct audio_client *session[MAX_SESSIONS + 1];
> -	struct platform_device *pdev_dais;
>  };
>  
>  struct audio_client {
> @@ -1344,7 +1343,6 @@ EXPORT_SYMBOL_GPL(q6asm_cmd_nowait);
>  static int q6asm_probe(struct apr_device *adev)
>  {
>  	struct device *dev = &adev->dev;
> -	struct device_node *dais_np;
>  	struct q6asm *q6asm;
>  
>  	q6asm = devm_kzalloc(dev, sizeof(*q6asm), GFP_KERNEL);
> @@ -1359,22 +1357,12 @@ static int q6asm_probe(struct apr_device *adev)
>  	spin_lock_init(&q6asm->slock);
>  	dev_set_drvdata(dev, q6asm);
>  
> -	dais_np = of_get_child_by_name(dev->of_node, "dais");
> -	if (dais_np) {
> -		q6asm->pdev_dais = of_platform_device_create(dais_np,
> -							   "q6asm-dai", dev);
> -		of_node_put(dais_np);
> -	}
> -
> -	return 0;
> +	return of_platform_populate(dev->of_node, NULL, NULL, dev);
>  }
>  
>  static int q6asm_remove(struct apr_device *adev)
>  {
> -	struct q6asm *q6asm = dev_get_drvdata(&adev->dev);
> -
> -	if (q6asm->pdev_dais)
> -		of_platform_device_destroy(&q6asm->pdev_dais->dev, NULL);
> +	of_platform_depopulate(&adev->dev);
>  
>  	return 0;
>  }
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 07/12] ASoC: qdsp6: q6afe-dai: support dt based module loading
  2018-06-26  9:20 ` [PATCH v2 07/12] ASoC: qdsp6: q6afe-dai: support dt based module loading Srinivas Kandagatla
@ 2018-06-26  9:35   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6afe-dai: support dt based module loading" to the asoc tree Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:35 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:11AM +0100, Srinivas Kandagatla wrote:
> This patch uses new compatible string to make DT based module loading work.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  sound/soc/qcom/qdsp6/q6afe-dai.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-dai.c
> index 5002dd05bf27..1d2e5013c121 100644
> --- a/sound/soc/qcom/qdsp6/q6afe-dai.c
> +++ b/sound/soc/qcom/qdsp6/q6afe-dai.c
> @@ -1290,9 +1290,16 @@ static int q6afe_dai_dev_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> +static const struct of_device_id q6afe_dai_device_id[] = {
> +	{ .compatible = "qcom,q6afe-dais" },
> +	{},
> +};
> +MODULE_DEVICE_TABLE(of, q6afe_dai_device_id);
> +
>  static struct platform_driver q6afe_dai_platform_driver = {
>  	.driver = {
>  		.name = "q6afe-dai",
> +		.of_match_table = of_match_ptr(q6afe_dai_device_id),
>  	},
>  	.probe = q6afe_dai_dev_probe,
>  	.remove = q6afe_dai_dev_remove,
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 08/12] ASoC: qdsp6: q6asm-dai: support dt based module loading
  2018-06-26  9:20 ` [PATCH v2 08/12] ASoC: qdsp6: q6asm-dai: support dt based module loading Srinivas Kandagatla
@ 2018-06-26  9:35   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6asm-dai: support dt based module loading" to the asoc tree Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:35 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:12AM +0100, Srinivas Kandagatla wrote:
> This patch uses new compatible string to make DT based module loading work.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  sound/soc/qcom/qdsp6/q6asm-dai.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
> index 349c6a883c63..1196dc7483d2 100644
> --- a/sound/soc/qcom/qdsp6/q6asm-dai.c
> +++ b/sound/soc/qcom/qdsp6/q6asm-dai.c
> @@ -611,9 +611,16 @@ static int q6asm_dai_dev_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> +static const struct of_device_id q6asm_dai_device_id[] = {
> +	{ .compatible = "qcom,q6asm-dais" },
> +	{},
> +};
> +MODULE_DEVICE_TABLE(of, q6asm_dai_device_id);
> +
>  static struct platform_driver q6asm_dai_platform_driver = {
>  	.driver = {
>  		.name = "q6asm-dai",
> +		.of_match_table = of_match_ptr(q6asm_dai_device_id),
>  	},
>  	.probe = q6asm_dai_probe,
>  	.remove = q6asm_dai_dev_remove,
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 09/12] ASoC: qdsp6: q6routing: support dt based module loading
  2018-06-26  9:20 ` [PATCH v2 09/12] ASoC: qdsp6: q6routing: support dt based module loading Srinivas Kandagatla
@ 2018-06-26  9:35   ` Niklas Cassel
  2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6routing: support dt based module loading" to the asoc tree Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:35 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:13AM +0100, Srinivas Kandagatla wrote:
> This patch uses new compatible string to make DT based module loading work.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  sound/soc/qcom/qdsp6/q6routing.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
> index 593f66b8622f..ab696bf8d1d3 100644
> --- a/sound/soc/qcom/qdsp6/q6routing.c
> +++ b/sound/soc/qcom/qdsp6/q6routing.c
> @@ -993,9 +993,16 @@ static int q6pcm_routing_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> +static const struct of_device_id q6pcm_routing_device_id[] = {
> +	{ .compatible = "qcom,q6adm-routing" },
> +	{},
> +};
> +MODULE_DEVICE_TABLE(of, q6pcm_routing_device_id);
> +
>  static struct platform_driver q6pcm_routing_platform_driver = {
>  	.driver = {
>  		.name = "q6routing",
> +		.of_match_table = of_match_ptr(q6pcm_routing_device_id),
>  	},
>  	.probe = q6pcm_routing_probe,
>  	.remove = q6pcm_routing_remove,
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 11/12] ASoC: qdsp6: q6routing: add proper error check
  2018-06-26  9:20 ` [PATCH v2 11/12] ASoC: qdsp6: q6routing: add proper error check Srinivas Kandagatla
@ 2018-06-26  9:36   ` Niklas Cassel
  0 siblings, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:36 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:15AM +0100, Srinivas Kandagatla wrote:
> q6adm_open can return error pointer or a null in error cases.
> Fix the return handling.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  sound/soc/qcom/qdsp6/q6routing.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
> index ab696bf8d1d3..c80fdbc2442e 100644
> --- a/sound/soc/qcom/qdsp6/q6routing.c
> +++ b/sound/soc/qcom/qdsp6/q6routing.c
> @@ -310,7 +310,7 @@ int q6routing_stream_open(int fedai_id, int perf_mode,
>  			      session->channels, topology, perf_mode,
>  			      session->bits_per_sample, 0, 0);
>  
> -	if (!copp) {
> +	if (IS_ERR_OR_NULL(copp)) {
>  		mutex_unlock(&routing_data->lock);
>  		return -EINVAL;
>  	}
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 12/12] ASoC: qdsp6: q6asm: remove unused struct q6asm member
  2018-06-26  9:20 ` [PATCH v2 12/12] ASoC: qdsp6: q6asm: remove unused struct q6asm member Srinivas Kandagatla
@ 2018-06-26  9:36   ` Niklas Cassel
  2018-06-26 15:10   ` Applied "ASoC: qdsp6: q6asm: remove unused struct q6asm member" to the asoc tree Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:36 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

Acked-by: Niklas Cassel <niklas.cassel@linaro.org>

On Tue, Jun 26, 2018 at 10:20:16AM +0100, Srinivas Kandagatla wrote:
> pcmdev in struct q6asm seems be left over and unused, so just remove it.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  sound/soc/qcom/qdsp6/q6asm.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c
> index c4fd28f168d5..2b2c7233bb5f 100644
> --- a/sound/soc/qcom/qdsp6/q6asm.c
> +++ b/sound/soc/qcom/qdsp6/q6asm.c
> @@ -174,7 +174,6 @@ struct q6asm {
>  	struct device *dev;
>  	struct q6core_svc_api_info ainfo;
>  	wait_queue_head_t mem_wait;
> -	struct platform_device *pcmdev;
>  	spinlock_t slock;
>  	struct audio_client *session[MAX_SESSIONS + 1];
>  };
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes
  2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
                   ` (11 preceding siblings ...)
  2018-06-26  9:20 ` [PATCH v2 12/12] ASoC: qdsp6: q6asm: remove unused struct q6asm member Srinivas Kandagatla
@ 2018-06-26  9:43 ` Niklas Cassel
  2018-06-26  9:45   ` Srinivas Kandagatla
  12 siblings, 1 reply; 30+ messages in thread
From: Niklas Cassel @ 2018-06-26  9:43 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel

On Tue, Jun 26, 2018 at 10:20:04AM +0100, Srinivas Kandagatla wrote:
> Recent discussion on https://lkml.org/lkml/2018/6/18/1282 suggested
> that qdsp6 code is using less common of_platform apis which would
> not give dt based module loading support.
> 
> Suggestion from Rob was to add compatible strings to the dais nodes
> This patchset adds this. Also this patchset has 3 trivial fixes which
> is removing redundant owner, remove unused struct member and fix a
> error check in q6routing.
> 
> Changes since v1:
> - Addressed few trivial comments from Niklas

Hello Srini!

I didn't see a response to my review comment in:
https://marc.info/?l=devicetree&m=152998662313684

"Since adding the compatible is a prerequisite for using
of_platform_populate()/of_platform_depopulate(),
I think that the patches that make use of
of_platform_populate()/of_platform_depopulate() should
come after the patches that adds the of_table entries."

If the code is bisectable with the current ordering
of the patches, then feel free to ignore this review
comment.

Kind regards,
Niklas

> 
> Thanks,
> srini
> 
> Srinivas Kandagatla (12):
>   ASoC: q6adm: dt-bindings: add compatible string to routing
>   ASoC: q6asm: dt-bindings: add compatible string to dais
>   ASoC: q6afe: dt-bindings: add compatible string to dais
>   ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()
>   ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()
>   ASoC: qdsp6: q6afe: use of_platform_populate/depopulate()
>   ASoC: qdsp6: q6afe-dai: support dt based module loading
>   ASoC: qdsp6: q6asm-dai: support dt based module loading
>   ASoC: qdsp6: q6routing: support dt based module loading
>   ASoC: qcom: apq8096: remove redundant owner assignment
>   ASoC: qdsp6: q6routing: add proper error check
>   ASoC: qdsp6: q6asm: remove unused struct q6asm member
> 
>  Documentation/devicetree/bindings/sound/qcom,q6adm.txt |  6 ++++++
>  Documentation/devicetree/bindings/sound/qcom,q6afe.txt |  6 ++++++
>  Documentation/devicetree/bindings/sound/qcom,q6asm.txt |  6 ++++++
>  sound/soc/qcom/apq8096.c                               |  1 -
>  sound/soc/qcom/qdsp6/q6adm.c                           | 16 ++--------------
>  sound/soc/qcom/qdsp6/q6afe-dai.c                       |  7 +++++++
>  sound/soc/qcom/qdsp6/q6afe.c                           | 16 ++--------------
>  sound/soc/qcom/qdsp6/q6asm-dai.c                       |  7 +++++++
>  sound/soc/qcom/qdsp6/q6asm.c                           | 17 ++---------------
>  sound/soc/qcom/qdsp6/q6routing.c                       |  9 ++++++++-
>  10 files changed, 46 insertions(+), 45 deletions(-)
> 
> -- 
> 2.16.2
> 

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

* Re: [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes
  2018-06-26  9:43 ` [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Niklas Cassel
@ 2018-06-26  9:45   ` Srinivas Kandagatla
  0 siblings, 0 replies; 30+ messages in thread
From: Srinivas Kandagatla @ 2018-06-26  9:45 UTC (permalink / raw)
  To: Niklas Cassel
  Cc: broonie, robh+dt, alsa-devel, devicetree, linux-arm-msm,
	lgirdwood, bgoswami, tiwai, perex, linux-kernel,
	linux-arm-kernel



On 26/06/18 10:43, Niklas Cassel wrote:
> If the code is bisectable with the current ordering
> of the patches, then feel free to ignore this review
> comment.
Ofcourse the code is bisectable with the current series as it.

thanks,
srini


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

* Applied "ASoC: qdsp6: q6asm: remove unused struct q6asm member" to the asoc tree
  2018-06-26  9:20 ` [PATCH v2 12/12] ASoC: qdsp6: q6asm: remove unused struct q6asm member Srinivas Kandagatla
  2018-06-26  9:36   ` Niklas Cassel
@ 2018-06-26 15:10   ` Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Mark Brown @ 2018-06-26 15:10 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Niklas Cassel, Mark Brown, broonie, robh+dt, alsa-devel,
	devicetree, bgoswami, lgirdwood, linux-arm-msm, tiwai,
	linux-arm-kernel, niklas.cassel, linux-kernel, alsa-devel

The patch

   ASoC: qdsp6: q6asm: remove unused struct q6asm member

has been applied to the asoc tree at

   https://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 f339155a4063cf3177bb38f6e83760951148e86b Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Tue, 26 Jun 2018 10:20:16 +0100
Subject: [PATCH] ASoC: qdsp6: q6asm: remove unused struct q6asm member

pcmdev in struct q6asm seems be left over and unused, so just remove it.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/qcom/qdsp6/q6asm.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c
index c4fd28f168d5..2b2c7233bb5f 100644
--- a/sound/soc/qcom/qdsp6/q6asm.c
+++ b/sound/soc/qcom/qdsp6/q6asm.c
@@ -174,7 +174,6 @@ struct q6asm {
 	struct device *dev;
 	struct q6core_svc_api_info ainfo;
 	wait_queue_head_t mem_wait;
-	struct platform_device *pcmdev;
 	spinlock_t slock;
 	struct audio_client *session[MAX_SESSIONS + 1];
 };
-- 
2.17.1


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

* Applied "ASoC: qdsp6: q6routing: support dt based module loading" to the asoc tree
  2018-06-26  9:20 ` [PATCH v2 09/12] ASoC: qdsp6: q6routing: support dt based module loading Srinivas Kandagatla
  2018-06-26  9:35   ` Niklas Cassel
@ 2018-06-26 15:11   ` Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Mark Brown @ 2018-06-26 15:11 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Niklas Cassel, Mark Brown, broonie, robh+dt, alsa-devel,
	devicetree, bgoswami, lgirdwood, linux-arm-msm, tiwai,
	linux-arm-kernel, niklas.cassel, linux-kernel, alsa-devel

The patch

   ASoC: qdsp6: q6routing: support dt based module loading

has been applied to the asoc tree at

   https://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 f48bde4bfbcf434d6aef604c1c50d68b12a4bc45 Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Tue, 26 Jun 2018 10:20:13 +0100
Subject: [PATCH] ASoC: qdsp6: q6routing: support dt based module loading

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/qcom/qdsp6/q6routing.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
index 593f66b8622f..ab696bf8d1d3 100644
--- a/sound/soc/qcom/qdsp6/q6routing.c
+++ b/sound/soc/qcom/qdsp6/q6routing.c
@@ -993,9 +993,16 @@ static int q6pcm_routing_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id q6pcm_routing_device_id[] = {
+	{ .compatible = "qcom,q6adm-routing" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, q6pcm_routing_device_id);
+
 static struct platform_driver q6pcm_routing_platform_driver = {
 	.driver = {
 		.name = "q6routing",
+		.of_match_table = of_match_ptr(q6pcm_routing_device_id),
 	},
 	.probe = q6pcm_routing_probe,
 	.remove = q6pcm_routing_remove,
-- 
2.17.1


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

* Applied "ASoC: qdsp6: q6asm-dai: support dt based module loading" to the asoc tree
  2018-06-26  9:20 ` [PATCH v2 08/12] ASoC: qdsp6: q6asm-dai: support dt based module loading Srinivas Kandagatla
  2018-06-26  9:35   ` Niklas Cassel
@ 2018-06-26 15:11   ` Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Mark Brown @ 2018-06-26 15:11 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Niklas Cassel, Mark Brown, broonie, robh+dt, alsa-devel,
	devicetree, bgoswami, lgirdwood, linux-arm-msm, tiwai,
	linux-arm-kernel, niklas.cassel, linux-kernel, alsa-devel

The patch

   ASoC: qdsp6: q6asm-dai: support dt based module loading

has been applied to the asoc tree at

   https://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 1ce09ef36fb190fa207fdb3e31fc1c8caa292125 Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Tue, 26 Jun 2018 10:20:12 +0100
Subject: [PATCH] ASoC: qdsp6: q6asm-dai: support dt based module loading

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/qcom/qdsp6/q6asm-dai.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
index 349c6a883c63..1196dc7483d2 100644
--- a/sound/soc/qcom/qdsp6/q6asm-dai.c
+++ b/sound/soc/qcom/qdsp6/q6asm-dai.c
@@ -611,9 +611,16 @@ static int q6asm_dai_dev_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id q6asm_dai_device_id[] = {
+	{ .compatible = "qcom,q6asm-dais" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, q6asm_dai_device_id);
+
 static struct platform_driver q6asm_dai_platform_driver = {
 	.driver = {
 		.name = "q6asm-dai",
+		.of_match_table = of_match_ptr(q6asm_dai_device_id),
 	},
 	.probe = q6asm_dai_probe,
 	.remove = q6asm_dai_dev_remove,
-- 
2.17.1


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

* Applied "ASoC: qdsp6: q6afe-dai: support dt based module loading" to the asoc tree
  2018-06-26  9:20 ` [PATCH v2 07/12] ASoC: qdsp6: q6afe-dai: support dt based module loading Srinivas Kandagatla
  2018-06-26  9:35   ` Niklas Cassel
@ 2018-06-26 15:11   ` Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Mark Brown @ 2018-06-26 15:11 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Niklas Cassel, Mark Brown, broonie, robh+dt, alsa-devel,
	devicetree, bgoswami, lgirdwood, linux-arm-msm, tiwai,
	linux-arm-kernel, niklas.cassel, linux-kernel, alsa-devel

The patch

   ASoC: qdsp6: q6afe-dai: support dt based module loading

has been applied to the asoc tree at

   https://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 eb7cc9be6e9ce17e69252a6fc00e75a5b08201ab Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Tue, 26 Jun 2018 10:20:11 +0100
Subject: [PATCH] ASoC: qdsp6: q6afe-dai: support dt based module loading

This patch uses new compatible string to make DT based module loading work.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/qcom/qdsp6/q6afe-dai.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-dai.c
index 5002dd05bf27..1d2e5013c121 100644
--- a/sound/soc/qcom/qdsp6/q6afe-dai.c
+++ b/sound/soc/qcom/qdsp6/q6afe-dai.c
@@ -1290,9 +1290,16 @@ static int q6afe_dai_dev_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id q6afe_dai_device_id[] = {
+	{ .compatible = "qcom,q6afe-dais" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, q6afe_dai_device_id);
+
 static struct platform_driver q6afe_dai_platform_driver = {
 	.driver = {
 		.name = "q6afe-dai",
+		.of_match_table = of_match_ptr(q6afe_dai_device_id),
 	},
 	.probe = q6afe_dai_dev_probe,
 	.remove = q6afe_dai_dev_remove,
-- 
2.17.1


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

* Applied "ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()" to the asoc tree
  2018-06-26  9:20 ` [PATCH v2 05/12] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate() Srinivas Kandagatla
  2018-06-26  9:32   ` Niklas Cassel
@ 2018-06-26 15:11   ` Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Mark Brown @ 2018-06-26 15:11 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Niklas Cassel, Mark Brown, broonie, robh+dt, alsa-devel,
	devicetree, bgoswami, lgirdwood, linux-arm-msm, tiwai,
	linux-arm-kernel, niklas.cassel, linux-kernel, alsa-devel

The patch

   ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()

has been applied to the asoc tree at

   https://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 4aac7e2773030d667491fbb6d97c9f467fdcbc05 Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Tue, 26 Jun 2018 10:20:09 +0100
Subject: [PATCH] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/qcom/qdsp6/q6asm.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c
index 530852385cad..c4fd28f168d5 100644
--- a/sound/soc/qcom/qdsp6/q6asm.c
+++ b/sound/soc/qcom/qdsp6/q6asm.c
@@ -177,7 +177,6 @@ struct q6asm {
 	struct platform_device *pcmdev;
 	spinlock_t slock;
 	struct audio_client *session[MAX_SESSIONS + 1];
-	struct platform_device *pdev_dais;
 };
 
 struct audio_client {
@@ -1344,7 +1343,6 @@ EXPORT_SYMBOL_GPL(q6asm_cmd_nowait);
 static int q6asm_probe(struct apr_device *adev)
 {
 	struct device *dev = &adev->dev;
-	struct device_node *dais_np;
 	struct q6asm *q6asm;
 
 	q6asm = devm_kzalloc(dev, sizeof(*q6asm), GFP_KERNEL);
@@ -1359,22 +1357,12 @@ static int q6asm_probe(struct apr_device *adev)
 	spin_lock_init(&q6asm->slock);
 	dev_set_drvdata(dev, q6asm);
 
-	dais_np = of_get_child_by_name(dev->of_node, "dais");
-	if (dais_np) {
-		q6asm->pdev_dais = of_platform_device_create(dais_np,
-							   "q6asm-dai", dev);
-		of_node_put(dais_np);
-	}
-
-	return 0;
+	return of_platform_populate(dev->of_node, NULL, NULL, dev);
 }
 
 static int q6asm_remove(struct apr_device *adev)
 {
-	struct q6asm *q6asm = dev_get_drvdata(&adev->dev);
-
-	if (q6asm->pdev_dais)
-		of_platform_device_destroy(&q6asm->pdev_dais->dev, NULL);
+	of_platform_depopulate(&adev->dev);
 
 	return 0;
 }
-- 
2.17.1


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

* Applied "ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()" to the asoc tree
  2018-06-26  9:20 ` [PATCH v2 04/12] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate() Srinivas Kandagatla
  2018-06-26  9:30   ` Niklas Cassel
@ 2018-06-26 15:11   ` Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Mark Brown @ 2018-06-26 15:11 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Niklas Cassel, Mark Brown, broonie, robh+dt, alsa-devel,
	devicetree, bgoswami, lgirdwood, linux-arm-msm, tiwai,
	linux-arm-kernel, niklas.cassel, linux-kernel, alsa-devel

The patch

   ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()

has been applied to the asoc tree at

   https://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 f614c9b070ed149bbaac4edefb2b5fcb7755c4b0 Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Tue, 26 Jun 2018 10:20:08 +0100
Subject: [PATCH] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()

Now that the child nodes have there own compatible strings,
Use of_platform_populate/depopulate() instead of less common
of_platform_device_create()/destroy().

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/qcom/qdsp6/q6adm.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/q6adm.c b/sound/soc/qcom/qdsp6/q6adm.c
index 9983c665a941..932c3ebfd252 100644
--- a/sound/soc/qcom/qdsp6/q6adm.c
+++ b/sound/soc/qcom/qdsp6/q6adm.c
@@ -64,7 +64,6 @@ struct q6adm {
 	struct aprv2_ibasic_rsp_result_t result;
 	struct mutex lock;
 	wait_queue_head_t matrix_map_wait;
-	struct platform_device *pdev_routing;
 };
 
 struct q6adm_cmd_device_open_v5 {
@@ -588,7 +587,6 @@ EXPORT_SYMBOL_GPL(q6adm_close);
 static int q6adm_probe(struct apr_device *adev)
 {
 	struct device *dev = &adev->dev;
-	struct device_node *dais_np;
 	struct q6adm *adm;
 
 	adm = devm_kzalloc(&adev->dev, sizeof(*adm), GFP_KERNEL);
@@ -605,22 +603,12 @@ static int q6adm_probe(struct apr_device *adev)
 	INIT_LIST_HEAD(&adm->copps_list);
 	spin_lock_init(&adm->copps_list_lock);
 
-	dais_np = of_get_child_by_name(dev->of_node, "routing");
-	if (dais_np) {
-		adm->pdev_routing = of_platform_device_create(dais_np,
-							   "q6routing", dev);
-		of_node_put(dais_np);
-	}
-
-	return 0;
+	return of_platform_populate(dev->of_node, NULL, NULL, dev);
 }
 
 static int q6adm_remove(struct apr_device *adev)
 {
-	struct q6adm *adm = dev_get_drvdata(&adev->dev);
-
-	if (adm->pdev_routing)
-		of_platform_device_destroy(&adm->pdev_routing->dev, NULL);
+	of_platform_depopulate(&adev->dev);
 
 	return 0;
 }
-- 
2.17.1


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

* Applied "ASoC: q6afe: dt-bindings: add compatible string to dais" to the asoc tree
  2018-06-26  9:20 ` [PATCH v2 03/12] ASoC: q6afe: " Srinivas Kandagatla
  2018-06-26  9:28   ` Niklas Cassel
@ 2018-06-26 15:11   ` Mark Brown
  1 sibling, 0 replies; 30+ messages in thread
From: Mark Brown @ 2018-06-26 15:11 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Niklas Cassel, Mark Brown, broonie, robh+dt, alsa-devel,
	devicetree, bgoswami, lgirdwood, linux-arm-msm, tiwai,
	linux-arm-kernel, niklas.cassel, linux-kernel, alsa-devel

The patch

   ASoC: q6afe: dt-bindings: add compatible string to dais

has been applied to the asoc tree at

   https://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 e43792c6e5027ad3f0280f5a2e6952b0d436b19b Mon Sep 17 00:00:00 2001
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date: Tue, 26 Jun 2018 10:20:07 +0100
Subject: [PATCH] ASoC: q6afe: dt-bindings: add compatible string to dais

Add compatible string to dais so that it can support DT based module
autoloading.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Niklas Cassel <niklas.cassel@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 Documentation/devicetree/bindings/sound/qcom,q6afe.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
index bdbf87df8c0b..a8179409c194 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
+++ b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
@@ -17,6 +17,11 @@ used by all apr services. Must contain the following properties.
 subnode of "dais" representing board specific dai setup.
 "dais" node should have following properties followed by dai children.
 
+- compatible:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "qcom,q6afe-dais"
+
 - #sound-dai-cells
 	Usage: required
 	Value type: <u32>
@@ -100,6 +105,7 @@ q6afe@4 {
 	reg = <APR_SVC_AFE>;
 
 	dais {
+		compatible = "qcom,q6afe-dais";
 		#sound-dai-cells = <1>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-- 
2.17.1


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

end of thread, other threads:[~2018-06-26 15:12 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-26  9:20 [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Srinivas Kandagatla
2018-06-26  9:20 ` [PATCH v2 01/12] ASoC: q6adm: dt-bindings: add compatible string to routing Srinivas Kandagatla
2018-06-26  9:20 ` [PATCH v2 02/12] ASoC: q6asm: dt-bindings: add compatible string to dais Srinivas Kandagatla
2018-06-26  9:20 ` [PATCH v2 03/12] ASoC: q6afe: " Srinivas Kandagatla
2018-06-26  9:28   ` Niklas Cassel
2018-06-26 15:11   ` Applied "ASoC: q6afe: dt-bindings: add compatible string to dais" to the asoc tree Mark Brown
2018-06-26  9:20 ` [PATCH v2 04/12] ASoC: qdsp6: q6adm: use of_platform_populate/depopulate() Srinivas Kandagatla
2018-06-26  9:30   ` Niklas Cassel
2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()" to the asoc tree Mark Brown
2018-06-26  9:20 ` [PATCH v2 05/12] ASoC: qdsp6: q6asm: use of_platform_populate/depopulate() Srinivas Kandagatla
2018-06-26  9:32   ` Niklas Cassel
2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()" to the asoc tree Mark Brown
2018-06-26  9:20 ` [PATCH v2 06/12] ASoC: qdsp6: q6afe: use of_platform_populate/depopulate() Srinivas Kandagatla
2018-06-26  9:20 ` [PATCH v2 07/12] ASoC: qdsp6: q6afe-dai: support dt based module loading Srinivas Kandagatla
2018-06-26  9:35   ` Niklas Cassel
2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6afe-dai: support dt based module loading" to the asoc tree Mark Brown
2018-06-26  9:20 ` [PATCH v2 08/12] ASoC: qdsp6: q6asm-dai: support dt based module loading Srinivas Kandagatla
2018-06-26  9:35   ` Niklas Cassel
2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6asm-dai: support dt based module loading" to the asoc tree Mark Brown
2018-06-26  9:20 ` [PATCH v2 09/12] ASoC: qdsp6: q6routing: support dt based module loading Srinivas Kandagatla
2018-06-26  9:35   ` Niklas Cassel
2018-06-26 15:11   ` Applied "ASoC: qdsp6: q6routing: support dt based module loading" to the asoc tree Mark Brown
2018-06-26  9:20 ` [PATCH v2 10/12] ASoC: qcom: apq8096: remove redundant owner assignment Srinivas Kandagatla
2018-06-26  9:20 ` [PATCH v2 11/12] ASoC: qdsp6: q6routing: add proper error check Srinivas Kandagatla
2018-06-26  9:36   ` Niklas Cassel
2018-06-26  9:20 ` [PATCH v2 12/12] ASoC: qdsp6: q6asm: remove unused struct q6asm member Srinivas Kandagatla
2018-06-26  9:36   ` Niklas Cassel
2018-06-26 15:10   ` Applied "ASoC: qdsp6: q6asm: remove unused struct q6asm member" to the asoc tree Mark Brown
2018-06-26  9:43 ` [PATCH v2 00/12] ASoC: qdsp6: Fix dt based module loading and minor fixes Niklas Cassel
2018-06-26  9:45   ` Srinivas Kandagatla

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