alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Ola LILJA2 <ola.o.lilja@stericsson.com>
Cc: alsa-devel@alsa-project.org, linus.walleij@stericsson.com,
	arnd@arndb.de, linus.walleij@linaro.org,
	broonie@opensource.wolfsonmicro.com,
	linux-kernel@vger.kernel.org,
	STEricsson_nomadik_linux@list.st.com,
	linux-arm-kernel@lists.infradead.org
Subject: [RESENDING] [PATCH 07/22] ASoC: Ux500: Initialise PCM from MSP probe rather than as a device
Date: Wed, 19 Sep 2012 15:33:45 +0200	[thread overview]
Message-ID: <20120919133343.GH25694@gmail.com> (raw)
In-Reply-To: <CACRpkdbc6bGC4Yp7Bcdfev=Uc=1h4L1v+Lj9RbmJV3F+knQOZQ@mail.gmail.com>

Hi Ola,

As requested:

Author: Lee Jones <lee.jones@linaro.org>
Date:   Tue Jul 31 14:06:19 2012 +0100

    ASoC: Ux500: Initialise PCM from MSP probe rather than as a device
    
    The PCM is a pseudo-device. It doesn't have any of it's own registers
    or hardware. It rather acts as a layer of abstraction for DMA
    transfers. Hence, instead of classifying it as a device in its own
    right, we call the initialisation from the MSP driver.
    
    Signed-off-by: Lee Jones <lee.jones@linaro.org>

diff --git a/sound/soc/ux500/mop500.c b/sound/soc/ux500/mop500.c
index 31c4d26..9707f4a 100644
--- a/sound/soc/ux500/mop500.c
+++ b/sound/soc/ux500/mop500.c
@@ -32,7 +32,7 @@ struct snd_soc_dai_link mop500_dai_links[] = {
 		.stream_name = "ab8500_0",
 		.cpu_dai_name = "ux500-msp-i2s.1",
 		.codec_dai_name = "ab8500-codec-dai.0",
-		.platform_name = "ux500-pcm.0",
+		.platform_name = "ux500-msp-i2s.1",
 		.codec_name = "ab8500-codec.0",
 		.init = mop500_ab8500_machine_init,
 		.ops = mop500_ab8500_ops,
@@ -42,7 +42,7 @@ struct snd_soc_dai_link mop500_dai_links[] = {
 		.stream_name = "ab8500_1",
 		.cpu_dai_name = "ux500-msp-i2s.3",
 		.codec_dai_name = "ab8500-codec-dai.1",
-		.platform_name = "ux500-pcm.0",
+		.platform_name = "ux500-msp-i2s.3",
 		.codec_name = "ab8500-codec.0",
 		.init = NULL,
 		.ops = mop500_ab8500_ops,
diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c
index 772cb19..6afab6c 100644
--- a/sound/soc/ux500/ux500_msp_dai.c
+++ b/sound/soc/ux500/ux500_msp_dai.c
@@ -28,6 +28,7 @@
 
 #include "ux500_msp_i2s.h"
 #include "ux500_msp_dai.h"
+#include "ux500_pcm.h"
 
 static int setup_pcm_multichan(struct snd_soc_dai *dai,
 			struct ux500_msp_config *msp_config)
@@ -806,11 +807,20 @@ static int __devinit ux500_msp_drv_probe(struct platform_device *pdev)
 		goto err_init_msp;
 	}
 
+	ret = ux500_pcm_register_platform(pdev);
+	if (ret < 0) {
+		dev_err(&pdev->dev,
+			"Error: %s: Failed to register PCM platform device!\n",
+			__func__);
+		goto err_reg_plat;
+	}
+
 	return 0;
 
+err_reg_plat:
+	snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(ux500_msp_dai_drv));
 err_init_msp:
 	clk_put(drvdata->clk);
-
 err_clk:
 	devm_regulator_put(drvdata->reg_vape);
 
@@ -821,6 +831,8 @@ static int __devexit ux500_msp_drv_remove(struct platform_device *pdev)
 {
 	struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
 
+	ux500_pcm_unregister_platform(pdev);
+
 	snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(ux500_msp_dai_drv));
 
 	devm_regulator_put(drvdata->reg_vape);
diff --git a/sound/soc/ux500/ux500_pcm.c b/sound/soc/ux500/ux500_pcm.c
index 1a04e24..894c9f4 100644
--- a/sound/soc/ux500/ux500_pcm.c
+++ b/sound/soc/ux500/ux500_pcm.c
@@ -282,7 +282,7 @@ static struct snd_soc_platform_driver ux500_pcm_soc_drv = {
 	.pcm_new        = ux500_pcm_new,
 };
 
