diff mbox

[v2] ASoC: dfbmcs320: make the driver common for other BT modules

Message ID 1368757177-15372-1-git-send-email-Baohua.Song@csr.com (mailing list archive)
State New, archived
Headers show

Commit Message

Barry Song May 17, 2013, 2:19 a.m. UTC
DFBM-CS320 is only one of bluetooth modules using CSR bluetooth chips,
we don't want everyone to have a seperate codec driver. anyway, the
feature of Bluetooth handsfree is same on all platforms, so this patch
makes the DFBM-CS320 driver become a common BT handsfree driver.

Cc: Graeme Gregory <graeme@openmoko.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
---
 -v2: keep the device id list

 sound/soc/codecs/Kconfig                         |  4 +--
 sound/soc/codecs/Makefile                        |  4 +--
 sound/soc/codecs/{dfbmcs320.c => bt-handsfree.c} | 37 +++++++++++++++---------
 sound/soc/samsung/neo1973_wm8753.c               |  2 +-
 4 files changed, 28 insertions(+), 19 deletions(-)
 rename sound/soc/codecs/{dfbmcs320.c => bt-handsfree.c} (51%)

Comments

Mark Brown May 17, 2013, 11:15 a.m. UTC | #1
On Fri, May 17, 2013 at 10:19:37AM +0800, Barry Song wrote:
> DFBM-CS320 is only one of bluetooth modules using CSR bluetooth chips,
> we don't want everyone to have a seperate codec driver. anyway, the
> feature of Bluetooth handsfree is same on all platforms, so this patch
> makes the DFBM-CS320 driver become a common BT handsfree driver.

Sorry, should have thought of this before but why are we calling this
"handsfree"?  It's just a generic bluetooth link as far as the host
system is concerned, "bt-sco" might be more appropriate?

Otherwise this looks OK for ASoC though I'd expect to see a change to
registration of the OpenMoko BT device (perhaps I missed it though).
Barry Song May 18, 2013, 11:03 a.m. UTC | #2
2013/5/17 Mark Brown <broonie@kernel.org>:
> On Fri, May 17, 2013 at 10:19:37AM +0800, Barry Song wrote:
>> DFBM-CS320 is only one of bluetooth modules using CSR bluetooth chips,
>> we don't want everyone to have a seperate codec driver. anyway, the
>> feature of Bluetooth handsfree is same on all platforms, so this patch
>> makes the DFBM-CS320 driver become a common BT handsfree driver.
>
> Sorry, should have thought of this before but why are we calling this
> "handsfree"?  It's just a generic bluetooth link as far as the host
> system is concerned, "bt-sco" might be more appropriate?

agree. BT SCO should be more suitable.

>
> Otherwise this looks OK for ASoC though I'd expect to see a change to
> registration of the OpenMoko BT device (perhaps I missed it though).

sorry. i don't understand. i would think OpenMOKO can also use this driver?

-barry
Mark Brown May 18, 2013, 11:25 a.m. UTC | #3
On Sat, May 18, 2013 at 07:03:24PM +0800, Barry Song wrote:
> 2013/5/17 Mark Brown <broonie@kernel.org>:

> > Otherwise this looks OK for ASoC though I'd expect to see a change to
> > registration of the OpenMoko BT device (perhaps I missed it though).

> sorry. i don't understand. i would think OpenMOKO can also use this driver?

If you change the names the driver uses to bind you need to also update
the users so that they use the new name.
Lars-Peter Clausen May 18, 2013, 11:32 a.m. UTC | #4
On 05/18/2013 01:25 PM, Mark Brown wrote:
> On Sat, May 18, 2013 at 07:03:24PM +0800, Barry Song wrote:
>> 2013/5/17 Mark Brown <broonie@kernel.org>:
> 
>>> Otherwise this looks OK for ASoC though I'd expect to see a change to
>>> registration of the OpenMoko BT device (perhaps I missed it though).
> 
>> sorry. i don't understand. i would think OpenMOKO can also use this driver?
> 
> If you change the names the driver uses to bind you need to also update
> the users so that they use the new name.
> 

