aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-04-06 09:57:17 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2011-05-26 13:45:09 -0400
commita4579ad2bb6557834ebfafc8d2942891516fb4ad (patch)
tree3a4c19cd9cb685c6bd15a2e124f537db68374c39
parent3d2bdf759f48f9b0a0ffcd798f3e9a3228d6455d (diff)
mfd: Use mfd cell platform_data for twl4030 codec cells platform bits
With the addition of a platform device mfd_cell pointer, MFD drivers can go back to passing platform data back to their sub drivers. This allows for an mfd_cell->mfd_data removal and thus keep the sub drivers MFD agnostic. This is mostly needed for non MFD aware sub drivers. Cc: Peter Ujfalusi <peter.ujfalusi@nokia.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Liam Girdwood <lrg@slimlogic.co.uk> Cc: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
-rw-r--r--drivers/input/misc/twl4030-vibra.c3
-rw-r--r--drivers/mfd/twl4030-codec.c6
-rw-r--r--sound/soc/codecs/twl4030.c6
3 files changed, 7 insertions, 8 deletions
diff --git a/drivers/input/misc/twl4030-vibra.c b/drivers/input/misc/twl4030-vibra.c
index 6a11694e3fc7..014dd4ad0d4f 100644
--- a/drivers/input/misc/twl4030-vibra.c
+++ b/drivers/input/misc/twl4030-vibra.c
@@ -29,7 +29,6 @@
29#include <linux/workqueue.h> 29#include <linux/workqueue.h>
30#include <linux/i2c/twl.h> 30#include <linux/i2c/twl.h>
31#include <linux/mfd/twl4030-codec.h> 31#include <linux/mfd/twl4030-codec.h>
32#include <linux/mfd/core.h>
33#include <linux/input.h> 32#include <linux/input.h>
34#include <linux/slab.h> 33#include <linux/slab.h>
35 34
@@ -197,7 +196,7 @@ static SIMPLE_DEV_PM_OPS(twl4030_vibra_pm_ops,
197 196
198static int __devinit twl4030_vibra_probe(struct platform_device *pdev) 197static int __devinit twl4030_vibra_probe(struct platform_device *pdev)
199{ 198{
200 struct twl4030_codec_vibra_data *pdata = mfd_get_data(pdev); 199 struct twl4030_codec_vibra_data *pdata = pdev->dev.platform_data;
201 struct vibra_info *info; 200 struct vibra_info *info;
202 int ret; 201 int ret;
203 202
diff --git a/drivers/mfd/twl4030-codec.c b/drivers/mfd/twl4030-codec.c
index c02fded316c9..315b5ead8437 100644
--- a/drivers/mfd/twl4030-codec.c
+++ b/drivers/mfd/twl4030-codec.c
@@ -208,13 +208,15 @@ static int __devinit twl4030_codec_probe(struct platform_device *pdev)
208 if (pdata->audio) { 208 if (pdata->audio) {
209 cell = &codec->cells[childs]; 209 cell = &codec->cells[childs];
210 cell->name = "twl4030-codec"; 210 cell->name = "twl4030-codec";
211 cell->mfd_data = pdata->audio; 211 cell->platform_data = pdata->audio;
212 cell->pdata_size = sizeof(*pdata->audio);
212 childs++; 213 childs++;
213 } 214 }
214 if (pdata->vibra) { 215 if (pdata->vibra) {
215 cell = &codec->cells[childs]; 216 cell = &codec->cells[childs];
216 cell->name = "twl4030-vibra"; 217 cell->name = "twl4030-vibra";
217 cell->mfd_data = pdata->vibra; 218 cell->platform_data = pdata->vibra;
219 cell->pdata_size = sizeof(*pdata->vibra);
218 childs++; 220 childs++;
219 } 221 }
220 222
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index 575238d68e5e..bec788b12613 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -26,7 +26,6 @@
26#include <linux/pm.h> 26#include <linux/pm.h>
27#include <linux/i2c.h> 27#include <linux/i2c.h>
28#include <linux/platform_device.h> 28#include <linux/platform_device.h>
29#include <linux/mfd/core.h>
30#include <linux/i2c/twl.h> 29#include <linux/i2c/twl.h>
31#include <linux/slab.h> 30#include <linux/slab.h>
32#include <sound/core.h> 31#include <sound/core.h>
@@ -733,8 +732,7 @@ static int aif_event(struct snd_soc_dapm_widget *w,
733 732
734static void headset_ramp(struct snd_soc_codec *codec, int ramp) 733static void headset_ramp(struct snd_soc_codec *codec, int ramp)
735{ 734{
736 struct twl4030_codec_audio_data *pdata = 735 struct twl4030_codec_audio_data *pdata = codec->dev->platform_data;
737 mfd_get_data(to_platform_device(codec->dev));
738 unsigned char hs_gain, hs_pop; 736 unsigned char hs_gain, hs_pop;
739 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); 737 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec);
740 /* Base values for ramp delay calculation: 2^19 - 2^26 */ 738 /* Base values for ramp delay calculation: 2^19 - 2^26 */
@@ -2299,7 +2297,7 @@ static struct snd_soc_codec_driver soc_codec_dev_twl4030 = {
2299 2297
2300static int __devinit twl4030_codec_probe(struct platform_device *pdev) 2298static int __devinit twl4030_codec_probe(struct platform_device *pdev)
2301{ 2299{
2302 struct twl4030_codec_audio_data *pdata = mfd_get_data(pdev); 2300 struct twl4030_codec_audio_data *pdata = pdev->dev.platform_data;
2303 2301
2304 if (!pdata) { 2302 if (!pdata) {
2305 dev_err(&pdev->dev, "platform_data is missing\n"); 2303 dev_err(&pdev->dev, "platform_data is missing\n");