ASoC: simple-scu-card: use asoc_simple_card_convert_fixup()
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>
This commit is contained in:
parent
13bb1cc0ad
commit
cd8957f588
@ -27,8 +27,7 @@ struct simple_card_data {
|
|||||||
struct snd_soc_codec_conf codec_conf;
|
struct snd_soc_codec_conf codec_conf;
|
||||||
struct asoc_simple_dai *dai_props;
|
struct asoc_simple_dai *dai_props;
|
||||||
struct snd_soc_dai_link *dai_link;
|
struct snd_soc_dai_link *dai_link;
|
||||||
u32 convert_rate;
|
struct asoc_simple_card_data adata;
|
||||||
u32 convert_channels;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define simple_priv_to_card(priv) (&(priv)->snd_card)
|
#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 snd_pcm_hw_params *params)
|
||||||
{
|
{
|
||||||
struct simple_card_data *priv = snd_soc_card_get_drvdata(rtd->card);
|
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)
|
asoc_simple_card_convert_fixup(&priv->adata, params);
|
||||||
rate->min =
|
|
||||||
rate->max = priv->convert_rate;
|
|
||||||
|
|
||||||
if (priv->convert_channels)
|
|
||||||
channels->min =
|
|
||||||
channels->max = priv->convert_channels;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -206,11 +195,7 @@ static int asoc_simple_card_parse_of(struct simple_card_data *priv)
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* sampling rate convert */
|
asoc_simple_card_parse_convert(dev, PREFIX, &priv->adata);
|
||||||
of_property_read_u32(node, PREFIX "convert-rate", &priv->convert_rate);
|
|
||||||
|
|
||||||
/* channels transfer */
|
|
||||||
of_property_read_u32(node, PREFIX "convert-channels", &priv->convert_channels);
|
|
||||||
|
|
||||||
/* find 1st codec */
|
/* find 1st codec */
|
||||||
np = of_get_child_by_name(node, PREFIX "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)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
dev_dbg(dev, "convert_rate %d\n", priv->convert_rate);
|
|
||||||
dev_dbg(dev, "convert_channels %d\n", priv->convert_channels);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user