const struct intel_crtc_state *crtc_state)
 {
        struct drm_i915_private *i915 = to_i915(encoder->base.dev);
-       struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
-       enum pipe pipe = crtc->pipe;
+       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
        unsigned int hblank_early_prog, samples_room;
        unsigned int val;
 
        val = intel_de_read(i915, AUD_CONFIG_BE);
 
        if (DISPLAY_VER(i915) == 11)
-               val |= HBLANK_EARLY_ENABLE_ICL(pipe);
+               val |= HBLANK_EARLY_ENABLE_ICL(cpu_transcoder);
        else if (DISPLAY_VER(i915) >= 12)
-               val |= HBLANK_EARLY_ENABLE_TGL(pipe);
+               val |= HBLANK_EARLY_ENABLE_TGL(cpu_transcoder);
 
        if (crtc_state->dsc.compression_enable &&
            crtc_state->hw.adjusted_mode.hdisplay >= 3840 &&
            crtc_state->hw.adjusted_mode.vdisplay >= 2160) {
                /* Get hblank early enable value required */
-               val &= ~HBLANK_START_COUNT_MASK(pipe);
+               val &= ~HBLANK_START_COUNT_MASK(cpu_transcoder);
                hblank_early_prog = calc_hblank_early_prog(encoder, crtc_state);
                if (hblank_early_prog < 32)
-                       val |= HBLANK_START_COUNT(pipe, HBLANK_START_COUNT_32);
+                       val |= HBLANK_START_COUNT(cpu_transcoder, HBLANK_START_COUNT_32);
                else if (hblank_early_prog < 64)
-                       val |= HBLANK_START_COUNT(pipe, HBLANK_START_COUNT_64);
+                       val |= HBLANK_START_COUNT(cpu_transcoder, HBLANK_START_COUNT_64);
                else if (hblank_early_prog < 96)
-                       val |= HBLANK_START_COUNT(pipe, HBLANK_START_COUNT_96);
+                       val |= HBLANK_START_COUNT(cpu_transcoder, HBLANK_START_COUNT_96);
                else
-                       val |= HBLANK_START_COUNT(pipe, HBLANK_START_COUNT_128);
+                       val |= HBLANK_START_COUNT(cpu_transcoder, HBLANK_START_COUNT_128);
 
                /* Get samples room value required */
-               val &= ~NUMBER_SAMPLES_PER_LINE_MASK(pipe);
+               val &= ~NUMBER_SAMPLES_PER_LINE_MASK(cpu_transcoder);
                samples_room = calc_samples_room(crtc_state);
                if (samples_room < 3)
-                       val |= NUMBER_SAMPLES_PER_LINE(pipe, samples_room);
+                       val |= NUMBER_SAMPLES_PER_LINE(cpu_transcoder, samples_room);
                else /* Program 0 i.e "All Samples available in buffer" */
-                       val |= NUMBER_SAMPLES_PER_LINE(pipe, 0x0);
+                       val |= NUMBER_SAMPLES_PER_LINE(cpu_transcoder, 0x0);
        }
 
        intel_de_write(i915, AUD_CONFIG_BE, val);
        struct i915_audio_component *acomp = i915->display.audio.component;
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
        struct intel_connector *connector = to_intel_connector(conn_state->connector);
+       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
        struct intel_audio_state *audio_state;
        enum port port = encoder->port;
-       enum pipe pipe = crtc->pipe;
 
        if (!crtc_state->has_audio)
                return;
 
        mutex_lock(&i915->display.audio.mutex);
 
-       audio_state = &i915->display.audio.state[pipe];
+       audio_state = &i915->display.audio.state[cpu_transcoder];
 
        audio_state->encoder = encoder;
        BUILD_BUG_ON(sizeof(audio_state->eld) != sizeof(crtc_state->eld));
 
        if (acomp && acomp->base.audio_ops &&
            acomp->base.audio_ops->pin_eld_notify) {
-               /* audio drivers expect pipe = -1 to indicate Non-MST cases */
+               /* audio drivers expect cpu_transcoder = -1 to indicate Non-MST cases */
                if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST))
-                       pipe = -1;
+                       cpu_transcoder = -1;
                acomp->base.audio_ops->pin_eld_notify(acomp->base.audio_ops->audio_ptr,
-                                                     (int)port, (int)pipe);
+                                                     (int)port, (int)cpu_transcoder);
        }
 
-       intel_lpe_audio_notify(i915, pipe, port, crtc_state->eld,
+       intel_lpe_audio_notify(i915, cpu_transcoder, port, crtc_state->eld,
                               crtc_state->port_clock,
                               intel_crtc_has_dp_encoder(crtc_state));
 }
        struct i915_audio_component *acomp = i915->display.audio.component;
        struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
        struct intel_connector *connector = to_intel_connector(old_conn_state->connector);
+       enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
        struct intel_audio_state *audio_state;
        enum port port = encoder->port;
-       enum pipe pipe = crtc->pipe;
 
        if (!old_crtc_state->has_audio)
                return;
 
        mutex_lock(&i915->display.audio.mutex);
 
