ASoC: atmel-pdmic: remove codec component
[sfrench/cifs-2.6.git] / sound / soc / atmel / atmel-pdmic.c
index 5245826cd99d2ae6a095ed9871e79894807466bf..c2b639928c69ab64d93bcfd4981f29b3f78619f6 100644 (file)
@@ -147,32 +147,26 @@ static int atmel_pdmic_cpu_dai_prepare(struct snd_pcm_substream *substream,
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct atmel_pdmic *dd = snd_soc_card_get_drvdata(rtd->card);
+       struct snd_soc_component *component = cpu_dai->component;
        u32 val;
+       int ret;
 
        /* Clean the PDMIC Converted Data Register */
-       return regmap_read(dd->regmap, PDMIC_CDR, &val);
-}
-
-static const struct snd_soc_dai_ops atmel_pdmic_cpu_dai_ops = {
-       .startup        = atmel_pdmic_cpu_dai_startup,
-       .shutdown       = atmel_pdmic_cpu_dai_shutdown,
-       .prepare        = atmel_pdmic_cpu_dai_prepare,
-};
+       ret = regmap_read(dd->regmap, PDMIC_CDR, &val);
+       if (ret < 0)
+               return 0;
 
-#define ATMEL_PDMIC_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE)
+       ret = snd_soc_component_update_bits(component, PDMIC_CR,
+                                           PDMIC_CR_ENPDM_MASK,
+                                           PDMIC_CR_ENPDM_DIS <<
+                                           PDMIC_CR_ENPDM_SHIFT);
+       if (ret < 0)
+               return ret;
 
-static struct snd_soc_dai_driver atmel_pdmic_cpu_dai = {
-       .capture = {
-               .channels_min   = 1,
-               .channels_max   = 1,
-               .rates          = SNDRV_PCM_RATE_KNOT,
-               .formats        = ATMEL_PDMIC_FORMATS,},
-       .ops = &atmel_pdmic_cpu_dai_ops,
-};
+       return 0;
+}
 
-static const struct snd_soc_component_driver atmel_pdmic_cpu_dai_component = {
-       .name = "atmel-pdmic",
-};
+#define ATMEL_PDMIC_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE)
 
 /* platform */
 #define ATMEL_PDMIC_MAX_BUF_SIZE  (64 * 1024)
@@ -355,27 +349,16 @@ static int atmel_pdmic_component_probe(struct snd_soc_component *component)
        return 0;
 }
 
-static struct snd_soc_component_driver soc_component_dev_pdmic = {
-       .probe                  = atmel_pdmic_component_probe,
-       .controls               = atmel_pdmic_snd_controls,
-       .num_controls           = ARRAY_SIZE(atmel_pdmic_snd_controls),
-       .idle_bias_on           = 1,
-       .use_pmdown_time        = 1,
-       .endianness             = 1,
-       .non_legacy_dai_naming  = 1,
-};
-
-/* codec dai component */
 #define PDMIC_MR_PRESCAL_MAX_VAL 127
 
 static int
-atmel_pdmic_codec_dai_hw_params(struct snd_pcm_substream *substream,
-                           struct snd_pcm_hw_params *params,
-                           struct snd_soc_dai *codec_dai)
+atmel_pdmic_cpu_dai_hw_params(struct snd_pcm_substream *substream,
+                             struct snd_pcm_hw_params *params,
+                             struct snd_soc_dai *cpu_dai)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct atmel_pdmic *dd = snd_soc_card_get_drvdata(rtd->card);
-       struct snd_soc_component *component = codec_dai->component;
+       struct snd_soc_component *component = cpu_dai->component;
        unsigned int rate_min = substream->runtime->hw.rate_min;
        unsigned int rate_max = substream->runtime->hw.rate_max;
        int fs = params_rate(params);
@@ -445,21 +428,10 @@ atmel_pdmic_codec_dai_hw_params(struct snd_pcm_substream *substream,
        return 0;
 }
 
