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

Commit a5302181 authored by Liam Girdwood's avatar Liam Girdwood Committed by Jaroslav Kysela
Browse files

ALSA: asoc: core - refactored DAPM pin control API.



Refactored snd_soc_dapm_set_endpoint() to snd_soc_dapm_enable_pin() and
snd_soc_dapm_disable_pin().

Renamed snd_soc_dapm_sync_endpoints() to snd_soc_dapm_sync().
Renamed snd_soc_dapm_get_endpoint_status() to
snd_soc_dapm_get_pin_status().

Signed-off-by: default avatarLiam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent be321a89
Loading
Loading
Loading
Loading
+5 −10
Original line number Diff line number Diff line
@@ -234,16 +234,11 @@ int snd_soc_dapm_set_bias_level(struct snd_soc_device *socdev,
/* dapm sys fs - used by the core */
int snd_soc_dapm_sys_add(struct device *dev);

/* event handler for register modifier widget - used by the soc-dapm */
int dapm_reg_event(struct snd_soc_dapm_widget *w,
		   struct snd_kcontrol *kcontrol, int event);

/* dapm audio endpoint control */
int snd_soc_dapm_set_endpoint(struct snd_soc_codec *codec,
	char *pin, int status);
int snd_soc_dapm_get_endpoint_status(struct snd_soc_codec *codec,
	char *pin);
int snd_soc_dapm_sync_endpoints(struct snd_soc_codec *codec);
/* dapm audio pin control and status */
int snd_soc_dapm_enable_pin(struct snd_soc_codec *codec, char *pin);
int snd_soc_dapm_disable_pin(struct snd_soc_codec *codec, char *pin);
int snd_soc_dapm_get_pin_status(struct snd_soc_codec *codec, char *pin);
int snd_soc_dapm_sync(struct snd_soc_codec *codec);

/* dapm widget types */
enum snd_soc_dapm_type {
+5 −5
Original line number Diff line number Diff line
@@ -216,14 +216,14 @@ static int eti_b1_wm8731_init(struct snd_soc_codec *codec)
	snd_soc_dapm_add_route(codec, intercon, ARRAY_SIZE(intercon));

	/* not connected */
	snd_soc_dapm_set_endpoint(codec, "RLINEIN", 0);
	snd_soc_dapm_set_endpoint(codec, "LLINEIN", 0);
	snd_soc_dapm_disable_pin(codec, "RLINEIN");
	snd_soc_dapm_disable_pin(codec, "LLINEIN");

	/* always connected */
	snd_soc_dapm_set_endpoint(codec, "Int Mic", 1);
	snd_soc_dapm_set_endpoint(codec, "Ext Spk", 1);
	snd_soc_dapm_enable_pin(codec, "Int Mic");
	snd_soc_dapm_enable_pin(codec, "Ext Spk");

	snd_soc_dapm_sync_endpoints(codec);
	snd_soc_dapm_sync(codec);

	return 0;
}
+2 −2
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@
 *  ---------------------------------------
 *
 *  Hence the machine layer should disable unsupported inputs/outputs by
 *  snd_soc_dapm_set_endpoint(codec, "MONO_LOUT", 0), etc.
 *  snd_soc_dapm_disable_pin(codec, "MONO_LOUT"), etc.
 */

#include <linux/module.h>
@@ -206,7 +206,7 @@ static int snd_soc_dapm_put_volsw_aic3x(struct snd_kcontrol *kcontrol,
		}

		if (found)
			snd_soc_dapm_sync_endpoints(widget->codec);
			snd_soc_dapm_sync(widget->codec);
	}

	ret = snd_soc_update_bits(widget->codec, reg, val_mask, val);
+8 −8
Original line number Diff line number Diff line
@@ -103,17 +103,17 @@ static int evm_aic3x_init(struct snd_soc_codec *codec)
	snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map));

	/* not connected */
	snd_soc_dapm_set_endpoint(codec, "MONO_LOUT", 0);
	snd_soc_dapm_set_endpoint(codec, "HPLCOM", 0);
	snd_soc_dapm_set_endpoint(codec, "HPRCOM", 0);
	snd_soc_dapm_disable_pin(codec, "MONO_LOUT");
	snd_soc_dapm_disable_pin(codec, "HPLCOM");
	snd_soc_dapm_disable_pin(codec, "HPRCOM");

	/* always connected */
	snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
	snd_soc_dapm_set_endpoint(codec, "Line Out", 1);
	snd_soc_dapm_set_endpoint(codec, "Mic Jack", 1);
	snd_soc_dapm_set_endpoint(codec, "Line In", 1);
	snd_soc_dapm_enable_pin(codec, "Headphone Jack");
	snd_soc_dapm_enable_pin(codec, "Line Out");
	snd_soc_dapm_enable_pin(codec, "Mic Jack");
	snd_soc_dapm_enable_pin(codec, "Line In");

	snd_soc_dapm_sync_endpoints(codec);
	snd_soc_dapm_sync(codec);

	return 0;
}
+19 −8
Original line number Diff line number Diff line
@@ -50,11 +50,22 @@ static int n810_dmic_func;

static void n810_ext_control(struct snd_soc_codec *codec)
{
	snd_soc_dapm_set_endpoint(codec, "Ext Spk", n810_spk_func);
	snd_soc_dapm_set_endpoint(codec, "Headphone Jack", n810_jack_func);
	snd_soc_dapm_set_endpoint(codec, "DMic", n810_dmic_func);
	if (n810_spk_func)
		snd_soc_dapm_enable_pin(codec, "Ext Spk");
	else
		snd_soc_dapm_disable_pin(codec, "Ext Spk");

	if (n810_jack_func)
		snd_soc_dapm_enable_pin(codec, "Headphone Jack");
	else
		snd_soc_dapm_disable_pin(codec, "Headphone Jack");

	if (n810_dmic_func)
		snd_soc_dapm_enable_pin(codec, "DMic");
	else
		snd_soc_dapm_disable_pin(codec, "DMic);

	snd_soc_dapm_sync_endpoints(codec);
	snd_soc_dapm_sync(codec);
}

static int n810_startup(struct snd_pcm_substream *substream)
@@ -236,9 +247,9 @@ static int n810_aic33_init(struct snd_soc_codec *codec)
	int i, err;

	/* Not connected */
	snd_soc_dapm_set_endpoint(codec, "MONO_LOUT", 0);
	snd_soc_dapm_set_endpoint(codec, "HPLCOM", 0);
	snd_soc_dapm_set_endpoint(codec, "HPRCOM", 0);
	snd_soc_dapm_disable_pin(codec, "MONO_LOUT");
	snd_soc_dapm_disable_pin(codec, "HPLCOM");
	snd_soc_dapm_disable_pin(codec, "HPRCOM");

	/* Add N810 specific controls */
	for (i = 0; i < ARRAY_SIZE(aic33_n810_controls); i++) {
@@ -255,7 +266,7 @@ static int n810_aic33_init(struct snd_soc_codec *codec)
	/* Set up N810 specific audio path audio_map */
	snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map));

	snd_soc_dapm_sync_endpoints(codec);
	snd_soc_dapm_sync(codec);

	return 0;
}
Loading