Since there's the platform_device_id table now this should not be necessary.
Barry Song May 18, 2013, 11:34 a.m. UTC | #5
2013/5/18 Lars-Peter Clausen <lars@metafoo.de>:
> On 05/18/2013 01:25 PM, Mark Brown wrote:
>> On Sat, May 18, 2013 at 07:03:24PM +0800, Barry Song wrote:
>>> 2013/5/17 Mark Brown <broonie@kernel.org>:
>>
>>>> Otherwise this looks OK for ASoC though I'd expect to see a change to
>>>> registration of the OpenMoko BT device (perhaps I missed it though).
>>
>>> sorry. i don't understand. i would think OpenMOKO can also use this driver?
>>
>> If you change the names the driver uses to bind you need to also update
>> the users so that they use the new name.
>>
>
> Since there's the platform_device_id table now this should not be necessary.

i guess Mark meaned i missed to change "select SND_SOC_DFBMCS320"?

config SND_SOC_SAMSUNG_NEO1973_WM8753
        tristate "Audio support for Openmoko Neo1973 Smartphones (GTA02)"
        depends on SND_SOC_SAMSUNG && MACH_NEO1973_GTA02
        select SND_S3C24XX_I2S
        select SND_SOC_WM8753
        select SND_SOC_DFBMCS320
        help
          Say Y here to enable audio support for the Openmoko Neo1973
          Smartphones.

-barry
diff mbox

Patch

diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index d8c4f3d..618928a 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -40,7 +40,7 @@  config SND_SOC_ALL_CODECS
 	select SND_SOC_DA7213 if I2C
 	select SND_SOC_DA732X if I2C
 	select SND_SOC_DA9055 if I2C
-	select SND_SOC_DFBMCS320
+	select SND_SOC_BT_HANDSFREE
 	select SND_SOC_ISABELLE if I2C
 	select SND_SOC_JZ4740_CODEC
 	select SND_SOC_LM4857 if I2C
@@ -263,7 +263,7 @@  config SND_SOC_DA732X
 config SND_SOC_DA9055
 	tristate
 
-config SND_SOC_DFBMCS320
+config SND_SOC_BT_HANDSFREE
 	tristate
 
 config SND_SOC_DMIC
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 49ff127..23a8c06 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -27,7 +27,7 @@  snd-soc-da7210-objs := da7210.o
 snd-soc-da7213-objs := da7213.o
 snd-soc-da732x-objs := da732x.o
 snd-soc-da9055-objs := da9055.o
-snd-soc-dfbmcs320-objs := dfbmcs320.o
+snd-soc-bt-handsfree-objs := bt-handsfree.o
 snd-soc-dmic-objs := dmic.o
 snd-soc-isabelle-objs := isabelle.o
 snd-soc-jz4740-codec-objs := jz4740.o
@@ -154,7 +154,7 @@  obj-$(CONFIG_SND_SOC_DA7210)	+= snd-soc-da7210.o
 obj-$(CONFIG_SND_SOC_DA7213)	+= snd-soc-da7213.o
 obj-$(CONFIG_SND_SOC_DA732X)	+= snd-soc-da732x.o
 obj-$(CONFIG_SND_SOC_DA9055)	+= snd-soc-da9055.o
-obj-$(CONFIG_SND_SOC_DFBMCS320)	+= snd-soc-dfbmcs320.o
+obj-$(CONFIG_SND_SOC_BT_HANDSFREE)	+= snd-soc-bt-handsfree.o
 obj-$(CONFIG_SND_SOC_DMIC)	+= snd-soc-dmic.o
 obj-$(CONFIG_SND_SOC_ISABELLE)	+= snd-soc-isabelle.o
 obj-$(CONFIG_SND_SOC_JZ4740_CODEC)	+= snd-soc-jz4740-codec.o
