static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev)
 {
-       struct hdac_bus *bus = sof_to_bus(sdev);
        int retry = HDA_DSP_REG_POLL_RETRY_COUNT;
 
-       while (snd_hdac_chip_readb(bus, VS_D0I3C) & SOF_HDA_VS_D0I3C_CIP) {
+       while (snd_sof_dsp_readb(sdev, HDA_DSP_HDA_BAR, SOF_HDA_VS_D0I3C) & SOF_HDA_VS_D0I3C_CIP) {
                if (!retry--)
                        return -ETIMEDOUT;
                usleep_range(10, 15);
 {
        struct hdac_bus *bus = sof_to_bus(sdev);
        int ret;
+       u8 reg;
 
        /* Write to D0I3C after Command-In-Progress bit is cleared */
        ret = hda_dsp_wait_d0i3c_done(sdev);
        }
 
        /* Update D0I3C register */
-       snd_hdac_chip_updateb(bus, VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
+       snd_sof_dsp_updateb(sdev, HDA_DSP_HDA_BAR,
+                           SOF_HDA_VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
 
        /* Wait for cmd in progress to be cleared before exiting the function */
        ret = hda_dsp_wait_d0i3c_done(sdev);
                return ret;
        }
 
-       trace_sof_intel_D0I3C_updated(sdev, snd_hdac_chip_readb(bus, VS_D0I3C));
+       reg = snd_sof_dsp_readb(sdev, HDA_DSP_HDA_BAR, SOF_HDA_VS_D0I3C);
+       trace_sof_intel_D0I3C_updated(sdev, reg);
 
        return 0;
 }