| From c0e1a7583d4a704691ddaed0e95d5be11ac6d05d Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?=EC=9D=B4=EA=B2=BD=ED=83=9D?= <gt82.lee@samsung.com> |
| Date: Tue, 31 Mar 2020 16:55:16 +0900 |
| Subject: [PATCH] ASoC: dapm: connect virtual mux with default value |
| |
| commit 3bbbb7728fc853d71dbce4073fef9f281fbfb4dd upstream. |
| |
| Since a virtual mixer has no backing registers |
| to decide which path to connect, |
| it will try to match with initial state. |
| This is to ensure that the default mixer choice will be |
| correctly powered up during initialization. |
| Invert flag is used to select initial state of the virtual switch. |
| Since actual hardware can't be disconnected by virtual switch, |
| connected is better choice as initial state in many cases. |
| |
| Signed-off-by: Gyeongtaek Lee <gt82.lee@samsung.com> |
| Link: https://lore.kernel.org/r/01a301d60731$b724ea10$256ebe30$@samsung.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c |
| index da85742a3a89..c79545a55e5f 100644 |
| --- a/sound/soc/soc-dapm.c |
| +++ b/sound/soc/soc-dapm.c |
| @@ -801,7 +801,13 @@ static void dapm_set_mixer_path_status(struct snd_soc_dapm_path *p, int i, |
| val = max - val; |
| p->connect = !!val; |
| } else { |
| - p->connect = 0; |
| + /* since a virtual mixer has no backing registers to |
| + * decide which path to connect, it will try to match |
| + * with initial state. This is to ensure |
| + * that the default mixer choice will be |
| + * correctly powered up during initialization. |
| + */ |
| + p->connect = invert; |
| } |
| } |
| |
| -- |
| 2.7.4 |
| |