]> xenbits.xensource.com Git - people/aperard/linux.git/commitdiff
ASoC: soc-generic-dmaengine-pcm: separate max_buffer_size assignment
authorShengjiu Wang <shengjiu.wang@nxp.com>
Thu, 20 Jan 2022 02:44:02 +0000 (10:44 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 24 Jan 2022 13:31:57 +0000 (13:31 +0000)
The config->pcm_hardware may be NULL when config->prealloc_buffer_size
is not zero, so it is better to move max_buffer_size assignment under
a separate condition.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1642646642-15908-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-generic-dmaengine-pcm.c

index c54c8ca8d71569edf37748b70ea9b882fa2cc100..8659cb1794f173a15797fcda68cb706924aad606 100644 (file)
@@ -237,13 +237,15 @@ static int dmaengine_pcm_new(struct snd_soc_component *component,
        size_t max_buffer_size;
        unsigned int i;
 
-       if (config && config->prealloc_buffer_size) {
+       if (config && config->prealloc_buffer_size)
                prealloc_buffer_size = config->prealloc_buffer_size;
-               max_buffer_size = config->pcm_hardware->buffer_bytes_max;
-       } else {
+       else
                prealloc_buffer_size = prealloc_buffer_size_kbytes * 1024;
+
+       if (config && config->pcm_hardware && config->pcm_hardware->buffer_bytes_max)
+               max_buffer_size = config->pcm_hardware->buffer_bytes_max;
+       else
                max_buffer_size = SIZE_MAX;
-       }
 
        for_each_pcm_streams(i) {
                struct snd_pcm_substream *substream = rtd->pcm->streams[i].substream;