const struct intel_crtc_state *crtc_state)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-       struct i915_audio_component *acomp = dev_priv->audio_component;
+       struct i915_audio_component *acomp = dev_priv->audio.component;
        enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
        enum port port = encoder->port;
        const struct dp_aud_n_m *nm;
                             const struct intel_crtc_state *crtc_state)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-       struct i915_audio_component *acomp = dev_priv->audio_component;
+       struct i915_audio_component *acomp = dev_priv->audio.component;
        enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
        enum port port = encoder->port;
        int n, rate;
        drm_dbg_kms(&dev_priv->drm, "Disable audio codec on transcoder %s\n",
                    transcoder_name(cpu_transcoder));
 
-       mutex_lock(&dev_priv->av_mutex);
+       mutex_lock(&dev_priv->audio.mutex);
 
        /* Disable timestamps */
        tmp = intel_de_read(dev_priv, HSW_AUD_CFG(cpu_transcoder));
        tmp &= ~AUDIO_OUTPUT_ENABLE(cpu_transcoder);
        intel_de_write(dev_priv, HSW_AUD_PIN_ELD_CP_VLD, tmp);
 
-       mutex_unlock(&dev_priv->av_mutex);
+       mutex_unlock(&dev_priv->audio.mutex);
 }
 
 static unsigned int calc_hblank_early_prog(struct intel_encoder *encoder,
                    "Enable audio codec on transcoder %s, %u bytes ELD\n",
                     transcoder_name(cpu_transcoder), drm_eld_size(eld));
 
-       mutex_lock(&dev_priv->av_mutex);
+       mutex_lock(&dev_priv->audio.mutex);
 
        /* Enable Audio WA for 4k DSC usecases */
        if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP))
        /* Enable timestamps */
        hsw_audio_config_update(encoder, crtc_state);
 
-       mutex_unlock(&dev_priv->av_mutex);
+       mutex_unlock(&dev_priv->audio.mutex);
 }
 
 static void ilk_audio_codec_disable(struct intel_encoder *encoder,
                              const struct drm_connector_state *conn_state)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-       struct i915_audio_component *acomp = dev_priv->audio_component;
+       struct i915_audio_component *acomp = dev_priv->audio.component;
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
        struct drm_connector *connector = conn_state->connector;
        const struct drm_display_mode *adjusted_mode =
 
        connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
 
