[01/18] ASoC: omap-pcm: Support for binding the platform driver to dai devices
diff mbox

Message ID 1397640211-15447-2-git-send-email-peter.ujfalusi@ti.com
State New, archived
Headers show

Commit Message

Peter Ujfalusi April 16, 2014, 9:23 a.m. UTC
With the new calls it is going to be possible to bind the platform driver
to a dai device which makes it easier for us in a long run to handle DT
boots, and opens the possibility to move machine driver to generic simple
card.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 sound/soc/omap/omap-pcm.c | 12 ++++++++++++
 sound/soc/omap/omap-pcm.h | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)
 create mode 100644 sound/soc/omap/omap-pcm.h

Comments

Peter Ujfalusi April 16, 2014, 9:30 a.m. UTC | #1
On 04/16/2014 12:23 PM, Peter Ujfalusi wrote:
> With the new calls it is going to be possible to bind the platform driver
> to a dai device which makes it easier for us in a long run to handle DT
> boots, and opens the possibility to move machine driver to generic simple
> card.
> 
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> ---
>  sound/soc/omap/omap-pcm.c | 12 ++++++++++++
>  sound/soc/omap/omap-pcm.h | 35 +++++++++++++++++++++++++++++++++++
>  2 files changed, 47 insertions(+)
>  create mode 100644 sound/soc/omap/omap-pcm.h
> 
> diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
> index 07b8b7bc9d20..5c4bc9ae974b 100644
> --- a/sound/soc/omap/omap-pcm.c
> +++ b/sound/soc/omap/omap-pcm.c
> @@ -232,6 +232,18 @@ static struct snd_soc_platform_driver omap_soc_platform = {
>  	.pcm_free	= omap_pcm_free_dma_buffers,
>  };
>  
> +int omap_pcm_platform_register(struct device *dev)
> +{
> +	return snd_soc_register_platform(dev, &omap_soc_platform);

Aargh, I meant to use the devm_snd_soc_register_platform() so the unregister
is not going to be needed and the subsequent patches are expecting that this
is devm_*
Will resend soon.

> +}
> +EXPORT_SYMBOL_GPL(omap_pcm_platform_register);
> +
> +void omap_pcm_platform_unregister(struct device *dev)
> +{
> +	snd_soc_unregister_platform(dev);
> +}
> +EXPORT_SYMBOL_GPL(omap_pcm_platform_unregister);
> +
>  static int omap_pcm_probe(struct platform_device *pdev)
>  {
>  	return snd_soc_register_platform(&pdev->dev,
> diff --git a/sound/soc/omap/omap-pcm.h b/sound/soc/omap/omap-pcm.h
> new file mode 100644
> index 000000000000..148509eb4b63
> --- /dev/null
> +++ b/sound/soc/omap/omap-pcm.h
> @@ -0,0 +1,35 @@
> +/*
> + * omap-pcm.h - OMAP PCM driver
> + *
> + * Copyright (C) 2014 Texas Instruments, Inc.
> + *
> + * Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * version 2 as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful, but
> + * WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * General Public License for more details.
> + */
> +
> +#ifndef __OMAP_PCM_H__
> +#define __OMAP_PCM_H__
> +
> +#if IS_ENABLED(CONFIG_SND_OMAP_SOC)
> +int omap_pcm_platform_register(struct device *dev);
> +void omap_pcm_platform_unregister(struct device *dev);
> +#else
> +static inline int omap_pcm_platform_register(struct device *dev)
> +{
> +	return 0;
> +}
> +
> +static inline void omap_pcm_platform_unregister(struct device *dev)
> +{
> +}
> +#endif /* CONFIG_SND_OMAP_SOC */
> +
> +#endif /* __OMAP_PCM_H__ */
>
Peter Ujfalusi April 16, 2014, 11:01 a.m. UTC | #2
On 04/16/2014 12:30 PM, Peter Ujfalusi wrote:
>> +int omap_pcm_platform_register(struct device *dev)
>> +{
>> +	return snd_soc_register_platform(dev, &omap_soc_platform);
> 
> Aargh, I meant to use the devm_snd_soc_register_platform() so the unregister
> is not going to be needed and the subsequent patches are expecting that this
> is devm_*
> Will resend soon.

There's no devm variant for snd_soc_register_platform()
Mark: would it make sens to add it? I can add a patch to v2 of this series for it.

Patch
diff mbox

diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
index 07b8b7bc9d20..5c4bc9ae974b 100644
--- a/sound/soc/omap/omap-pcm.c
+++ b/sound/soc/omap/omap-pcm.c
@@ -232,6 +232,18 @@  static struct snd_soc_platform_driver omap_soc_platform = {
 	.pcm_free	= omap_pcm_free_dma_buffers,
 };
 
+int omap_pcm_platform_register(struct device *dev)
+{
+	return snd_soc_register_platform(dev, &omap_soc_platform);
+}
+EXPORT_SYMBOL_GPL(omap_pcm_platform_register);
+
+void omap_pcm_platform_unregister(struct device *dev)
+{
+	snd_soc_unregister_platform(dev);
+}
+EXPORT_SYMBOL_GPL(omap_pcm_platform_unregister);
+
 static int omap_pcm_probe(struct platform_device *pdev)
 {
 	return snd_soc_register_platform(&pdev->dev,
diff --git a/sound/soc/omap/omap-pcm.h b/sound/soc/omap/omap-pcm.h
new file mode 100644
index 000000000000..148509eb4b63
--- /dev/null
+++ b/sound/soc/omap/omap-pcm.h
@@ -0,0 +1,35 @@ 
+/*
+ * omap-pcm.h - OMAP PCM driver
+ *
+ * Copyright (C) 2014 Texas Instruments, Inc.
+ *
+ * Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ */
+
+#ifndef __OMAP_PCM_H__
+#define __OMAP_PCM_H__
+
+#if IS_ENABLED(CONFIG_SND_OMAP_SOC)
+int omap_pcm_platform_register(struct device *dev);
+void omap_pcm_platform_unregister(struct device *dev);
+#else
+static inline int omap_pcm_platform_register(struct device *dev)
+{
+	return 0;
+}
+
+static inline void omap_pcm_platform_unregister(struct device *dev)
+{
+}
+#endif /* CONFIG_SND_OMAP_SOC */
+
+#endif /* __OMAP_PCM_H__ */