diff --git a/sound/soc/codecs/dfbmcs320.c b/sound/soc/codecs/bt-handsfree.c
similarity index 51%
rename from sound/soc/codecs/dfbmcs320.c
rename to sound/soc/codecs/bt-handsfree.c
index 4f4f7f4..7ec784a 100644
--- a/sound/soc/codecs/dfbmcs320.c
+++ b/sound/soc/codecs/bt-handsfree.c
@@ -1,5 +1,5 @@ 
 /*
- * Driver for the DFBM-CS320 bluetooth module
+ * Driver for generic Bluetooth Handsfree
  * Copyright 2011 Lars-Peter Clausen <lars@metafoo.de>
  *
  *  This program is free software; you can redistribute  it and/or modify it
@@ -15,8 +15,8 @@ 
 
 #include <sound/soc.h>
 
-static struct snd_soc_dai_driver dfbmcs320_dai = {
-	.name = "dfbmcs320-pcm",
+static struct snd_soc_dai_driver bt_handsfree_dai = {
+	.name = "bt-handsfree-pcm",
 	.playback = {
 		.channels_min = 1,
 		.channels_max = 1,
@@ -31,32 +31,41 @@  static struct snd_soc_dai_driver dfbmcs320_dai = {
 	},
 };
 
-static struct snd_soc_codec_driver soc_codec_dev_dfbmcs320;
+static struct snd_soc_codec_driver soc_codec_dev_bt_handsfree;
 
-static int dfbmcs320_probe(struct platform_device *pdev)
+static int bt_handsfree_probe(struct platform_device *pdev)
 {
-	return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_dfbmcs320,
-			&dfbmcs320_dai, 1);
+	return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_bt_handsfree,
+			&bt_handsfree_dai, 1);
 }
 
-static int dfbmcs320_remove(struct platform_device *pdev)
+static int bt_handsfree_remove(struct platform_device *pdev)
 {
 	snd_soc_unregister_codec(&pdev->dev);
 
 	return 0;
 }
 
-static struct platform_driver dfmcs320_driver = {
+static struct platform_device_id bt_handsfree_driver_ids[] = {
+	{
+		.name		= "dfbmcs320",
+	},
+	{},
+};
+MODULE_DEVICE_TABLE(platform, bt_handsfree_driver_ids);
+
+static struct platform_driver bt_handsfree_driver = {
 	.driver = {
-		.name = "dfbmcs320",
+		.name = "bt-handsfree",
 		.owner = THIS_MODULE,
 	},
-	.probe = dfbmcs320_probe,
-	.remove = dfbmcs320_remove,
+	.probe = bt_handsfree_probe,
+	.remove = bt_handsfree_remove,
+	.id_table = bt_handsfree_driver_ids,
 };
 
-module_platform_driver(dfmcs320_driver);
+module_platform_driver(bt_handsfree_driver);
 
 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
-MODULE_DESCRIPTION("ASoC DFBM-CS320 bluethooth module driver");
+MODULE_DESCRIPTION("ASoC generic bluethooth handsfree driver");
 MODULE_LICENSE("GPL");
diff --git a/sound/soc/samsung/neo1973_wm8753.c b/sound/soc/samsung/neo1973_wm8753.c
index e591c38..3aefea4 100644
--- a/sound/soc/samsung/neo1973_wm8753.c
+++ b/sound/soc/samsung/neo1973_wm8753.c
@@ -373,7 +373,7 @@  static struct snd_soc_dai_link neo1973_dai[] = {
 { /* Voice via BT */
 	.name = "Bluetooth",
 	.stream_name = "Voice",
-	.cpu_dai_name = "dfbmcs320-pcm",
+	.cpu_dai_name = "bt-handsfree-pcm",
 	.codec_dai_name = "wm8753-voice",
 	.codec_name = "wm8753.0-001a",
 	.ops = &neo1973_voice_ops,