-       if (dev_priv->audio_funcs)
-               dev_priv->audio_funcs->audio_codec_enable(encoder,
+       if (dev_priv->audio.funcs)
+               dev_priv->audio.funcs->audio_codec_enable(encoder,
                                                          crtc_state,
                                                          conn_state);
 
-       mutex_lock(&dev_priv->av_mutex);
+       mutex_lock(&dev_priv->audio.mutex);
        encoder->audio_connector = connector;
 
        /* referred in audio callbacks */
-       dev_priv->av_enc_map[pipe] = encoder;
-       mutex_unlock(&dev_priv->av_mutex);
+       dev_priv->audio.encoder_map[pipe] = encoder;
+       mutex_unlock(&dev_priv->audio.mutex);
 
        if (acomp && acomp->base.audio_ops &&
            acomp->base.audio_ops->pin_eld_notify) {
                               const struct drm_connector_state *old_conn_state)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-       struct i915_audio_component *acomp = dev_priv->audio_component;
+       struct i915_audio_component *acomp = dev_priv->audio.component;
        struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
        enum port port = encoder->port;
        enum pipe pipe = crtc->pipe;
 
-       if (dev_priv->audio_funcs)
-               dev_priv->audio_funcs->audio_codec_disable(encoder,
+       if (dev_priv->audio.funcs)
+               dev_priv->audio.funcs->audio_codec_disable(encoder,
                                                           old_crtc_state,
                                                           old_conn_state);
 
-       mutex_lock(&dev_priv->av_mutex);
+       mutex_lock(&dev_priv->audio.mutex);
        encoder->audio_connector = NULL;
-       dev_priv->av_enc_map[pipe] = NULL;
-       mutex_unlock(&dev_priv->av_mutex);
+       dev_priv->audio.encoder_map[pipe] = NULL;
+       mutex_unlock(&dev_priv->audio.mutex);
 
        if (acomp && acomp->base.audio_ops &&
            acomp->base.audio_ops->pin_eld_notify) {
 void intel_init_audio_hooks(struct drm_i915_private *dev_priv)
 {
        if (IS_G4X(dev_priv)) {
-               dev_priv->audio_funcs = &g4x_audio_funcs;
+               dev_priv->audio.funcs = &g4x_audio_funcs;
        } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
-               dev_priv->audio_funcs = &ilk_audio_funcs;
+               dev_priv->audio.funcs = &ilk_audio_funcs;
        } else if (IS_HASWELL(dev_priv) || DISPLAY_VER(dev_priv) >= 8) {
-               dev_priv->audio_funcs = &hsw_audio_funcs;
+               dev_priv->audio.funcs = &hsw_audio_funcs;
        } else if (HAS_PCH_SPLIT(dev_priv)) {
-               dev_priv->audio_funcs = &ilk_audio_funcs;
+               dev_priv->audio.funcs = &ilk_audio_funcs;
        }
 }
 
 
        ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO_PLAYBACK);
 
-       if (dev_priv->audio_power_refcount++ == 0) {
+       if (dev_priv->audio.power_refcount++ == 0) {
                if (DISPLAY_VER(dev_priv) >= 9) {
                        intel_de_write(dev_priv, AUD_FREQ_CNTRL,
-                                      dev_priv->audio_freq_cntrl);
+                                      dev_priv->audio.freq_cntrl);
                        drm_dbg_kms(&dev_priv->drm,
                                    "restored AUD_FREQ_CNTRL to 0x%x\n",
-                                   dev_priv->audio_freq_cntrl);
+                                   dev_priv->audio.freq_cntrl);
                }
 
                /* Force CDCLK to 2*BCLK as long as we need audio powered. */
        struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
 
        /* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */
-       if (--dev_priv->audio_power_refcount == 0)
+       if (--dev_priv->audio.power_refcount == 0)
                if (IS_GEMINILAKE(dev_priv))
                        glk_force_audio_cdclk(dev_priv, false);
 
 /*
  * get the intel_encoder according to the parameter port and pipe
  * intel_encoder is saved by the index of pipe
- * MST & (pipe >= 0): return the av_enc_map[pipe],
+ * MST & (pipe >= 0): return the audio.encoder_map[pipe],
  *   when port is matched
  * MST & (pipe < 0): this is invalid
  * Non-MST & (pipe >= 0): only pipe = 0 (the first device entry)
        /* MST */
        if (pipe >= 0) {
                if (drm_WARN_ON(&dev_priv->drm,
-                               pipe >= ARRAY_SIZE(dev_priv->av_enc_map)))
+                               pipe >= ARRAY_SIZE(dev_priv->audio.encoder_map)))
                        return NULL;
 
-               encoder = dev_priv->av_enc_map[pipe];
+               encoder = dev_priv->audio.encoder_map[pipe];
                /*
                 * when bootup, audio driver may not know it is
                 * MST or not. So it will poll all the port & pipe
                return NULL;
 
        for_each_pipe(dev_priv, pipe) {
-               encoder = dev_priv->av_enc_map[pipe];
+               encoder = dev_priv->audio.encoder_map[pipe];
                if (encoder == NULL)
                        continue;
 
                                                int pipe, int rate)
 {
        struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
-       struct i915_audio_component *acomp = dev_priv->audio_component;
+       struct i915_audio_component *acomp = dev_priv->audio.component;
        struct intel_encoder *encoder;
        struct intel_crtc *crtc;
        unsigned long cookie;
                return 0;
 
        cookie = i915_audio_component_get_power(kdev);
-       mutex_lock(&dev_priv->av_mutex);
+       mutex_lock(&dev_priv->audio.mutex);
 
        /* 1. get the pipe */
        encoder = get_saved_enc(dev_priv, port, pipe);
        hsw_audio_config_update(encoder, crtc->config);
 
  unlock:
-       mutex_unlock(&dev_priv->av_mutex);
+       mutex_unlock(&dev_priv->audio.mutex);
        i915_audio_component_put_power(kdev, cookie);
        return err;
 }
        const u8 *eld;
        int ret = -EINVAL;
 
