]> rtime.felk.cvut.cz Git - mcf548x/linux.git/blobdiff - sound/soc/blackfin/bf5xx-ad1836.c
ASoC: multi-component - ASoC Multi-Component Support
[mcf548x/linux.git] / sound / soc / blackfin / bf5xx-ad1836.c
index 0f45a3f56be8f3ff4ae335941d30c0fda62d24b8..2394bff2b655bce897b5ea209f134744dc8ffc94 100644 (file)
@@ -40,9 +40,9 @@ static struct snd_soc_card bf5xx_ad1836;
 static int bf5xx_ad1836_startup(struct snd_pcm_substream *substream)
 {
        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;
 
-       cpu_dai->private_data = sport_handle;
+       snd_soc_dai_set_drvdata(cpu_dai, sport_handle);
        return 0;
 }
 
@@ -50,8 +50,8 @@ static int bf5xx_ad1836_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 *codec_dai = rtd->dai->codec_dai;
+       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+       struct snd_soc_dai *codec_dai = rtd->codec_dai;
        unsigned int channel_map[] = {0, 4, 1, 5, 2, 6, 3, 7};
        int ret = 0;
        /* set cpu DAI configuration */
@@ -83,23 +83,19 @@ static struct snd_soc_ops bf5xx_ad1836_ops = {
 static struct snd_soc_dai_link bf5xx_ad1836_dai = {
        .name = "ad1836",
        .stream_name = "AD1836",
-       .cpu_dai = &bf5xx_tdm_dai,
-       .codec_dai = &ad1836_dai,
+       .cpu_dai_name = "bf5xx-tdm",
+       .codec_dai_name = "ad1836-hifi",
+       .platform_name = "bf5xx-tdm-pcm-audio",
+       .codec_name = "ad1836-codec.0",
        .ops = &bf5xx_ad1836_ops,
 };
 
 static struct snd_soc_card bf5xx_ad1836 = {
        .name = "bf5xx_ad1836",
-       .platform = &bf5xx_tdm_soc_platform,
        .dai_link = &bf5xx_ad1836_dai,
        .num_links = 1,
 };
 
-static struct snd_soc_device bf5xx_ad1836_snd_devdata = {
-       .card = &bf5xx_ad1836,
-       .codec_dev = &soc_codec_dev_ad1836,
-};
-
 static struct platform_device *bfxx_ad1836_snd_device;
 
 static int __init bf5xx_ad1836_init(void)
@@ -110,8 +106,7 @@ static int __init bf5xx_ad1836_init(void)
        if (!bfxx_ad1836_snd_device)
                return -ENOMEM;
 
-       platform_set_drvdata(bfxx_ad1836_snd_device, &bf5xx_ad1836_snd_devdata);
-       bf5xx_ad1836_snd_devdata.dev = &bfxx_ad1836_snd_device->dev;
+       platform_set_drvdata(bfxx_ad1836_snd_device, &bf5xx_ad1836);
        ret = platform_device_add(bfxx_ad1836_snd_device);
 
        if (ret)