Merge "ASoC: msm: Fix adding channel mixer control failure issue"
This commit is contained in:
commit
1a92d1310c
2 changed files with 144 additions and 88 deletions
|
@ -1077,6 +1077,15 @@ static int msm_pcm_add_channel_mixer_output_map_controls(
|
||||||
channel_mixer_output_map_control[0].name = playback_mixer_str;
|
channel_mixer_output_map_control[0].name = playback_mixer_str;
|
||||||
channel_mixer_output_map_control[0].private_value =
|
channel_mixer_output_map_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_output_map_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -1094,18 +1103,16 @@ static int msm_pcm_add_channel_mixer_output_map_controls(
|
||||||
channel_mixer_output_map_control[1].name = capture_mixer_str;
|
channel_mixer_output_map_control[1].name = capture_mixer_str;
|
||||||
channel_mixer_output_map_control[1].private_value =
|
channel_mixer_output_map_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_output_map_control,
|
&channel_mixer_output_map_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_output_map_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
@ -1172,6 +1179,15 @@ static int msm_pcm_add_channel_mixer_input_map_controls(
|
||||||
channel_mixer_input_map_control[0].name = playback_mixer_str;
|
channel_mixer_input_map_control[0].name = playback_mixer_str;
|
||||||
channel_mixer_input_map_control[0].private_value =
|
channel_mixer_input_map_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_input_map_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -1189,18 +1205,16 @@ static int msm_pcm_add_channel_mixer_input_map_controls(
|
||||||
channel_mixer_input_map_control[1].name = capture_mixer_str;
|
channel_mixer_input_map_control[1].name = capture_mixer_str;
|
||||||
channel_mixer_input_map_control[1].private_value =
|
channel_mixer_input_map_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_input_map_control,
|
&channel_mixer_input_map_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_input_map_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
@ -1278,6 +1292,15 @@ static int msm_pcm_add_channel_mixer_cfg_controls(
|
||||||
channel_mixer_cfg_control[0].name = playback_mixer_str;
|
channel_mixer_cfg_control[0].name = playback_mixer_str;
|
||||||
channel_mixer_cfg_control[0].private_value =
|
channel_mixer_cfg_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_cfg_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -1295,18 +1318,16 @@ static int msm_pcm_add_channel_mixer_cfg_controls(
|
||||||
channel_mixer_cfg_control[1].name = capture_mixer_str;
|
channel_mixer_cfg_control[1].name = capture_mixer_str;
|
||||||
channel_mixer_cfg_control[1].private_value =
|
channel_mixer_cfg_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_cfg_control,
|
&channel_mixer_cfg_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_cfg_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
@ -1378,6 +1399,15 @@ static int msm_pcm_add_channel_mixer_weight_controls(
|
||||||
channel_mixer_weight_control[0].private_value =
|
channel_mixer_weight_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8)
|
(rtd->dai_link->be_id) | (session_type << 8)
|
||||||
| (channel << 16);
|
| (channel << 16);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_weight_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -1398,18 +1428,16 @@ static int msm_pcm_add_channel_mixer_weight_controls(
|
||||||
channel_mixer_weight_control[1].private_value =
|
channel_mixer_weight_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8)
|
(rtd->dai_link->be_id) | (session_type << 8)
|
||||||
| (channel << 16);
|
| (channel << 16);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_weight_control,
|
&channel_mixer_weight_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_weight_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
|
|
@ -2459,6 +2459,15 @@ static int msm_pcm_add_channel_mixer_output_map_controls(
|
||||||
channel_mixer_output_map_control[0].name = playback_mixer_str;
|
channel_mixer_output_map_control[0].name = playback_mixer_str;
|
||||||
channel_mixer_output_map_control[0].private_value =
|
channel_mixer_output_map_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_output_map_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -2476,18 +2485,16 @@ static int msm_pcm_add_channel_mixer_output_map_controls(
|
||||||
channel_mixer_output_map_control[1].name = capture_mixer_str;
|
channel_mixer_output_map_control[1].name = capture_mixer_str;
|
||||||
channel_mixer_output_map_control[1].private_value =
|
channel_mixer_output_map_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_output_map_control,
|
&channel_mixer_output_map_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_output_map_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
@ -2554,6 +2561,15 @@ static int msm_pcm_add_channel_mixer_input_map_controls(
|
||||||
channel_mixer_input_map_control[0].name = playback_mixer_str;
|
channel_mixer_input_map_control[0].name = playback_mixer_str;
|
||||||
channel_mixer_input_map_control[0].private_value =
|
channel_mixer_input_map_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_input_map_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -2571,18 +2587,16 @@ static int msm_pcm_add_channel_mixer_input_map_controls(
|
||||||
channel_mixer_input_map_control[1].name = capture_mixer_str;
|
channel_mixer_input_map_control[1].name = capture_mixer_str;
|
||||||
channel_mixer_input_map_control[1].private_value =
|
channel_mixer_input_map_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_input_map_control,
|
&channel_mixer_input_map_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_input_map_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
@ -2660,6 +2674,15 @@ static int msm_pcm_add_channel_mixer_cfg_controls(
|
||||||
channel_mixer_cfg_control[0].name = playback_mixer_str;
|
channel_mixer_cfg_control[0].name = playback_mixer_str;
|
||||||
channel_mixer_cfg_control[0].private_value =
|
channel_mixer_cfg_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_cfg_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -2677,18 +2700,16 @@ static int msm_pcm_add_channel_mixer_cfg_controls(
|
||||||
channel_mixer_cfg_control[1].name = capture_mixer_str;
|
channel_mixer_cfg_control[1].name = capture_mixer_str;
|
||||||
channel_mixer_cfg_control[1].private_value =
|
channel_mixer_cfg_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8);
|
(rtd->dai_link->be_id) | (session_type << 8);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_cfg_control,
|
&channel_mixer_cfg_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_cfg_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
@ -2760,6 +2781,15 @@ static int msm_pcm_add_channel_mixer_weight_controls(
|
||||||
channel_mixer_weight_control[0].private_value =
|
channel_mixer_weight_control[0].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8)
|
(rtd->dai_link->be_id) | (session_type << 8)
|
||||||
| (channel << 16);
|
| (channel << 16);
|
||||||
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
|
&channel_mixer_weight_control[0],
|
||||||
|
1);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
|
__func__, ret);
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream != NULL) {
|
||||||
|
@ -2780,18 +2810,16 @@ static int msm_pcm_add_channel_mixer_weight_controls(
|
||||||
channel_mixer_weight_control[1].private_value =
|
channel_mixer_weight_control[1].private_value =
|
||||||
(rtd->dai_link->be_id) | (session_type << 8)
|
(rtd->dai_link->be_id) | (session_type << 8)
|
||||||
| (channel << 16);
|
| (channel << 16);
|
||||||
}
|
|
||||||
|
|
||||||
ret = snd_soc_add_platform_controls(rtd->platform,
|
ret = snd_soc_add_platform_controls(rtd->platform,
|
||||||
channel_mixer_weight_control,
|
&channel_mixer_weight_control[1],
|
||||||
ARRAY_SIZE
|
1);
|
||||||
(channel_mixer_weight_control));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_err("%s: failed add platform ctl, err = %d\n",
|
pr_err("%s: failed add platform ctl, err = %d\n",
|
||||||
__func__, ret);
|
__func__, ret);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
kfree(playback_mixer_str);
|
kfree(playback_mixer_str);
|
||||||
|
|
Loading…
Add table
Reference in a new issue