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

Commit de050aca authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: wm_hubs: Make sure we don't disable differential line outputs



While we need to clean up unused single ended line outputs we don't want
to do this if the outputs are in differential mode.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 1a38336b
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -1035,7 +1035,7 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
			    enum snd_soc_bias_level level)
{
	struct wm_hubs_data *hubs = snd_soc_codec_get_drvdata(codec);
	int val;
	int mask, val;

	switch (level) {
	case SND_SOC_BIAS_STANDBY:
@@ -1047,6 +1047,13 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
	case SND_SOC_BIAS_ON:
		/* Turn off any unneded single ended outputs */
		val = 0;
		mask = 0;

		if (hubs->lineout1_se)
			mask |= WM8993_LINEOUT1N_ENA | WM8993_LINEOUT1P_ENA;

		if (hubs->lineout2_se)
			mask |= WM8993_LINEOUT2N_ENA | WM8993_LINEOUT2P_ENA;

		if (hubs->lineout1_se && hubs->lineout1n_ena)
			val |= WM8993_LINEOUT1N_ENA;
@@ -1061,11 +1068,7 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
			val |= WM8993_LINEOUT2P_ENA;

		snd_soc_update_bits(codec, WM8993_POWER_MANAGEMENT_3,
				    WM8993_LINEOUT1N_ENA |
				    WM8993_LINEOUT1P_ENA |
				    WM8993_LINEOUT2N_ENA |
				    WM8993_LINEOUT2P_ENA,
				    val);
				    mask, val);

		/* Remove the input clamps */
		snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG,