ASoC: simple-scu-card: use asoc_simple_card_convert_fixup()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 15 Jun 2017 00:24:28 +0000 (00:24 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 15 Jun 2017 17:14:49 +0000 (18:14 +0100)
Current simple/audio scu card drivers are supporting same
convert-rate/convert-channels on DT, but, doesn't use same function
for it.
Encapsulation is one of simple card util's purpose.
Let's use asoc_simple_card_parse_convert/asoc_simple_card_convert_fixup

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/generic/simple-scu-card.c

index 938f3f30eef18c485a58b2b42c69ef36bd80669f..44da691010972ffd6b0f4c2a8d18f6baa7739abb 100644 (file)
@@ -27,8 +27,7 @@ struct simple_card_data {
        struct snd_soc_codec_conf codec_conf;
        struct asoc_simple_dai *dai_props;
        struct snd_soc_dai_link *dai_link;
-       u32 convert_rate;
-       u32 convert_channels;
+       struct asoc_simple_card_data adata;
 };
 
 #define simple_priv_to_card(priv) (&(priv)->snd_card)
@@ -86,18 +85,8 @@ static int asoc_simple_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
                                        struct snd_pcm_hw_params *params)
 {
        struct simple_card_data *priv = snd_soc_card_get_drvdata(rtd->card);
-       struct snd_interval *rate = hw_param_interval(params,
-                                                     SNDRV_PCM_HW_PARAM_RATE);
-       struct snd_interval *channels = hw_param_interval(params,
-                                               SNDRV_PCM_HW_PARAM_CHANNELS);
 
-       if (priv->convert_rate)
-               rate->min =
-               rate->max = priv->convert_rate;
-
-       if (priv->convert_channels)
-               channels->min =
-               channels->max = priv->convert_channels;
+       asoc_simple_card_convert_fixup(&priv->adata, params);
 
        return 0;
 }
@@ -206,11 +195,7 @@ static int asoc_simple_card_parse_of(struct simple_card_data *priv)
        if (ret < 0)
                return ret;
 
-       /* sampling rate convert */
-       of_property_read_u32(node, PREFIX "convert-rate", &priv->convert_rate);
-
-       /* channels transfer */
-       of_property_read_u32(node, PREFIX "convert-channels", &priv->convert_channels);
+       asoc_simple_card_parse_convert(dev, PREFIX, &priv->adata);
 
        /* find 1st codec */
        np = of_get_child_by_name(node, PREFIX "codec");
@@ -237,9 +222,6 @@ static int asoc_simple_card_parse_of(struct simple_card_data *priv)
        if (ret < 0)
                return ret;
 
-       dev_dbg(dev, "convert_rate     %d\n", priv->convert_rate);
-       dev_dbg(dev, "convert_channels %d\n", priv->convert_channels);
-
        return 0;
 }