]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
authorCodrin Ciubotariu <codrin.ciubotariu@microchip.com>
Mon, 7 Mar 2022 12:21:57 +0000 (14:21 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 27 Apr 2022 09:57:22 +0000 (11:57 +0200)
BugLink: https://bugs.launchpad.net/bugs/1969110
[ Upstream commit 9a1e13440a4f2e7566fd4c5eae6a53e6400e08a4 ]

Even if struct snd_dmaengine_pcm_config is used, prepare_slave_config()
callback might not be set. Check if this callback is set before using it.

Fixes: fa654e085300 ("ASoC: dmaengine-pcm: Provide default config")
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Link: https://lore.kernel.org/r/20220307122202.2251639-2-codrin.ciubotariu@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 1ecf9dcf2868aa3f9777ddfdc8d52c47ce0cf93e)
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
sound/soc/soc-generic-dmaengine-pcm.c

index 4aa48c74f21a0172254f5a53fdcec9af383dc4fb..38f3f36c1d729cac287eb38f35b9556356c26da7 100644 (file)
@@ -82,10 +82,10 @@ static int dmaengine_pcm_hw_params(struct snd_soc_component *component,
 
        memset(&slave_config, 0, sizeof(slave_config));
 
-       if (!pcm->config)
-               prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config;
-       else
+       if (pcm->config && pcm->config->prepare_slave_config)
                prepare_slave_config = pcm->config->prepare_slave_config;
+       else
+               prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config;
 
        if (prepare_slave_config) {
                int ret = prepare_slave_config(substream, params, &slave_config);