mirror of
https://github.com/torvalds/linux.git
synced 2026-05-05 23:05:25 -04:00
ASoC: clarify Codec2Codec params
Merge series from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: ASoC is supporting Codec2Codec, but its parameter name is "params" and "num_params" which are very unclear naming. This patch-set clarifies it by replacing to c2c_params / num_c2c_params.
This commit is contained in:
@@ -684,8 +684,11 @@ struct snd_soc_dai_link {
|
||||
|
||||
int id; /* optional ID for machine driver link identification */
|
||||
|
||||
const struct snd_soc_pcm_stream *params;
|
||||
unsigned int num_params;
|
||||
/*
|
||||
* for Codec2Codec
|
||||
*/
|
||||
const struct snd_soc_pcm_stream *c2c_params;
|
||||
unsigned int num_c2c_params;
|
||||
|
||||
unsigned int dai_fmt; /* format to set on init */
|
||||
|
||||
@@ -1065,7 +1068,7 @@ struct snd_soc_pcm_runtime {
|
||||
struct snd_soc_dai_link *dai_link;
|
||||
struct snd_pcm_ops ops;
|
||||
|
||||
unsigned int params_select; /* currently selected param for dai link */
|
||||
unsigned int c2c_params_select; /* currently selected c2c_param for dai link */
|
||||
|
||||
/* Dynamic PCM BE runtime data */
|
||||
struct snd_soc_dpcm_runtime dpcm[SNDRV_PCM_STREAM_LAST + 1];
|
||||
|
||||
@@ -920,8 +920,8 @@ int audio_graph2_link_c2c(struct asoc_simple_priv *priv,
|
||||
c2c_conf->channels_min =
|
||||
c2c_conf->channels_max = 2; /* update ME */
|
||||
|
||||
dai_link->params = c2c_conf;
|
||||
dai_link->num_params = 1;
|
||||
dai_link->c2c_params = c2c_conf;
|
||||
dai_link->num_c2c_params = 1;
|
||||
}
|
||||
|
||||
ep0 = port_to_endpoint(port0);
|
||||
|
||||
@@ -562,12 +562,12 @@ static int asoc_simple_init_for_codec2codec(struct snd_soc_pcm_runtime *rtd,
|
||||
{
|
||||
struct snd_soc_dai_link *dai_link = rtd->dai_link;
|
||||
struct snd_soc_component *component;
|
||||
struct snd_soc_pcm_stream *params;
|
||||
struct snd_soc_pcm_stream *c2c_params;
|
||||
struct snd_pcm_hardware hw;
|
||||
int i, ret, stream;
|
||||
|
||||
/* Do nothing if it already has Codec2Codec settings */
|
||||
if (dai_link->params)
|
||||
if (dai_link->c2c_params)
|
||||
return 0;
|
||||
|
||||
/* Do nothing if it was DPCM :: BE */
|
||||
@@ -592,19 +592,19 @@ static int asoc_simple_init_for_codec2codec(struct snd_soc_pcm_runtime *rtd,
|
||||
return ret;
|
||||
}
|
||||
|
||||
params = devm_kzalloc(rtd->dev, sizeof(*params), GFP_KERNEL);
|
||||
if (!params)
|
||||
c2c_params = devm_kzalloc(rtd->dev, sizeof(*c2c_params), GFP_KERNEL);
|
||||
if (!c2c_params)
|
||||
return -ENOMEM;
|
||||
|
||||
params->formats = hw.formats;
|
||||
params->rates = hw.rates;
|
||||
params->rate_min = hw.rate_min;
|
||||
params->rate_max = hw.rate_max;
|
||||
params->channels_min = hw.channels_min;
|
||||
params->channels_max = hw.channels_max;
|
||||
c2c_params->formats = hw.formats;
|
||||
c2c_params->rates = hw.rates;
|
||||
c2c_params->rate_min = hw.rate_min;
|
||||
c2c_params->rate_max = hw.rate_max;
|
||||
c2c_params->channels_min = hw.channels_min;
|
||||
c2c_params->channels_max = hw.channels_max;
|
||||
|
||||
dai_link->params = params;
|
||||
dai_link->num_params = 1;
|
||||
dai_link->c2c_params = c2c_params;
|
||||
dai_link->num_c2c_params = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -337,7 +337,8 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
|
||||
return ret;
|
||||
|
||||
if (axg_card_cpu_is_codec(dai_link->cpus->of_node)) {
|
||||
dai_link->params = &codec_params;
|
||||
dai_link->c2c_params = &codec_params;
|
||||
dai_link->num_c2c_params = 1;
|
||||
} else {
|
||||
dai_link->no_pcm = 1;
|
||||
snd_soc_dai_link_set_capabilities(dai_link);
|
||||
|
||||
@@ -104,7 +104,8 @@ static int gx_card_add_link(struct snd_soc_card *card, struct device_node *np,
|
||||
|
||||
/* Or apply codec to codec params if necessary */
|
||||
if (gx_card_cpu_identify(dai_link->cpus, "CODEC CTRL")) {
|
||||
dai_link->params = &codec_params;
|
||||
dai_link->c2c_params = &codec_params;
|
||||
dai_link->num_c2c_params = 1;
|
||||
} else {
|
||||
dai_link->no_pcm = 1;
|
||||
snd_soc_dai_link_set_capabilities(dai_link);
|
||||
|
||||
@@ -105,13 +105,14 @@ int meson_codec_glue_output_startup(struct snd_pcm_substream *substream,
|
||||
if (!in_data)
|
||||
return -ENODEV;
|
||||
|
||||
if (WARN_ON(!rtd->dai_link->params)) {
|
||||
if (WARN_ON(!rtd->dai_link->c2c_params)) {
|
||||
dev_warn(dai->dev, "codec2codec link expected\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Replace link params with the input params */
|
||||
rtd->dai_link->params = &in_data->params;
|
||||
rtd->dai_link->c2c_params = &in_data->params;
|
||||
rtd->dai_link->num_c2c_params = 1;
|
||||
|
||||
return snd_soc_runtime_set_dai_fmt(rtd, in_data->fmt);
|
||||
}
|
||||
|
||||
@@ -483,14 +483,16 @@ static struct snd_soc_dai_link aries_dai[] = {
|
||||
.name = "WM8994 AIF2",
|
||||
.stream_name = "Baseband",
|
||||
.init = &aries_baseband_init,
|
||||
.params = &baseband_params,
|
||||
.c2c_params = &baseband_params,
|
||||
.num_c2c_params = 1,
|
||||
.ignore_suspend = 1,
|
||||
SND_SOC_DAILINK_REG(baseband),
|
||||
},
|
||||
{
|
||||
.name = "WM8994 AIF3",
|
||||
.stream_name = "Bluetooth",
|
||||
.params = &bluetooth_params,
|
||||
.c2c_params = &bluetooth_params,
|
||||
.num_c2c_params = 1,
|
||||
.ignore_suspend = 1,
|
||||
SND_SOC_DAILINK_REG(bluetooth),
|
||||
},
|
||||
|
||||
@@ -264,7 +264,8 @@ static struct snd_soc_dai_link bells_dai_wm2200[] = {
|
||||
.stream_name = "DSP-CODEC",
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBM_CFM,
|
||||
.params = &sub_params,
|
||||
.c2c_params = &sub_params,
|
||||
.num_c2c_params = 1,
|
||||
.ignore_suspend = 1,
|
||||
SND_SOC_DAILINK_REG(wm2200_dsp_codec),
|
||||
},
|
||||
@@ -300,7 +301,8 @@ static struct snd_soc_dai_link bells_dai_wm5102[] = {
|
||||
.stream_name = "DSP-CODEC",
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBM_CFM,
|
||||
.params = &sub_params,
|
||||
.c2c_params = &sub_params,
|
||||
.num_c2c_params = 1,
|
||||
.ignore_suspend = 1,
|
||||
SND_SOC_DAILINK_REG(wm5102_dsp_codec),
|
||||
},
|
||||
@@ -310,7 +312,8 @@ static struct snd_soc_dai_link bells_dai_wm5102[] = {
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBM_CFM,
|
||||
.ignore_suspend = 1,
|
||||
.params = &baseband_params,
|
||||
.c2c_params = &baseband_params,
|
||||
.num_c2c_params = 1,
|
||||
SND_SOC_DAILINK_REG(wm5102_baseband),
|
||||
},
|
||||
{
|
||||
@@ -319,7 +322,8 @@ static struct snd_soc_dai_link bells_dai_wm5102[] = {
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBS_CFS,
|
||||
.ignore_suspend = 1,
|
||||
.params = &sub_params,
|
||||
.c2c_params = &sub_params,
|
||||
.num_c2c_params = 1,
|
||||
SND_SOC_DAILINK_REG(wm5102_sub),
|
||||
},
|
||||
};
|
||||
@@ -355,7 +359,8 @@ static struct snd_soc_dai_link bells_dai_wm5110[] = {
|
||||
.stream_name = "DSP-CODEC",
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBM_CFM,
|
||||
.params = &sub_params,
|
||||
.c2c_params = &sub_params,
|
||||
.num_c2c_params = 1,
|
||||
.ignore_suspend = 1,
|
||||
SND_SOC_DAILINK_REG(wm5110_dsp_codec),
|
||||
},
|
||||
@@ -365,7 +370,8 @@ static struct snd_soc_dai_link bells_dai_wm5110[] = {
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBM_CFM,
|
||||
.ignore_suspend = 1,
|
||||
.params = &baseband_params,
|
||||
.c2c_params = &baseband_params,
|
||||
.num_c2c_params = 1,
|
||||
SND_SOC_DAILINK_REG(wm5110_baseband),
|
||||
},
|
||||
{
|
||||
@@ -374,7 +380,8 @@ static struct snd_soc_dai_link bells_dai_wm5110[] = {
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBS_CFS,
|
||||
.ignore_suspend = 1,
|
||||
.params = &sub_params,
|
||||
.c2c_params = &sub_params,
|
||||
.num_c2c_params = 1,
|
||||
SND_SOC_DAILINK_REG(wm5110_sub),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -167,7 +167,8 @@ static struct snd_soc_dai_link littlemill_dai[] = {
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBM_CFM,
|
||||
.ignore_suspend = 1,
|
||||
.params = &baseband_params,
|
||||
.c2c_params = &baseband_params,
|
||||
.num_c2c_params = 1,
|
||||
SND_SOC_DAILINK_REG(baseband),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -119,7 +119,8 @@ static struct snd_soc_dai_link lowland_dai[] = {
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
|
||||
SND_SOC_DAIFMT_CBM_CFM,
|
||||
.ignore_suspend = 1,
|
||||
.params = &sub_params,
|
||||
.c2c_params = &sub_params,
|
||||
.num_c2c_params = 1,
|
||||
.init = lowland_wm9081_init,
|
||||
SND_SOC_DAILINK_REG(speaker),
|
||||
},
|
||||
|
||||
@@ -219,7 +219,8 @@ static struct snd_soc_dai_link speyside_dai[] = {
|
||||
.init = speyside_wm8996_init,
|
||||
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
|
||||
| SND_SOC_DAIFMT_CBM_CFM,
|
||||
.params = &dsp_codec_params,
|
||||
.c2c_params = &dsp_codec_params,
|
||||
.num_c2c_params = 1,
|
||||
.ignore_suspend = 1,
|
||||
SND_SOC_DAILINK_REG(dsp_codec),
|
||||
},
|
||||
|
||||
@@ -1075,7 +1075,7 @@ static int dapm_new_dai_link(struct snd_soc_dapm_widget *w)
|
||||
struct snd_soc_pcm_runtime *rtd = w->priv;
|
||||
|
||||
/* create control for links with > 1 config */
|
||||
if (rtd->dai_link->num_params <= 1)
|
||||
if (rtd->dai_link->num_c2c_params <= 1)
|
||||
return 0;
|
||||
|
||||
/* add kcontrol */
|
||||
@@ -3864,7 +3864,7 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
|
||||
* either party on the link to alter the configuration if
|
||||
* necessary
|
||||
*/
|
||||
config = rtd->dai_link->params + rtd->params_select;
|
||||
config = rtd->dai_link->c2c_params + rtd->c2c_params_select;
|
||||
if (!config) {
|
||||
dev_err(w->dapm->dev, "ASoC: link config missing\n");
|
||||
ret = -EINVAL;
|
||||
@@ -4010,7 +4010,7 @@ static int snd_soc_dapm_dai_link_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_soc_dapm_widget *w = snd_kcontrol_chip(kcontrol);
|
||||
struct snd_soc_pcm_runtime *rtd = w->priv;
|
||||
|
||||
ucontrol->value.enumerated.item[0] = rtd->params_select;
|
||||
ucontrol->value.enumerated.item[0] = rtd->c2c_params_select;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -4025,13 +4025,13 @@ static int snd_soc_dapm_dai_link_put(struct snd_kcontrol *kcontrol,
|
||||
if (w->power)
|
||||
return -EBUSY;
|
||||
|
||||
if (ucontrol->value.enumerated.item[0] == rtd->params_select)
|
||||
if (ucontrol->value.enumerated.item[0] == rtd->c2c_params_select)
|
||||
return 0;
|
||||
|
||||
if (ucontrol->value.enumerated.item[0] >= rtd->dai_link->num_params)
|
||||
if (ucontrol->value.enumerated.item[0] >= rtd->dai_link->num_c2c_params)
|
||||
return -EINVAL;
|
||||
|
||||
rtd->params_select = ucontrol->value.enumerated.item[0];
|
||||
rtd->c2c_params_select = ucontrol->value.enumerated.item[0];
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -4039,7 +4039,7 @@ static int snd_soc_dapm_dai_link_put(struct snd_kcontrol *kcontrol,
|
||||
static void
|
||||
snd_soc_dapm_free_kcontrol(struct snd_soc_card *card,
|
||||
unsigned long *private_value,
|
||||
int num_params,
|
||||
int num_c2c_params,
|
||||
const char **w_param_text)
|
||||
{
|
||||
int count;
|
||||
@@ -4049,7 +4049,7 @@ snd_soc_dapm_free_kcontrol(struct snd_soc_card *card,
|
||||
if (!w_param_text)
|
||||
return;
|
||||
|
||||
for (count = 0 ; count < num_params; count++)
|
||||
for (count = 0 ; count < num_c2c_params; count++)
|
||||
devm_kfree(card->dev, (void *)w_param_text[count]);
|
||||
devm_kfree(card->dev, w_param_text);
|
||||
}
|
||||
@@ -4057,8 +4057,8 @@ snd_soc_dapm_free_kcontrol(struct snd_soc_card *card,
|
||||
static struct snd_kcontrol_new *
|
||||
snd_soc_dapm_alloc_kcontrol(struct snd_soc_card *card,
|
||||
char *link_name,
|
||||
const struct snd_soc_pcm_stream *params,
|
||||
int num_params, const char **w_param_text,
|
||||
const struct snd_soc_pcm_stream *c2c_params,
|
||||
int num_c2c_params, const char **w_param_text,
|
||||
unsigned long *private_value)
|
||||
{
|
||||
struct soc_enum w_param_enum[] = {
|
||||
@@ -4070,10 +4070,10 @@ snd_soc_dapm_alloc_kcontrol(struct snd_soc_card *card,
|
||||
snd_soc_dapm_dai_link_put),
|
||||
};
|
||||
struct snd_kcontrol_new *kcontrol_news;
|
||||
const struct snd_soc_pcm_stream *config = params;
|
||||
const struct snd_soc_pcm_stream *config = c2c_params;
|
||||
int count;
|
||||
|
||||
for (count = 0 ; count < num_params; count++) {
|
||||
for (count = 0 ; count < num_c2c_params; count++) {
|
||||
if (!config->stream_name) {
|
||||
dev_warn(card->dapm.dev,
|
||||
"ASoC: anonymous config %d for dai link %s\n",
|
||||
@@ -4093,7 +4093,7 @@ snd_soc_dapm_alloc_kcontrol(struct snd_soc_card *card,
|
||||
config++;
|
||||
}
|
||||
|
||||
w_param_enum[0].items = num_params;
|
||||
w_param_enum[0].items = num_c2c_params;
|
||||
w_param_enum[0].texts = w_param_text;
|
||||
|
||||
*private_value =
|
||||
@@ -4118,7 +4118,7 @@ snd_soc_dapm_alloc_kcontrol(struct snd_soc_card *card,
|
||||
return kcontrol_news;
|
||||
|
||||
outfree_w_param:
|
||||
snd_soc_dapm_free_kcontrol(card, private_value, num_params, w_param_text);
|
||||
snd_soc_dapm_free_kcontrol(card, private_value, num_c2c_params, w_param_text);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -4146,17 +4146,17 @@ snd_soc_dapm_new_dai(struct snd_soc_card *card,
|
||||
w_param_text = NULL;
|
||||
kcontrol_news = NULL;
|
||||
num_kcontrols = 0;
|
||||
if (rtd->dai_link->num_params > 1) {
|
||||
if (rtd->dai_link->num_c2c_params > 1) {
|
||||
w_param_text = devm_kcalloc(card->dev,
|
||||
rtd->dai_link->num_params,
|
||||
rtd->dai_link->num_c2c_params,
|
||||
sizeof(char *), GFP_KERNEL);
|
||||
if (!w_param_text)
|
||||
goto param_fail;
|
||||
|
||||
num_kcontrols = 1;
|
||||
kcontrol_news = snd_soc_dapm_alloc_kcontrol(card, link_name,
|
||||
rtd->dai_link->params,
|
||||
rtd->dai_link->num_params,
|
||||
rtd->dai_link->c2c_params,
|
||||
rtd->dai_link->num_c2c_params,
|
||||
w_param_text, &private_value);
|
||||
if (!kcontrol_news)
|
||||
goto param_fail;
|
||||
@@ -4187,7 +4187,7 @@ snd_soc_dapm_new_dai(struct snd_soc_card *card,
|
||||
outfree_kcontrol_news:
|
||||
devm_kfree(card->dev, (void *)template.kcontrol_news);
|
||||
snd_soc_dapm_free_kcontrol(card, &private_value,
|
||||
rtd->dai_link->num_params, w_param_text);
|
||||
rtd->dai_link->num_c2c_params, w_param_text);
|
||||
param_fail:
|
||||
devm_kfree(card->dev, link_name);
|
||||
name_fail:
|
||||
@@ -4336,7 +4336,7 @@ static void dapm_connect_dai_pair(struct snd_soc_card *card,
|
||||
struct snd_pcm_str *streams = rtd->pcm->streams;
|
||||
int stream;
|
||||
|
||||
if (dai_link->params) {
|
||||
if (dai_link->c2c_params) {
|
||||
playback_cpu = snd_soc_dai_get_widget_capture(cpu_dai);
|
||||
capture_cpu = snd_soc_dai_get_widget_playback(cpu_dai);
|
||||
} else {
|
||||
@@ -4349,7 +4349,7 @@ static void dapm_connect_dai_pair(struct snd_soc_card *card,
|
||||
codec = snd_soc_dai_get_widget(codec_dai, stream);
|
||||
|
||||
if (playback_cpu && codec) {
|
||||
if (dai_link->params && !rtd->c2c_widget[stream]) {
|
||||
if (dai_link->c2c_params && !rtd->c2c_widget[stream]) {
|
||||
substream = streams[stream].substream;
|
||||
dai = snd_soc_dapm_new_dai(card, substream, "playback");
|
||||
if (IS_ERR(dai))
|
||||
@@ -4368,7 +4368,7 @@ capture:
|
||||
codec = snd_soc_dai_get_widget(codec_dai, stream);
|
||||
|
||||
if (codec && capture_cpu) {
|
||||
if (dai_link->params && !rtd->c2c_widget[stream]) {
|
||||
if (dai_link->c2c_params && !rtd->c2c_widget[stream]) {
|
||||
substream = streams[stream].substream;
|
||||
dai = snd_soc_dapm_new_dai(card, substream, "capture");
|
||||
if (IS_ERR(dai))
|
||||
|
||||
@@ -2793,9 +2793,9 @@ static int soc_get_playback_capture(struct snd_soc_pcm_runtime *rtd,
|
||||
struct snd_soc_dai *codec_dai;
|
||||
|
||||
/* Adapt stream for codec2codec links */
|
||||
int cpu_capture = rtd->dai_link->params ?
|
||||
int cpu_capture = rtd->dai_link->c2c_params ?
|
||||
SNDRV_PCM_STREAM_PLAYBACK : SNDRV_PCM_STREAM_CAPTURE;
|
||||
int cpu_playback = rtd->dai_link->params ?
|
||||
int cpu_playback = rtd->dai_link->c2c_params ?
|
||||
SNDRV_PCM_STREAM_CAPTURE : SNDRV_PCM_STREAM_PLAYBACK;
|
||||
|
||||
for_each_rtd_codec_dais(rtd, i, codec_dai) {
|
||||
@@ -2839,7 +2839,7 @@ static int soc_create_pcm(struct snd_pcm **pcm,
|
||||
int ret;
|
||||
|
||||
/* create the PCM */
|
||||
if (rtd->dai_link->params) {
|
||||
if (rtd->dai_link->c2c_params) {
|
||||
snprintf(new_name, sizeof(new_name), "codec2codec(%s)",
|
||||
rtd->dai_link->stream_name);
|
||||
|
||||
@@ -2896,7 +2896,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
|
||||
* don't interface with the outside world or application layer
|
||||
* we don't have to do any special handling on close.
|
||||
*/
|
||||
if (!rtd->dai_link->params)
|
||||
if (!rtd->dai_link->c2c_params)
|
||||
rtd->close_delayed_work_func = snd_soc_close_delayed_work;
|
||||
|
||||
rtd->pcm = pcm;
|
||||
@@ -2904,7 +2904,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
|
||||
pcm->private_data = rtd;
|
||||
pcm->no_device_suspend = true;
|
||||
|
||||
if (rtd->dai_link->no_pcm || rtd->dai_link->params) {
|
||||
if (rtd->dai_link->no_pcm || rtd->dai_link->c2c_params) {
|
||||
if (playback)
|
||||
pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream->private_data = rtd;
|
||||
if (capture)
|
||||
|
||||
Reference in New Issue
Block a user