swidget->tuples,
                                      swidget->num_tuples, sizeof(u32), 1);
                /* Set default DMA buffer size if it is not specified in topology */
-               if (!sps->dsp_max_burst_size_in_ms)
-                       sps->dsp_max_burst_size_in_ms = SOF_IPC4_MIN_DMA_BUFFER_SIZE;
+               if (!sps->dsp_max_burst_size_in_ms) {
+                       struct snd_sof_widget *pipe_widget = swidget->spipe->pipe_widget;
+                       struct sof_ipc4_pipeline *pipeline = pipe_widget->private;
+
+                       sps->dsp_max_burst_size_in_ms = pipeline->use_chain_dma ?
+                               SOF_IPC4_CHAIN_DMA_BUFFER_SIZE : SOF_IPC4_MIN_DMA_BUFFER_SIZE;
+               }
        } else {
                /* Capture data is copied from DSP to host in 1ms bursts */
                spcm->stream[dir].dsp_max_burst_size_in_ms = 1;
 
 /* FW requires minimum 4ms DMA buffer size */
 #define SOF_IPC4_MIN_DMA_BUFFER_SIZE   4
 
+/* ChainDMA in fw uses 5ms DMA buffer */
+#define SOF_IPC4_CHAIN_DMA_BUFFER_SIZE 5
+
 /*
  * The base of multi-gateways. Multi-gateways addressing starts from
  * ALH_MULTI_GTW_BASE and there are ALH_MULTI_GTW_COUNT multi-sources