-static int atmel_pdmic_codec_dai_prepare(struct snd_pcm_substream *substream,
-                                       struct snd_soc_dai *codec_dai)
-{
-       struct snd_soc_component *component = codec_dai->component;
-
-       snd_soc_component_update_bits(component, PDMIC_CR, PDMIC_CR_ENPDM_MASK,
-                           PDMIC_CR_ENPDM_DIS << PDMIC_CR_ENPDM_SHIFT);
-
-       return 0;
-}
-
-static int atmel_pdmic_codec_dai_trigger(struct snd_pcm_substream *substream,
-                                       int cmd, struct snd_soc_dai *codec_dai)
+static int atmel_pdmic_cpu_dai_trigger(struct snd_pcm_substream *substream,
+                                      int cmd, struct snd_soc_dai *cpu_dai)
 {
-       struct snd_soc_component *component = codec_dai->component;
+       struct snd_soc_component *component = cpu_dai->component;
        u32 val;
 
        switch (cmd) {
@@ -482,16 +454,16 @@ static int atmel_pdmic_codec_dai_trigger(struct snd_pcm_substream *substream,
        return 0;
 }
 
-static const struct snd_soc_dai_ops atmel_pdmic_codec_dai_ops = {
-       .hw_params      = atmel_pdmic_codec_dai_hw_params,
-       .prepare        = atmel_pdmic_codec_dai_prepare,
-       .trigger        = atmel_pdmic_codec_dai_trigger,
+static const struct snd_soc_dai_ops atmel_pdmic_cpu_dai_ops = {
+       .startup        = atmel_pdmic_cpu_dai_startup,
+       .shutdown       = atmel_pdmic_cpu_dai_shutdown,
+       .prepare        = atmel_pdmic_cpu_dai_prepare,
+       .hw_params      = atmel_pdmic_cpu_dai_hw_params,
+       .trigger        = atmel_pdmic_cpu_dai_trigger,
 };
 
-#define ATMEL_PDMIC_CODEC_DAI_NAME  "atmel-pdmic-hifi"
 
-static struct snd_soc_dai_driver atmel_pdmic_codec_dai = {
-       .name = ATMEL_PDMIC_CODEC_DAI_NAME,
+static struct snd_soc_dai_driver atmel_pdmic_cpu_dai = {
        .capture = {
                .stream_name    = "Capture",
                .channels_min   = 1,
@@ -499,7 +471,17 @@ static struct snd_soc_dai_driver atmel_pdmic_codec_dai = {
                .rates          = SNDRV_PCM_RATE_KNOT,
                .formats        = ATMEL_PDMIC_FORMATS,
        },
-       .ops = &atmel_pdmic_codec_dai_ops,
+       .ops = &atmel_pdmic_cpu_dai_ops,
+};
+
+static const struct snd_soc_component_driver atmel_pdmic_cpu_dai_component = {
+       .name                   = "atmel-pdmic",
+       .probe                  = atmel_pdmic_component_probe,
+       .controls               = atmel_pdmic_snd_controls,
+       .num_controls           = ARRAY_SIZE(atmel_pdmic_snd_controls),
+       .idle_bias_on           = 1,
+       .use_pmdown_time        = 1,
+       .endianness             = 1,
 };
 
 /* ASoC sound card */
@@ -528,9 +510,9 @@ static int atmel_pdmic_asoc_card_init(struct device *dev,
 
        dai_link->name                  = "PDMIC";
        dai_link->stream_name           = "PDMIC PCM";
-       dai_link->codecs->dai_name      = ATMEL_PDMIC_CODEC_DAI_NAME;
+       dai_link->codecs->dai_name      = "snd-soc-dummy-dai";
        dai_link->cpus->dai_name        = dev_name(dev);
-       dai_link->codecs->name          = dev_name(dev);
+       dai_link->codecs->name          = "snd-soc-dummy";
        dai_link->platforms->name       = dev_name(dev);
 
        card->dai_link  = dai_link;
@@ -684,16 +666,6 @@ static int atmel_pdmic_probe(struct platform_device *pdev)
                return ret;
        }
 
-       /* register codec and codec dai */
-       atmel_pdmic_codec_dai.capture.rate_min = rate_min;
-       atmel_pdmic_codec_dai.capture.rate_max = rate_max;
-       ret = devm_snd_soc_register_component(dev, &soc_component_dev_pdmic,
-                                    &atmel_pdmic_codec_dai, 1);
-       if (ret) {
-               dev_err(dev, "could not register component: %d\n", ret);
-               return ret;
-       }
-
        /* register sound card */
        card = devm_kzalloc(dev, sizeof(*card), GFP_KERNEL);
        if (!card) {