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

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

ASoC: wm_hubs: Push check for idle_bias_off out into drivers



For later wm_hubs devices we have much less need to keep the biases up
even when using single ended line outputs so flag idle_bias_off for
everything except the WM8993 and WM8994.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 5aa44b13
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1622,6 +1622,12 @@ static int wm8993_probe(struct snd_soc_codec *codec)
	wm_hubs_add_analogue_routes(codec, wm8993->pdata.lineout1_diff,
				    wm8993->pdata.lineout2_diff);

	/* If the line outputs are differential then we aren't presenting
	 * VMID as an output and can disable it.
	 */
	if (wm8993->pdata.lineout1_diff && wm8993->pdata.lineout2_diff)
		codec->dapm.idle_bias_off = 1;

	return 0;

}
+8 −0
Original line number Diff line number Diff line
@@ -3396,10 +3396,18 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
	pm_runtime_enable(codec->dev);
	pm_runtime_resume(codec->dev);

	/* By default use idle_bias_off, will override for WM8994 */
	codec->dapm.idle_bias_off = 1;

	/* Set revision-specific configuration */
	wm8994->revision = snd_soc_read(codec, WM8994_CHIP_REVISION);
	switch (control->type) {
	case WM8994:
		/* Single ended line outputs should have VMID on. */
		if (!wm8994->pdata->lineout1_diff ||
		    !wm8994->pdata->lineout2_diff)
			codec->dapm.idle_bias_off = 0;

		switch (wm8994->revision) {
		case 2:
		case 3:
+0 −6
Original line number Diff line number Diff line
@@ -952,12 +952,6 @@ int wm_hubs_handle_analogue_pdata(struct snd_soc_codec *codec,
				    WM8993_LINEOUT2_MODE,
				    WM8993_LINEOUT2_MODE);

	/* If the line outputs are differential then we aren't presenting
	 * VMID as an output and can disable it.
	 */
	if (lineout1_diff && lineout2_diff)
		codec->dapm.idle_bias_off = 1;

	if (lineout1fb)
		snd_soc_update_bits(codec, WM8993_ADDITIONAL_CONTROL,
				    WM8993_LINEOUT1_FB, WM8993_LINEOUT1_FB);