-       mutex_lock(&dev_priv->av_mutex);
+       mutex_lock(&dev_priv->audio.mutex);
 
        intel_encoder = get_saved_enc(dev_priv, port, pipe);
        if (!intel_encoder) {
                drm_dbg_kms(&dev_priv->drm, "Not valid for port %c\n",
                            port_name(port));
-               mutex_unlock(&dev_priv->av_mutex);
+               mutex_unlock(&dev_priv->audio.mutex);
                return ret;
        }
 
                memcpy(buf, eld, min(max_bytes, ret));
        }
 
-       mutex_unlock(&dev_priv->av_mutex);
+       mutex_unlock(&dev_priv->audio.mutex);
        return ret;
 }
 
        BUILD_BUG_ON(MAX_PORTS != I915_MAX_PORTS);
        for (i = 0; i < ARRAY_SIZE(acomp->aud_sample_rate); i++)
                acomp->aud_sample_rate[i] = 0;
-       dev_priv->audio_component = acomp;
+       dev_priv->audio.component = acomp;
        drm_modeset_unlock_all(&dev_priv->drm);
 
        return 0;
        drm_modeset_lock_all(&dev_priv->drm);
        acomp->base.ops = NULL;
        acomp->base.dev = NULL;
-       dev_priv->audio_component = NULL;
+       dev_priv->audio.component = NULL;
        drm_modeset_unlock_all(&dev_priv->drm);
 
        device_link_remove(hda_kdev, i915_kdev);
 
-       if (dev_priv->audio_power_refcount)
+       if (dev_priv->audio.power_refcount)
                drm_err(&dev_priv->drm, "audio power refcount %d after unbind\n",
-                       dev_priv->audio_power_refcount);
+                       dev_priv->audio.power_refcount);
 }
 
 static const struct component_ops i915_audio_component_bind_ops = {
                drm_dbg_kms(&dev_priv->drm, "use AUD_FREQ_CNTRL of 0x%x (init value 0x%x)\n",
                            aud_freq, aud_freq_init);
 
-               dev_priv->audio_freq_cntrl = aud_freq;
+               dev_priv->audio.freq_cntrl = aud_freq;
        }
 
        /* init with current cdclk */
        intel_audio_cdclk_change_post(dev_priv);
 
-       dev_priv->audio_component_registered = true;
+       dev_priv->audio.component_registered = true;
 }
 
 /**
  */
 static void i915_audio_component_cleanup(struct drm_i915_private *dev_priv)
 {
-       if (!dev_priv->audio_component_registered)
+       if (!dev_priv->audio.component_registered)
                return;
 
        component_del(dev_priv->drm.dev, &i915_audio_component_bind_ops);
-       dev_priv->audio_component_registered = false;
+       dev_priv->audio.component_registered = false;
 }
 
 /**
  */
 void intel_audio_deinit(struct drm_i915_private *dev_priv)
 {
-       if ((dev_priv)->lpe_audio.platdev != NULL)
+       if ((dev_priv)->audio.lpe.platdev != NULL)
                intel_lpe_audio_teardown(dev_priv);
        else
                i915_audio_component_cleanup(dev_priv);
 
 #include "intel_de.h"
 #include "intel_lpe_audio.h"
 
-#define HAS_LPE_AUDIO(dev_priv) ((dev_priv)->lpe_audio.platdev != NULL)
+#define HAS_LPE_AUDIO(dev_priv) ((dev_priv)->audio.lpe.platdev != NULL)
 
 static struct platform_device *
 lpe_audio_platdev_create(struct drm_i915_private *dev_priv)
                return ERR_PTR(-ENOMEM);
        }
 
-       rsc[0].start    = rsc[0].end = dev_priv->lpe_audio.irq;
+       rsc[0].start    = rsc[0].end = dev_priv->audio.lpe.irq;
        rsc[0].flags    = IORESOURCE_IRQ;
        rsc[0].name     = "hdmi-lpe-audio-irq";
 
         * than us fiddle with its internals.
         */
 
