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
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 <[email protected]>
---
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
q6adm_open can return error pointer or a null in error cases.
Fix the return handling.
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
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
This patch uses new compatible string to make DT based module loading work.
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
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
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
---
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
pcmdev in struct q6asm seems be left over and unused, so just remove it.
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
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
module owner is already set in platform_driver_register(), so remove this
redundant assignment.
Signed-off-by: Srinivas Kandagatla <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
---
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
This patch uses new compatible string to make DT based module loading work.
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
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
This patch uses new compatible string to make DT based module loading work.
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
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
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 <[email protected]>
---
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
Add compatible string to dais so that it can support DT based module
autoloading.
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
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
Add compatible string to routing so that it can support DT based module
autoloading.
Signed-off-by: Srinivas Kandagatla <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
---
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
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
Add compatible string to dais so that it can support DT based module
autoloading.
Signed-off-by: Srinivas Kandagatla <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
---
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
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
Acked-by: Niklas Cassel <[email protected]>
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 <[email protected]>
> ---
> 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
>
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
>
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
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 <[email protected]>
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
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
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 <[email protected]>
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
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
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 <[email protected]>
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
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
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 <[email protected]>
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
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
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 <[email protected]>
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
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
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 <[email protected]>
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
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
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 <[email protected]>
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 <[email protected]>
Acked-by: Niklas Cassel <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
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