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

Commit 6133fd38 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: msm: qdsp6v2: Enable AFE sidetone based on mixer ctl setting"

parents ac82b09c 74934756
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1937,7 +1937,6 @@ static bool wcd934x_is_volatile_register(struct device *dev, unsigned int reg)
	case WCD934X_BIAS_VBG_FINE_ADJ:
	case WCD934X_CODEC_CPR_SVS_CX_VDD:
	case WCD934X_CODEC_CPR_SVS2_CX_VDD:
	case WCD934X_CDC_TOP_TOP_CFG1:
	case WCD934X_CDC_CLK_RST_CTRL_FS_CNT_CONTROL:
		return true;
	}
+4 −7
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ static const int s_button_map[] = {
};

/* The opened devices container */
static int s_opened_devs[MAX_DEVS_NUMBER];
static atomic_t s_opened_devs[MAX_DEVS_NUMBER];

static struct wakeup_source usf_wakeup_source;

@@ -2348,14 +2348,11 @@ static uint16_t add_opened_dev(int minor)
	uint16_t ind = 0;

	for (ind = 0; ind < MAX_DEVS_NUMBER; ++ind) {
		if (minor == s_opened_devs[ind]) {
		if (minor == atomic_cmpxchg(&s_opened_devs[ind], 0, minor)) {
			pr_err("%s: device %d is already opened\n",
			       __func__, minor);
			return USF_UNDEF_DEV_ID;
		}

		if (s_opened_devs[ind] == 0) {
			s_opened_devs[ind] = minor;
		} else {
			pr_debug("%s: device %d is added; ind=%d\n",
				__func__, minor, ind);
			return ind;
@@ -2410,7 +2407,7 @@ static int usf_release(struct inode *inode, struct file *file)
	usf_disable(&usf->usf_tx);
	usf_disable(&usf->usf_rx);

	s_opened_devs[usf->dev_ind] = 0;
	atomic_set(&s_opened_devs[usf->dev_ind], 0);

	wakeup_source_trash(&usf_wakeup_source);
	mutex_unlock(&usf->mutex);
+14 −15
Original line number Diff line number Diff line
@@ -515,19 +515,19 @@ struct apr_svc *apr_register(char *dest, char *svc_name, apr_fn svc_fn,
			mutex_unlock(&svc->m_lock);
			return NULL;
		}
		if (!svc->port_cnt && !svc->svc_cnt)
		if (!svc->svc_cnt)
			clnt->svc_cnt++;
		svc->port_cnt++;
		svc->port_fn[temp_port] = svc_fn;
		svc->port_priv[temp_port] = priv;
		svc->svc_cnt++;
	} else {
		if (!svc->fn) {
			if (!svc->port_cnt && !svc->svc_cnt)
			if (!svc->svc_cnt)
				clnt->svc_cnt++;
			svc->fn = svc_fn;
			if (svc->port_cnt)
				svc->svc_cnt++;
			svc->priv = priv;
			svc->svc_cnt++;
		}
	}

@@ -746,29 +746,28 @@ int apr_deregister(void *handle)
	if (!handle)
		return -EINVAL;

	if (!svc->svc_cnt) {
		pr_err("%s: svc already deregistered. svc = %pK\n",
			__func__, svc);
		return -EINVAL;
	}

	mutex_lock(&svc->m_lock);
	dest_id = svc->dest_id;
	client_id = svc->client_id;
	clnt = &client[dest_id][client_id];

	if (svc->port_cnt > 0 || svc->svc_cnt > 0) {
	if (svc->svc_cnt > 0) {
		if (svc->port_cnt)
			svc->port_cnt--;
		else if (svc->svc_cnt)
		svc->svc_cnt--;
		if (!svc->port_cnt && !svc->svc_cnt) {
		if (!svc->svc_cnt) {
			client[dest_id][client_id].svc_cnt--;
			svc->need_reset = 0x0;
		}
	} else if (client[dest_id][client_id].svc_cnt > 0) {
		client[dest_id][client_id].svc_cnt--;
		if (!client[dest_id][client_id].svc_cnt) {
			svc->need_reset = 0x0;
			pr_debug("%s: service is reset %pK\n", __func__, svc);
		}
	}

	if (!svc->port_cnt && !svc->svc_cnt) {
	if (!svc->svc_cnt) {
		svc->priv = NULL;
		svc->id = 0;
		svc->fn = NULL;
+1 −1
Original line number Diff line number Diff line
@@ -4941,7 +4941,7 @@ static int tasha_codec_enable_spline_src(struct snd_soc_codec *codec,
					 int src_num,
					 int event)
{
	u16 src_paired_reg;
	u16 src_paired_reg = 0;
	struct tasha_priv *tasha;
	u16 rx_path_cfg_reg = WCD9335_CDC_RX1_RX_PATH_CFG0;
	u16 rx_path_ctl_reg = WCD9335_CDC_RX1_RX_PATH_CTL;
+9 −8
Original line number Diff line number Diff line
@@ -5473,7 +5473,7 @@ static int tavil_mad_input_put(struct snd_kcontrol *kcontrol,
	u32 adc, i, mic_bias_found = 0;
	int ret = 0;
	char *mad_input;
	bool is_adc2_input = false;
	bool is_adc_input = false;

	tavil_mad_input = ucontrol->value.integer.value[0];

@@ -5521,8 +5521,7 @@ static int tavil_mad_input_put(struct snd_kcontrol *kcontrol,
		snprintf(mad_amic_input_widget, 6, "%s%u", "AMIC", adc);

		mad_input_widget = mad_amic_input_widget;
		if (adc == 2)
			is_adc2_input = true;
		is_adc_input = true;
	} else {
		/* DMIC type input widget*/
		mad_input_widget = tavil_conn_mad_text[tavil_mad_input];
@@ -5530,7 +5529,7 @@ static int tavil_mad_input_put(struct snd_kcontrol *kcontrol,

	dev_dbg(codec->dev,
		"%s: tavil input widget = %s, adc_input = %s\n", __func__,
		mad_input_widget, is_adc2_input ? "true" : "false");
		mad_input_widget, is_adc_input ? "true" : "false");

	for (i = 0; i < card->num_of_dapm_routes; i++) {
		if (!strcmp(card->of_dapm_routes[i].sink, mad_input_widget)) {
@@ -5575,8 +5574,8 @@ static int tavil_mad_input_put(struct snd_kcontrol *kcontrol,
			    0x0F, tavil_mad_input);
	snd_soc_update_bits(codec, WCD934X_ANA_MAD_SETUP,
			    0x07, mic_bias_found);
	/* for adc2 input, mad should be in micbias mode with BG enabled */
	if (is_adc2_input)
	/* for all adc inputs, mad should be in micbias mode with BG enabled */
	if (is_adc_input)
		snd_soc_update_bits(codec, WCD934X_ANA_MAD_SETUP,
				    0x88, 0x88);
	else
@@ -8578,6 +8577,7 @@ static const struct tavil_reg_mask_val tavil_codec_reg_init_common_val[] = {
	{WCD934X_TLMM_DMIC3_CLK_PINCFG, 0xFF, 0x0a},
	{WCD934X_TLMM_DMIC3_DATA_PINCFG, 0xFF, 0x0a},
	{WCD934X_CPE_SS_SVA_CFG, 0x60, 0x00},
	{WCD934X_CPE_SS_CPAR_CFG, 0x10, 0x10},
};

static void tavil_codec_init_reg(struct tavil_priv *priv)
@@ -9072,6 +9072,7 @@ static int tavil_device_down(struct wcd9xxx *wcd9xxx)

	codec = (struct snd_soc_codec *)(wcd9xxx->ssr_priv);
	priv = snd_soc_codec_get_drvdata(codec);
	if (priv->swr.ctrl_data)
		swrm_wcd_notify(priv->swr.ctrl_data[0].swr_pdev,
				SWR_DEVICE_DOWN, NULL);
	tavil_dsd_reset(priv->dsd_config);
Loading