Merge c011875a23 on remote branch

Change-Id: I366f5b9a0512e5ed51a99a78e9916e8ce5358a5f
This commit is contained in:
Linux Build Service Account 2023-10-02 21:12:23 -07:00
commit 65170a1b6d
2 changed files with 159 additions and 23 deletions

View file

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <linux/slab.h>
@ -1002,6 +1003,14 @@ int msm_audio_effects_pbe_handler(struct audio_client *ac,
pbe->config.reserved =
GET_NEXT(values, param_max_offset, rc);
if ((pbe->config.bandpass_filter_order > 3) ||
(pbe->config.bandpass_filter_order < 1)) {
pr_err("%s: Invalid BPF order\n",
__func__);
rc = -EINVAL;
goto invalid_config;
}
p_coeffs = &pbe->config.p1LowPassCoeffs[0];
lpf_len = (pbe->config.xover_filter_order == 3) ? 10 : 5;
hpf_len = (pbe->config.xover_filter_order == 3) ? 10 : 5;

View file

@ -32500,8 +32500,13 @@ done:
static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{
uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
uinfo->count = sizeof(struct source_tracking_param);
if (strnstr(kcontrol->id.name, "FNN", sizeof("FNN"))) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
uinfo->count = sizeof(struct fluence_nn_source_tracking_param);
} else {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
uinfo->count = sizeof(struct source_tracking_param);
}
return 0;
}
@ -32511,20 +32516,33 @@ static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
{
int ret = 0;
struct source_tracking_param sourceTrackingData;
struct fluence_nn_source_tracking_param FnnSourceTrackingData;
memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
if (strnstr(kcontrol->id.name, "FNN", sizeof("FNN"))) {
memset(&FnnSourceTrackingData, 0, sizeof(struct fluence_nn_source_tracking_param));
ret = voc_get_fnn_source_tracking(&FnnSourceTrackingData);
if (ret) {
pr_err("%s: Error getting FNN ST Params, err=%d\n",
__func__, ret);
ret = voc_get_source_tracking(&sourceTrackingData);
if (ret) {
pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
__func__, ret);
ret = -EINVAL;
goto done;
}
memcpy(ucontrol->value.bytes.data, (void *)&FnnSourceTrackingData,
sizeof(struct fluence_nn_source_tracking_param));
} else {
memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
ret = voc_get_source_tracking(&sourceTrackingData);
if (ret) {
pr_err("%s: Error getting Source Tracking Params, err=%d\n",
__func__, ret);
ret = -EINVAL;
goto done;
ret = -EINVAL;
goto done;
}
memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
sizeof(struct source_tracking_param));
}
memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
sizeof(struct source_tracking_param));
done:
return ret;
}
@ -32724,12 +32742,18 @@ done:
static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
int ret = 0;
int ret = -EINVAL;
struct source_tracking_param sourceTrackingData;
struct fluence_nn_source_tracking_param FnnSourceTrackingData;
int port_id, copp_idx;
ret = msm_audio_sound_focus_derive_port_id(kcontrol,
"Source Tracking Audio Tx ", &port_id);
if (strnstr(kcontrol->id.name, "FNN", sizeof("FNN"))) {
ret = msm_audio_sound_focus_derive_port_id(kcontrol,
"FNN STM Audio Tx ", &port_id);
} else {
ret = msm_audio_sound_focus_derive_port_id(kcontrol,
"Source Tracking Audio Tx ", &port_id);
}
if (ret) {
pr_err("%s: Error in deriving port id, err=%d\n",
__func__, ret);
@ -32748,17 +32772,29 @@ static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
goto done;
}
ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
if (ret) {
pr_err("%s: Error getting Source Tracking Params, err=%d\n",
__func__, ret);
if (strnstr(kcontrol->id.name, "FNN", sizeof("FNN"))) {
ret = adm_get_fnn_source_tracking(port_id, copp_idx, &FnnSourceTrackingData);
if (ret) {
pr_err("%s: Error getting FNN STM Params, err=%d\n",
__func__, ret);
ret = -EINVAL;
goto done;
}
ret = -EINVAL;
goto done;
}
memcpy(ucontrol->value.bytes.data, (void *)&FnnSourceTrackingData,
sizeof(struct fluence_nn_source_tracking_param));
} else {
ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
if (ret) {
pr_err("%s: Error getting Source Tracking Params, err=%d\n",
__func__, ret);
memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
ret = -EINVAL;
goto done;
}
memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
sizeof(struct source_tracking_param));
}
done:
return ret;
@ -32833,6 +32869,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Voice Tx SLIMBUS_0",
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32848,6 +32891,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Audio Tx SLIMBUS_0",
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32863,6 +32913,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Voice Tx TERT_MI2S",
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32878,6 +32935,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Audio Tx TERT_MI2S",
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32893,6 +32957,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Voice Tx INT3_MI2S",
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32908,6 +32979,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Audio Tx INT3_MI2S",
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32923,6 +33001,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Voice Tx VA_CDC_DMA_TX_0",
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32938,6 +33023,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Audio Tx VA_CDC_DMA_TX_0",
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32953,6 +33045,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Voice Tx TX_CDC_DMA_TX_3",
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32968,6 +33067,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Audio Tx TX_CDC_DMA_TX_3",
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32983,6 +33089,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Voice Tx QUIN_TDM_TX_0",
.info = msm_source_tracking_info,
.get = msm_voice_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -32998,6 +33111,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Audio Tx QUIN_TDM_TX_0",
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@ -33013,6 +33133,13 @@ static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "FNN STM Audio Tx PRIMARY_TDM",
.info = msm_source_tracking_info,
.get = msm_audio_source_tracking_get,
},
};
static const struct snd_kcontrol_new msm_source_doa_tracking_controls[] = {