diff options
Diffstat (limited to 'sound/soc/davinci/davinci-sffsdr.c')
| -rw-r--r-- | sound/soc/davinci/davinci-sffsdr.c | 27 | 
1 files changed, 15 insertions, 12 deletions
diff --git a/sound/soc/davinci/davinci-sffsdr.c b/sound/soc/davinci/davinci-sffsdr.c index 40eccfe9e35..997c54f3693 100644 --- a/sound/soc/davinci/davinci-sffsdr.c +++ b/sound/soc/davinci/davinci-sffsdr.c @@ -29,7 +29,6 @@  #include <asm/plat-sffsdr/sffsdr-fpga.h>  #endif -#include <mach/mcbsp.h>  #include <mach/edma.h>  #include "../codecs/pcm3008.h" @@ -48,7 +47,7 @@ static int sffsdr_hw_params(struct snd_pcm_substream *substream,  			    struct snd_pcm_hw_params *params)  {  	struct snd_soc_pcm_runtime *rtd = substream->private_data; -	struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; +	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;  	int fs;  	int ret = 0; @@ -85,15 +84,16 @@ static struct snd_soc_ops sffsdr_ops = {  static struct snd_soc_dai_link sffsdr_dai = {  	.name = "PCM3008", /* Codec name */  	.stream_name = "PCM3008 HiFi", -	.cpu_dai = &davinci_i2s_dai, -	.codec_dai = &pcm3008_dai, +	.cpu_dai_name = "davinci-asp.0", +	.codec_dai_name = "pcm3008-hifi", +	.codec_name = "pcm3008-codec", +	.platform_name = "davinci-pcm-audio",  	.ops = &sffsdr_ops,  };  /* davinci-sffsdr audio machine driver */  static struct snd_soc_card snd_soc_sffsdr = {  	.name = "DaVinci SFFSDR", -	.platform = &davinci_soc_platform,  	.dai_link = &sffsdr_dai,  	.num_links = 1,  }; @@ -106,11 +106,12 @@ static struct pcm3008_setup_data sffsdr_pcm3008_setup = {  	.pdda_pin = GPIO(38),  }; -/* sffsdr audio subsystem */ -static struct snd_soc_device sffsdr_snd_devdata = { -	.card = &snd_soc_sffsdr, -	.codec_dev = &soc_codec_dev_pcm3008, -	.codec_data = &sffsdr_pcm3008_setup, +struct platform_device pcm3008_codec = { +		.name = "pcm3008-codec", +		.id = 0, +		.dev = { +				.platform_data = &sffsdr_pcm3008_setup, +		},  };  static struct resource sffsdr_snd_resources[] = { @@ -135,14 +136,15 @@ static int __init sffsdr_init(void)  	if (!machine_is_sffsdr())  		return -EINVAL; +	platform_device_register(&pcm3008_codec); +  	sffsdr_snd_device = platform_device_alloc("soc-audio", 0);  	if (!sffsdr_snd_device) {  		printk(KERN_ERR "platform device allocation failed\n");  		return -ENOMEM;  	} -	platform_set_drvdata(sffsdr_snd_device, &sffsdr_snd_devdata); -	sffsdr_snd_devdata.dev = &sffsdr_snd_device->dev; +	platform_set_drvdata(sffsdr_snd_device, &snd_soc_sffsdr);  	platform_device_add_data(sffsdr_snd_device, &sffsdr_snd_data,  				 sizeof(sffsdr_snd_data)); @@ -168,6 +170,7 @@ error:  static void __exit sffsdr_exit(void)  {  	platform_device_unregister(sffsdr_snd_device); +	platform_device_unregister(&pcm3008_codec);  }  module_init(sffsdr_init);  |