-       platform_device_unregister(dev_priv->lpe_audio.platdev);
+       platform_device_unregister(dev_priv->audio.lpe.platdev);
 }
 
 static void lpe_audio_irq_unmask(struct irq_data *d)
 
 static int lpe_audio_irq_init(struct drm_i915_private *dev_priv)
 {
-       int irq = dev_priv->lpe_audio.irq;
+       int irq = dev_priv->audio.lpe.irq;
 
        drm_WARN_ON(&dev_priv->drm, !intel_irqs_enabled(dev_priv));
        irq_set_chip_and_handler_name(irq,
 {
        int ret;
 
-       dev_priv->lpe_audio.irq = irq_alloc_desc(0);
-       if (dev_priv->lpe_audio.irq < 0) {
+       dev_priv->audio.lpe.irq = irq_alloc_desc(0);
+       if (dev_priv->audio.lpe.irq < 0) {
                drm_err(&dev_priv->drm, "Failed to allocate IRQ desc: %d\n",
-                       dev_priv->lpe_audio.irq);
-               ret = dev_priv->lpe_audio.irq;
+                       dev_priv->audio.lpe.irq);
+               ret = dev_priv->audio.lpe.irq;
                goto err;
        }
 
-       drm_dbg(&dev_priv->drm, "irq = %d\n", dev_priv->lpe_audio.irq);
+       drm_dbg(&dev_priv->drm, "irq = %d\n", dev_priv->audio.lpe.irq);
 
        ret = lpe_audio_irq_init(dev_priv);
 
                goto err_free_irq;
        }
 
-       dev_priv->lpe_audio.platdev = lpe_audio_platdev_create(dev_priv);
+       dev_priv->audio.lpe.platdev = lpe_audio_platdev_create(dev_priv);
 
-       if (IS_ERR(dev_priv->lpe_audio.platdev)) {
-               ret = PTR_ERR(dev_priv->lpe_audio.platdev);
+       if (IS_ERR(dev_priv->audio.lpe.platdev)) {
+               ret = PTR_ERR(dev_priv->audio.lpe.platdev);
                drm_err(&dev_priv->drm,
                        "Failed to create lpe audio platform device: %d\n",
                        ret);
 
        return 0;
 err_free_irq:
-       irq_free_desc(dev_priv->lpe_audio.irq);
+       irq_free_desc(dev_priv->audio.lpe.irq);
 err:
-       dev_priv->lpe_audio.irq = -1;
-       dev_priv->lpe_audio.platdev = NULL;
+       dev_priv->audio.lpe.irq = -1;
+       dev_priv->audio.lpe.platdev = NULL;
        return ret;
 }
 
        if (!HAS_LPE_AUDIO(dev_priv))
                return;
 
-       ret = generic_handle_irq(dev_priv->lpe_audio.irq);
+       ret = generic_handle_irq(dev_priv->audio.lpe.irq);
        if (ret)
                drm_err_ratelimited(&dev_priv->drm,
                                    "error handling LPE audio irq: %d\n", ret);
 
        lpe_audio_platdev_destroy(dev_priv);
 
-       irq_free_desc(dev_priv->lpe_audio.irq);
+       irq_free_desc(dev_priv->audio.lpe.irq);
 
-       dev_priv->lpe_audio.irq = -1;
-       dev_priv->lpe_audio.platdev = NULL;
+       dev_priv->audio.lpe.irq = -1;
+       dev_priv->audio.lpe.platdev = NULL;
 }
 
 /**
        if (!HAS_LPE_AUDIO(dev_priv))
                return;
 
-       pdata = dev_get_platdata(&dev_priv->lpe_audio.platdev->dev);
+       pdata = dev_get_platdata(&dev_priv->audio.lpe.platdev->dev);
        ppdata = &pdata->port[port - PORT_B];
 
        spin_lock_irqsave(&pdata->lpe_audio_slock, irqflags);
        }
 
        if (pdata->notify_audio_lpe)
-               pdata->notify_audio_lpe(dev_priv->lpe_audio.platdev, port - PORT_B);
+               pdata->notify_audio_lpe(dev_priv->audio.lpe.platdev, port - PORT_B);
 
        spin_unlock_irqrestore(&pdata->lpe_audio_slock, irqflags);
 }