Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9917191 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 7baccc0c on remote branch

Change-Id: I6be0b8e8dbac5209113d0aeda3dcb4016beaadfe
parents 43c4367c 7baccc0c
Loading
Loading
Loading
Loading
+650 −77

File changed.

Preview size limit exceeded, changes collapsed.

+2 −1
Original line number Diff line number Diff line
@@ -533,6 +533,7 @@ static int clk_id_index;
static int clk_root_index;
static int clk_attri_index;
static int global_dyn_mclk_cfg_portid;
static bool jitter_cleaner_enable = false; // jitter cleaner ext clock enable/disable
struct afe_param_id_clock_set_v2_t global_dyn_mclk_cfg = {
	.clk_set_minor_version = Q6AFE_LPASS_CLK_CONFIG_API_VERSION,
	.clk_id = Q6AFE_LPASS_CLK_ID_TER_PCM_IBIT,
@@ -10755,7 +10756,7 @@ static int msm_dai_q6_dai_tdm_probe(struct snd_soc_dai *dai)
	}

	/* add AFE dyn mclk controls */
	if (!afe_dyn_mclk_control_added) {
	if ((!afe_dyn_mclk_control_added) && (jitter_cleaner_enable)) {
		rc = msm_pcm_add_afe_dyn_mclk_control(dai);
		if (rc < 0) {
			dev_err(dai->dev, "%s: add AFE dyn mclk control failed DAI: %s\n",
+23 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
 */
#include <linux/init.h>
#include <linux/err.h>
@@ -782,6 +782,13 @@ static int msm_lsm_reg_model(struct snd_pcm_substream *substream,

		q6lsm_sm_set_param_data(client, p_info, &offset, sm);

		if ((sm->size - offset) < p_info->param_size) {
			dev_err(rtd->dev, "%s: user buff size is greater than expected\n",
				__func__);
			rc = -EINVAL;
			goto err_copy;
		}

		/*
		 * For set_param, advance the sound model data with the
		 * number of bytes required by param_data.
@@ -2318,6 +2325,7 @@ static int msm_lsm_ioctl_compat(struct snd_pcm_substream *substream,
	case SNDRV_LSM_GET_MODULE_PARAMS_32: {
		struct lsm_params_get_info_32 p_info_32, *param_info_rsp = NULL;
		struct lsm_params_get_info *p_info = NULL;
		prtd->lsm_client->get_param_payload = NULL;

		memset(&p_info_32, 0 , sizeof(p_info_32));
		if (!prtd->lsm_client->use_topology) {
@@ -2368,6 +2376,7 @@ static int msm_lsm_ioctl_compat(struct snd_pcm_substream *substream,
				__func__, err);
			kfree(p_info);
			kfree(prtd->lsm_client->get_param_payload);
			prtd->lsm_client->get_param_payload = NULL;
			goto done;
		}

@@ -2378,6 +2387,7 @@ static int msm_lsm_ioctl_compat(struct snd_pcm_substream *substream,
			err = -ENOMEM;
			kfree(p_info);
			kfree(prtd->lsm_client->get_param_payload);
			prtd->lsm_client->get_param_payload = NULL;
			goto done;
		}

@@ -2402,6 +2412,7 @@ static int msm_lsm_ioctl_compat(struct snd_pcm_substream *substream,
		kfree(p_info);
		kfree(param_info_rsp);
		kfree(prtd->lsm_client->get_param_payload);
		prtd->lsm_client->get_param_payload = NULL;
		break;
	}
	case SNDRV_LSM_REG_SND_MODEL_V2:
@@ -2628,6 +2639,7 @@ static int msm_lsm_ioctl(struct snd_pcm_substream *substream,

	case SNDRV_LSM_GET_MODULE_PARAMS: {
		struct lsm_params_get_info temp_p_info, *p_info = NULL;
		prtd->lsm_client->get_param_payload = NULL;

		memset(&temp_p_info, 0, sizeof(temp_p_info));
		if (!prtd->lsm_client->use_topology) {
@@ -2646,6 +2658,15 @@ static int msm_lsm_ioctl(struct snd_pcm_substream *substream,
			err = -EFAULT;
			goto done;
		}

		if (temp_p_info.param_size > 0 &&
			((INT_MAX - sizeof(temp_p_info)) <
				temp_p_info.param_size)) {
			pr_err("%s: Integer overflow\n", __func__);
			err = -EINVAL;
			goto done;
		}

		size = sizeof(temp_p_info) +  temp_p_info.param_size;
		p_info = kzalloc(size, GFP_KERNEL);

@@ -2699,6 +2720,7 @@ static int msm_lsm_ioctl(struct snd_pcm_substream *substream,
free:
		kfree(p_info);
		kfree(prtd->lsm_client->get_param_payload);
		prtd->lsm_client->get_param_payload = NULL;
		break;
	}
	case SNDRV_LSM_EVENT_STATUS:
+7 −0
Original line number Diff line number Diff line
@@ -745,6 +745,13 @@ void hpcm_notify_evt_processing(uint8_t *data, char *session,
		return;
	}

	if (prtd->mixer_conf.sess_indx < VOICE_INDEX ||
		prtd->mixer_conf.sess_indx >= MAX_SESSION) {
		pr_err("%s:: Invalid session idx %d\n",
			__func__, prtd->mixer_conf.sess_indx);
		return;
	}

	if (notify_evt->tap_point == VSS_IVPCM_TAP_POINT_TX_DEFAULT) {
		tp = &prtd->session[prtd->mixer_conf.sess_indx].tx_tap_point;
		tmd = &prtd->mixer_conf.tx;
+150 −23
Original line number Diff line number Diff line
@@ -32500,8 +32500,13 @@ static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
				    struct snd_ctl_elem_info *uinfo)
{
	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,12 +32516,25 @@ 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 = -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_debug("%s: Error getting Source Tracking Params, err=%d\n",
			pr_err("%s: Error getting Source Tracking Params, err=%d\n",
				__func__, ret);
			ret = -EINVAL;
@@ -32524,7 +32542,7 @@ static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
		}
		memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
			sizeof(struct source_tracking_param));
	}
done:
	return ret;
}
@@ -32724,12 +32742,18 @@ static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
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;
	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,6 +32772,18 @@ static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
		goto done;
	}
	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;
		}
		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",
@@ -32756,9 +32792,9 @@ static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
			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[] = {
Loading