struct snd_dma_buffer *dmab,
                             struct snd_pcm_hw_params *params)
 {
+       const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata);
        struct hdac_bus *bus = sof_to_bus(sdev);
        struct hdac_stream *hstream = &stream->hstream;
        int sd_offset = SOF_STREAM_SD_OFFSET(hstream);
 
        /*
         * Recommended hardware programming sequence for HDAudio DMA format
+        * on earlier platforms - this is not needed on newer platforms
         *
         * 1. Put DMA into coupled mode by clearing PPCTL.PROCEN bit
         *    for corresponding stream index before the time of writing
         *    enable decoupled mode
         */
 
-       /* couple host and link DMA, disable DSP features */
-       snd_sof_dsp_update_bits(sdev, HDA_DSP_PP_BAR, SOF_HDA_REG_PP_PPCTL,
-                               mask, 0);
+       if (chip->quirks & SOF_INTEL_PROCEN_FMT_QUIRK) {
+               /* couple host and link DMA, disable DSP features */
+               snd_sof_dsp_update_bits(sdev, HDA_DSP_PP_BAR, SOF_HDA_REG_PP_PPCTL,
+                                       mask, 0);
+       }
 
        /* program stream format */
        snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
                                SOF_HDA_ADSP_REG_CL_SD_FORMAT,
                                0xffff, hstream->format_val);
 
-       /* decouple host and link DMA, enable DSP features */
-       snd_sof_dsp_update_bits(sdev, HDA_DSP_PP_BAR, SOF_HDA_REG_PP_PPCTL,
-                               mask, mask);
+       if (chip->quirks & SOF_INTEL_PROCEN_FMT_QUIRK) {
+               /* decouple host and link DMA, enable DSP features */
+               snd_sof_dsp_update_bits(sdev, HDA_DSP_PP_BAR, SOF_HDA_REG_PP_PPCTL,
+                                       mask, mask);
+       }
 
        /* program last valid index */
        snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,