-       audio_state = &i915->display.audio.state[pipe];
+       audio_state = &i915->display.audio.state[cpu_transcoder];
 
        audio_state->encoder = NULL;
        memset(audio_state->eld, 0, sizeof(audio_state->eld));
 
        if (acomp && acomp->base.audio_ops &&
            acomp->base.audio_ops->pin_eld_notify) {
-               /* audio drivers expect pipe = -1 to indicate Non-MST cases */
+               /* audio drivers expect cpu_transcoder = -1 to indicate Non-MST cases */
                if (!intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DP_MST))
-                       pipe = -1;
+                       cpu_transcoder = -1;
                acomp->base.audio_ops->pin_eld_notify(acomp->base.audio_ops->audio_ptr,
-                                                     (int)port, (int)pipe);
+                                                     (int)port, (int)cpu_transcoder);
        }
 
-       intel_lpe_audio_notify(i915, pipe, port, NULL, 0, false);
+       intel_lpe_audio_notify(i915, cpu_transcoder, port, NULL, 0, false);
 }
 
 static void intel_acomp_get_config(struct intel_encoder *encoder,
                                   struct intel_crtc_state *crtc_state)
 {
        struct drm_i915_private *i915 = to_i915(encoder->base.dev);
-       struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
        struct intel_audio_state *audio_state;
-       enum pipe pipe = crtc->pipe;
 
        mutex_lock(&i915->display.audio.mutex);
 
-       audio_state = &i915->display.audio.state[pipe];
+       audio_state = &i915->display.audio.state[cpu_transcoder];
 
        if (audio_state->encoder)
                memcpy(crtc_state->eld, audio_state->eld, sizeof(audio_state->eld));
 }
 
 /*
- * get the intel audio state according to the parameter port and pipe
- * MST & (pipe >= 0): return the audio.state[pipe].encoder],
+ * get the intel audio state according to the parameter port and cpu_transcoder
+ * MST & (cpu_transcoder >= 0): return the audio.state[cpu_transcoder].encoder],
  *   when port is matched
- * MST & (pipe < 0): this is invalid
- * Non-MST & (pipe >= 0): only pipe = 0 (the first device entry)
+ * MST & (cpu_transcoder < 0): this is invalid
+ * Non-MST & (cpu_transcoder >= 0): only cpu_transcoder = 0 (the first device entry)
  *   will get the right intel_encoder with port matched
- * Non-MST & (pipe < 0): get the right intel_encoder with port matched
+ * Non-MST & (cpu_transcoder < 0): get the right intel_encoder with port matched
  */
 static struct intel_audio_state *find_audio_state(struct drm_i915_private *i915,
-                                                 int port, int pipe)
+                                                 int port, int cpu_transcoder)
 {
        /* MST */
-       if (pipe >= 0) {
+       if (cpu_transcoder >= 0) {
                struct intel_audio_state *audio_state;
                struct intel_encoder *encoder;
 
                if (drm_WARN_ON(&i915->drm,
-                               pipe >= ARRAY_SIZE(i915->display.audio.state)))
+                               cpu_transcoder >= ARRAY_SIZE(i915->display.audio.state)))
                        return NULL;
 
-               audio_state = &i915->display.audio.state[pipe];
+               audio_state = &i915->display.audio.state[cpu_transcoder];
                encoder = audio_state->encoder;
 
                if (encoder && encoder->port == port &&
        }
 
        /* Non-MST */
-       if (pipe > 0)
+       if (cpu_transcoder > 0)
                return NULL;
 
-       for_each_pipe(i915, pipe) {
+       for_each_cpu_transcoder(i915, cpu_transcoder) {
                struct intel_audio_state *audio_state;
                struct intel_encoder *encoder;
 
-               audio_state = &i915->display.audio.state[pipe];
+               audio_state = &i915->display.audio.state[cpu_transcoder];
                encoder = audio_state->encoder;
 
                if (encoder && encoder->port == port &&
 }
 
 static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
-                                               int pipe, int rate)
+                                               int cpu_transcoder, int rate)
 {
        struct drm_i915_private *i915 = kdev_to_i915(kdev);
        struct i915_audio_component *acomp = i915->display.audio.component;
        cookie = i915_audio_component_get_power(kdev);
        mutex_lock(&i915->display.audio.mutex);
 
-       audio_state = find_audio_state(i915, port, pipe);
+       audio_state = find_audio_state(i915, port, cpu_transcoder);
        if (!audio_state) {
                drm_dbg_kms(&i915->drm, "Not valid for port %c\n", port_name(port));
                err = -ENODEV;
        /* FIXME stop using the legacy crtc pointer */
        crtc = to_intel_crtc(encoder->base.crtc);
 
-       /* port must be valid now, otherwise the pipe will be invalid */
+       /* port must be valid now, otherwise the cpu_transcoder will be invalid */
        acomp->aud_sample_rate[port] = rate;
 
        /* FIXME get rid of the crtc->config stuff */
 }
 
 static int i915_audio_component_get_eld(struct device *kdev, int port,
-                                       int pipe, bool *enabled,
+                                       int cpu_transcoder, bool *enabled,
                                        unsigned char *buf, int max_bytes)
 {
        struct drm_i915_private *i915 = kdev_to_i915(kdev);
 
        mutex_lock(&i915->display.audio.mutex);
 
-       audio_state = find_audio_state(i915, port, pipe);
+       audio_state = find_audio_state(i915, port, cpu_transcoder);
        if (!audio_state) {
                drm_dbg_kms(&i915->drm, "Not valid for port %c\n", port_name(port));
                mutex_unlock(&i915->display.audio.mutex);