diff options
Diffstat (limited to 'sound/soc/sof/sof-of-dev.c')
| -rw-r--r-- | sound/soc/sof/sof-of-dev.c | 68 | 
1 files changed, 8 insertions, 60 deletions
| diff --git a/sound/soc/sof/sof-of-dev.c b/sound/soc/sof/sof-of-dev.c index 885430a42226..e3718638f9ce 100644 --- a/sound/soc/sof/sof-of-dev.c +++ b/sound/soc/sof/sof-of-dev.c @@ -11,8 +11,8 @@  #include <linux/pm_runtime.h>  #include <sound/sof.h> +#include "sof-of-dev.h"  #include "ops.h" -#include "imx/imx-ops.h"  static char *fw_path;  module_param(fw_path, charp, 0444); @@ -22,56 +22,26 @@ static char *tplg_path;  module_param(tplg_path, charp, 0444);  MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology."); -/* platform specific devices */ -#if IS_ENABLED(CONFIG_SND_SOC_SOF_IMX8) -static struct sof_dev_desc sof_of_imx8qxp_desc = { -	.default_fw_path = "imx/sof", -	.default_tplg_path = "imx/sof-tplg", -	.default_fw_filename = "sof-imx8x.ri", -	.nocodec_tplg_filename = "sof-imx8-nocodec.tplg", -	.ops = &sof_imx8x_ops, -}; - -static struct sof_dev_desc sof_of_imx8qm_desc = { -	.default_fw_path = "imx/sof", -	.default_tplg_path = "imx/sof-tplg", -	.default_fw_filename = "sof-imx8.ri", -	.nocodec_tplg_filename = "sof-imx8-nocodec.tplg", -	.ops = &sof_imx8_ops, -}; -#endif - -#if IS_ENABLED(CONFIG_SND_SOC_SOF_IMX8M) -static struct sof_dev_desc sof_of_imx8mp_desc = { -	.default_fw_path = "imx/sof", -	.default_tplg_path = "imx/sof-tplg", -	.default_fw_filename = "sof-imx8m.ri", -	.nocodec_tplg_filename = "sof-imx8-nocodec.tplg", -	.ops = &sof_imx8m_ops, -}; -#endif - -static const struct dev_pm_ops sof_of_pm = { +const struct dev_pm_ops sof_of_pm = {  	.prepare = snd_sof_prepare,  	.complete = snd_sof_complete,  	SET_SYSTEM_SLEEP_PM_OPS(snd_sof_suspend, snd_sof_resume)  	SET_RUNTIME_PM_OPS(snd_sof_runtime_suspend, snd_sof_runtime_resume,  			   NULL)  }; +EXPORT_SYMBOL(sof_of_pm);  static void sof_of_probe_complete(struct device *dev)  {  	/* allow runtime_pm */  	pm_runtime_set_autosuspend_delay(dev, SND_SOF_SUSPEND_DELAY_MS);  	pm_runtime_use_autosuspend(dev); +	pm_runtime_mark_last_busy(dev);  	pm_runtime_set_active(dev);  	pm_runtime_enable(dev); - -	pm_runtime_mark_last_busy(dev); -	pm_runtime_put_autosuspend(dev);  } -static int sof_of_probe(struct platform_device *pdev) +int sof_of_probe(struct platform_device *pdev)  {  	struct device *dev = &pdev->dev;  	const struct sof_dev_desc *desc; @@ -112,8 +82,9 @@ static int sof_of_probe(struct platform_device *pdev)  	/* call sof helper for DSP hardware probe */  	return snd_sof_device_probe(dev, sof_pdata);  } +EXPORT_SYMBOL(sof_of_probe); -static int sof_of_remove(struct platform_device *pdev) +int sof_of_remove(struct platform_device *pdev)  {  	pm_runtime_disable(&pdev->dev); @@ -122,29 +93,6 @@ static int sof_of_remove(struct platform_device *pdev)  	return 0;  } - -static const struct of_device_id sof_of_ids[] = { -#if IS_ENABLED(CONFIG_SND_SOC_SOF_IMX8) -	{ .compatible = "fsl,imx8qxp-dsp", .data = &sof_of_imx8qxp_desc}, -	{ .compatible = "fsl,imx8qm-dsp", .data = &sof_of_imx8qm_desc}, -#endif -#if IS_ENABLED(CONFIG_SND_SOC_SOF_IMX8M) -	{ .compatible = "fsl,imx8mp-dsp", .data = &sof_of_imx8mp_desc}, -#endif -	{ } -}; -MODULE_DEVICE_TABLE(of, sof_of_ids); - -/* DT driver definition */ -static struct platform_driver snd_sof_of_driver = { -	.probe = sof_of_probe, -	.remove = sof_of_remove, -	.driver = { -		.name = "sof-audio-of", -		.pm = &sof_of_pm, -		.of_match_table = sof_of_ids, -	}, -}; -module_platform_driver(snd_sof_of_driver); +EXPORT_SYMBOL(sof_of_remove);  MODULE_LICENSE("Dual BSD/GPL"); |