]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
ASoC: qcom: sc7180: Register shutdown handler for lpass platform
authorV Sujith Kumar Reddy <vsujithk@codeaurora.org>
Fri, 13 Nov 2020 18:38:22 +0000 (00:08 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 16 Nov 2020 20:06:56 +0000 (20:06 +0000)
Register shutdown handler to stop sc7180 lpass platform driver
and to disable audio clocks.

Signed-off-by: V Sujith Kumar Reddy <vsujithk@codeaurora.org>
Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
Link: https://lore.kernel.org/r/1605292702-25046-1-git-send-email-srivasam@codeaurora.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/lpass-cpu.c
sound/soc/qcom/lpass-sc7180.c
sound/soc/qcom/lpass.h

index 0c64deaf937495fc3c3890d20dadf7d0a38ea192..0d9ff23d7463ab09301379442822ca4b68f1427b 100644 (file)
@@ -908,5 +908,15 @@ int asoc_qcom_lpass_cpu_platform_remove(struct platform_device *pdev)
 }
 EXPORT_SYMBOL_GPL(asoc_qcom_lpass_cpu_platform_remove);
 
+void asoc_qcom_lpass_cpu_platform_shutdown(struct platform_device *pdev)
+{
+       struct lpass_data *drvdata = platform_get_drvdata(pdev);
+
+       if (drvdata->variant->exit)
+               drvdata->variant->exit(pdev);
+
+}
+EXPORT_SYMBOL_GPL(asoc_qcom_lpass_cpu_platform_shutdown);
+
 MODULE_DESCRIPTION("QTi LPASS CPU Driver");
 MODULE_LICENSE("GPL v2");
index da1d051622fbe7acb386b648136443725ca7eeae..238069e293bf0c3f4d4a613d45dc4d3a5e209ee6 100644 (file)
@@ -298,6 +298,7 @@ static struct platform_driver sc7180_lpass_cpu_platform_driver = {
        },
        .probe = asoc_qcom_lpass_cpu_platform_probe,
        .remove = asoc_qcom_lpass_cpu_platform_remove,
+       .shutdown = asoc_qcom_lpass_cpu_platform_shutdown,
 };
 
 module_platform_driver(sc7180_lpass_cpu_platform_driver);
index b4830f3537968592468a06767fd52597e7b4bd38..32a68c4fc238f5cfe2c620c4e56aa1239eccf1e5 100644 (file)
@@ -255,6 +255,7 @@ struct lpass_variant {
 /* register the platform driver from the CPU DAI driver */
 int asoc_qcom_lpass_platform_register(struct platform_device *);
 int asoc_qcom_lpass_cpu_platform_remove(struct platform_device *pdev);
+void asoc_qcom_lpass_cpu_platform_shutdown(struct platform_device *pdev);
 int asoc_qcom_lpass_cpu_platform_probe(struct platform_device *pdev);
 int asoc_qcom_lpass_cpu_dai_probe(struct snd_soc_dai *dai);
 extern const struct snd_soc_dai_ops asoc_qcom_lpass_cpu_dai_ops;