-static int __devexit ux500_pcm_drv_probe(struct platform_device *pdev)
+int __devinit ux500_pcm_register_platform(struct platform_device *pdev)
 {
 	int ret;
 
@@ -296,23 +296,12 @@ static int __devexit ux500_pcm_drv_probe(struct platform_device *pdev)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(ux500_pcm_register_platform);
 
-static int __devinit ux500_pcm_drv_remove(struct platform_device *pdev)
+int __devexit ux500_pcm_unregister_platform(struct platform_device *pdev)
 {
 	snd_soc_unregister_platform(&pdev->dev);
 
 	return 0;
 }
-
-static struct platform_driver ux500_pcm_driver = {
-	.driver = {
-		.name = "ux500-pcm",
-		.owner = THIS_MODULE,
-	},
-
-	.probe = ux500_pcm_drv_probe,
-	.remove = __devexit_p(ux500_pcm_drv_remove),
-};
-module_platform_driver(ux500_pcm_driver);
-
-MODULE_LICENSE("GPL v2");
+EXPORT_SYMBOL_GPL(ux500_pcm_unregister_platform);
diff --git a/sound/soc/ux500/ux500_pcm.h b/sound/soc/ux500/ux500_pcm.h
index 77ed44d..76d3444 100644
--- a/sound/soc/ux500/ux500_pcm.h
+++ b/sound/soc/ux500/ux500_pcm.h
@@ -32,4 +32,7 @@
 #define UX500_PLATFORM_PERIODS_MAX		48
 #define UX500_PLATFORM_BUFFER_BYTES_MAX		(2048 * PAGE_SIZE)
 
+int ux500_pcm_register_platform(struct platform_device *pdev);
+int ux500_pcm_unregister_platform(struct platform_device *pdev);
+
 #endif

  parent reply	other threads:[~2012-09-19 13:33 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1344527268-5964-1-git-send-email-lee.jones@linaro.org>
2012-08-09 15:47 ` [PATCH 03/22] ASoC: ab8500: Inform SoC Core that we have our own I/O arrangements Lee Jones
2012-08-14  8:40   ` Linus Walleij
2012-08-14 12:17   ` Takashi Iwai
2012-08-15 14:01   ` Mark Brown
2012-08-09 15:47 ` [PATCH 04/22] ASoC: Ux500: Move MSP pinctrl setup into the MSP driver Lee Jones
2012-08-14  8:51   ` Linus Walleij
2012-08-20  8:09     ` Lee Jones
2012-08-20 11:59     ` Lee Jones
2012-08-27 23:09       ` Linus Walleij
2012-08-30 13:18         ` Lee Jones
2012-08-09 15:47 ` [PATCH 05/22] ASoC: Ux500: Enable MOP500 driver for Device Tree Lee Jones
2012-08-14  8:52   ` Linus Walleij
2012-09-10 16:45     ` Lee Jones
2012-08-09 15:47 ` [PATCH 06/22] ASoC: Ux500: Enable ux500 MSP " Lee Jones
2012-08-14  8:55   ` Linus Walleij
2012-09-10 16:45     ` Lee Jones
2012-08-09 15:47 ` [PATCH 07/22] ASoC: Ux500: Initialise PCM from MSP probe rather than as a device Lee Jones
2012-08-14 11:08   ` Linus Walleij
     [not found]     ` <002801cd7c31$14d3d0c0$3e7b7240$@se>
     [not found]       ` <20120820085111.GJ8450@gmail.com>
     [not found]         ` <006d01cd7f5a$65937840$30ba68c0$@se>
2012-08-23  9:22           ` Lee Jones
2012-08-23 11:39             ` Mark Brown
2012-08-23 12:20               ` Lee Jones
2012-08-23 12:59                 ` Mark Brown
2012-08-23 13:26                   ` Lee Jones
2012-08-23 14:37                     ` Mark Brown
2012-08-23 14:59                       ` Lee Jones
2012-08-23 15:00                         ` Mark Brown
2012-09-19 12:29                   ` Lee Jones
2012-09-19 13:33     ` Lee Jones [this message]
2012-09-20  9:03       ` [RESENDING] " Ola Lilja
2012-09-20 12:49         ` Mark Brown
2012-09-20 12:52         ` Lee Jones
2012-11-22 14:05           ` Lee Jones
2012-11-23  1:58             ` Mark Brown
2012-11-23  9:12               ` Lee Jones
2012-11-23 10:09                 ` Mark Brown
2012-08-09 15:47 ` [PATCH 08/22] ASoC: codecs: Enable AB8500 CODEC for Device Tree Lee Jones
2012-08-14 11:09   ` Linus Walleij
2012-08-14 12:17   ` Takashi Iwai
2012-08-20 11:34     ` [PATCH 1/1] " Lee Jones
2012-08-20 14:36       ` Mark Brown
2012-08-21 11:51         ` Lee Jones
2012-08-21 12:39           ` Mark Brown
2012-08-21 12:58             ` Lee Jones
2012-08-21 13:40               ` Mark Brown
2012-08-09 15:47 ` [PATCH 09/22] Documentation: Define the MOP500 Audio Machine Driver Device Tree bindings Lee Jones
2012-08-09 15:47 ` [PATCH 10/22] Documentation: Define the MSP " Lee Jones
2012-08-09 15:47 ` [PATCH 22/22] Documentation: Add the AB8500 CODEC device to the MFD AB8500 doc Lee Jones
2012-08-14 11:24   ` Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120919133343.GH25694@gmail.com \
    --to=lee.jones@linaro.org \
    --cc=STEricsson_nomadik_linux@list.st.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=linus.walleij@linaro.org \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ola.o.lilja@stericsson.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).