ASoC: rt712-sdca: fix speaker route missing issue
authorShuming Fan <shumingf@realtek.com>
Mon, 30 Oct 2023 10:36:44 +0000 (18:36 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:59:37 +0000 (11:59 +0100)
[ Upstream commit 1a3b7eab8500a6b923f7b62cc8aa4d832c7dfb3e ]

Sometimes the codec probe would be called earlier than the hardware initialization.
Therefore, the speaker route should be added before the the first_hw_init check.

Signed-off-by: Shuming Fan <shumingf@realtek.com>
Fixes: f3da2ed110e2 ("ASoC: rt1712-sdca: enable pm_runtime in probe,  keep status as 'suspended'")?
Link: https://lore.kernel.org/r/20231030103644.1787948-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/rt712-sdca.c

index 7077ff6..6954fbe 100644 (file)
@@ -963,13 +963,6 @@ static int rt712_sdca_probe(struct snd_soc_component *component)
        rt712_sdca_parse_dt(rt712, &rt712->slave->dev);
        rt712->component = component;
 
-       if (!rt712->first_hw_init)
-               return 0;
-
-       ret = pm_runtime_resume(component->dev);
-       if (ret < 0 && ret != -EACCES)
-               return ret;
-
        /* add SPK route */
        if (rt712->hw_id != RT712_DEV_ID_713) {
                snd_soc_add_component_controls(component,
@@ -980,6 +973,13 @@ static int rt712_sdca_probe(struct snd_soc_component *component)
                        rt712_sdca_spk_dapm_routes, ARRAY_SIZE(rt712_sdca_spk_dapm_routes));
        }
 
+       if (!rt712->first_hw_init)
+               return 0;
+
+       ret = pm_runtime_resume(component->dev);
+       if (ret < 0 && ret != -EACCES)
+               return ret;
+
        return 0;
 }