All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: "Murthy, Arun R" <arun.r.murthy@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Cc: "De Marchi, Lucas" <lucas.demarchi@intel.com>
Subject: Re: [Intel-gfx] [PATCH 12/39] drm/i915: move and split audio under display.audio and display.funcs
Date: Fri, 12 Aug 2022 10:03:29 +0300	[thread overview]
Message-ID: <87k07erlj2.fsf@intel.com> (raw)
In-Reply-To: <DM6PR11MB3177A0CB978DD0EA0717418BBA679@DM6PR11MB3177.namprd11.prod.outlook.com>

On Fri, 12 Aug 2022, "Murthy, Arun R" <arun.r.murthy@intel.com> wrote:
>> -----Original Message-----
>> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Jani
>> Nikula
>> Sent: Thursday, August 11, 2022 8:37 PM
>> To: intel-gfx@lists.freedesktop.org
>> Cc: Nikula, Jani <jani.nikula@intel.com>; De Marchi, Lucas
>> <lucas.demarchi@intel.com>
>> Subject: [Intel-gfx] [PATCH 12/39] drm/i915: move and split audio under
>> display.audio and display.funcs
>>
>> Move display related members under drm_i915_private display sub-struct.
>>
>> Split audio funcs to display.funcs to follow the same pattern as all the other
>> display functions.
>>
> Audio is a feature as such so wouldn't intel_audio struct stand parallel to intel_display?

For i915, audio doesn't exist other than as a display feature. Display
is a higher level split here, parallel to gt/gem.

BR,
Jani.

>
> Thanks and Regards,
> Arun R Murthy
> --------------------
>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_audio.c    | 96 +++++++++----------
>>  .../gpu/drm/i915/display/intel_display_core.h | 26 +++++
>>  .../gpu/drm/i915/display/intel_lpe_audio.c    | 42 ++++----
>>  drivers/gpu/drm/i915/i915_driver.c            |  2 +-
>>  drivers/gpu/drm/i915/i915_drv.h               | 26 -----
>>  5 files changed, 96 insertions(+), 96 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c
>> b/drivers/gpu/drm/i915/display/intel_audio.c
>> index 6c9ee905f132..a74fc79b7910 100644
>> --- a/drivers/gpu/drm/i915/display/intel_audio.c
>> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
>> @@ -393,7 +393,7 @@ hsw_dp_audio_config_update(struct intel_encoder
>> *encoder,
>>                          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->display.audio.component;
>>       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>>       enum port port = encoder->port;
>>       const struct dp_aud_n_m *nm;
>> @@ -441,7 +441,7 @@ hsw_hdmi_audio_config_update(struct
>> intel_encoder *encoder,
>>                            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->display.audio.component;
>>       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>>       enum port port = encoder->port;
>>       int n, rate;
>> @@ -496,7 +496,7 @@ static void hsw_audio_codec_disable(struct
>> intel_encoder *encoder,
>>       enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
>>       u32 tmp;
>>
>> -     mutex_lock(&dev_priv->audio.mutex);
>> +     mutex_lock(&dev_priv->display.audio.mutex);
>>
>>       /* Disable timestamps */
>>       tmp = intel_de_read(dev_priv, HSW_AUD_CFG(cpu_transcoder));
>> @@ -514,7 +514,7 @@ static void hsw_audio_codec_disable(struct
>> intel_encoder *encoder,
>>       tmp &= ~AUDIO_OUTPUT_ENABLE(cpu_transcoder);
>>       intel_de_write(dev_priv, HSW_AUD_PIN_ELD_CP_VLD, tmp);
>>
>> -     mutex_unlock(&dev_priv->audio.mutex);
>> +     mutex_unlock(&dev_priv->display.audio.mutex);
>>  }
>>
>>  static unsigned int calc_hblank_early_prog(struct intel_encoder *encoder,
>> @@ -639,7 +639,7 @@ static void hsw_audio_codec_enable(struct
>> intel_encoder *encoder,
>>       u32 tmp;
>>       int len, i;
>>
>> -     mutex_lock(&dev_priv->audio.mutex);
>> +     mutex_lock(&dev_priv->display.audio.mutex);
>>
>>       /* Enable Audio WA for 4k DSC usecases */
>>       if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP)) @@ -677,7
>> +677,7 @@ static void hsw_audio_codec_enable(struct intel_encoder
>> *encoder,
>>       /* Enable timestamps */
>>       hsw_audio_config_update(encoder, crtc_state);
>>
>> -     mutex_unlock(&dev_priv->audio.mutex);
>> +     mutex_unlock(&dev_priv->display.audio.mutex);
>>  }
>>
>>  static void ilk_audio_codec_disable(struct intel_encoder *encoder, @@ -
>> 814,7 +814,7 @@ void intel_audio_codec_enable(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->display.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 = @@ -838,17
>> +838,17 @@ void intel_audio_codec_enable(struct intel_encoder *encoder,
>>
>>       connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode)
>> / 2;
>>
>> -     if (dev_priv->audio.funcs)
>> -             dev_priv->audio.funcs->audio_codec_enable(encoder,
>> -                                                       crtc_state,
>> -                                                       conn_state);
>> +     if (dev_priv->display.funcs.audio)
>> +             dev_priv->display.funcs.audio-
>> >audio_codec_enable(encoder,
>> +                                                               crtc_state,
>> +                                                               conn_state);
>>
>> -     mutex_lock(&dev_priv->audio.mutex);
>> +     mutex_lock(&dev_priv->display.audio.mutex);
>>       encoder->audio_connector = connector;
>>
>>       /* referred in audio callbacks */
>> -     dev_priv->audio.encoder_map[pipe] = encoder;
>> -     mutex_unlock(&dev_priv->audio.mutex);
>> +     dev_priv->display.audio.encoder_map[pipe] = encoder;
>> +     mutex_unlock(&dev_priv->display.audio.mutex);
>>
>>       if (acomp && acomp->base.audio_ops &&
>>           acomp->base.audio_ops->pin_eld_notify) { @@ -878,7 +878,7 @@
>> void intel_audio_codec_disable(struct intel_encoder *encoder,
>>                              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->display.audio.component;
>>       struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>>       struct drm_connector *connector = old_conn_state->connector;
>>       enum port port = encoder->port;
>> @@ -891,15 +891,15 @@ void intel_audio_codec_disable(struct
>> intel_encoder *encoder,
>>                   connector->base.id, connector->name,
>>                   encoder->base.base.id, encoder->base.name,
>> pipe_name(pipe));
>>
>> -     if (dev_priv->audio.funcs)
>> -             dev_priv->audio.funcs->audio_codec_disable(encoder,
>> -                                                        old_crtc_state,
>> -                                                        old_conn_state);
>> +     if (dev_priv->display.funcs.audio)
>> +             dev_priv->display.funcs.audio-
>> >audio_codec_disable(encoder,
>> +
>> old_crtc_state,
>> +
>> old_conn_state);
>>
>> -     mutex_lock(&dev_priv->audio.mutex);
>> +     mutex_lock(&dev_priv->display.audio.mutex);
>>       encoder->audio_connector = NULL;
>> -     dev_priv->audio.encoder_map[pipe] = NULL;
>> -     mutex_unlock(&dev_priv->audio.mutex);
>> +     dev_priv->display.audio.encoder_map[pipe] = NULL;
>> +     mutex_unlock(&dev_priv->display.audio.mutex);
>>
>>       if (acomp && acomp->base.audio_ops &&
>>           acomp->base.audio_ops->pin_eld_notify) { @@ -935,13 +935,13
>> @@ static const struct intel_audio_funcs hsw_audio_funcs = {  void
>> intel_audio_hooks_init(struct drm_i915_private *dev_priv)  {
>>       if (IS_G4X(dev_priv)) {
>> -             dev_priv->audio.funcs = &g4x_audio_funcs;
>> +             dev_priv->display.funcs.audio = &g4x_audio_funcs;
>>       } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
>> -             dev_priv->audio.funcs = &ilk_audio_funcs;
>> +             dev_priv->display.funcs.audio = &ilk_audio_funcs;
>>       } else if (IS_HASWELL(dev_priv) || DISPLAY_VER(dev_priv) >= 8) {
>> -             dev_priv->audio.funcs = &hsw_audio_funcs;
>> +             dev_priv->display.funcs.audio = &hsw_audio_funcs;
>>       } else if (HAS_PCH_SPLIT(dev_priv)) {
>> -             dev_priv->audio.funcs = &ilk_audio_funcs;
>> +             dev_priv->display.funcs.audio = &ilk_audio_funcs;
>>       }
>>  }
>>
>> @@ -1046,13 +1046,13 @@ static unsigned long
>> i915_audio_component_get_power(struct device *kdev)
>>
>>       ret = intel_display_power_get(dev_priv,
>> POWER_DOMAIN_AUDIO_PLAYBACK);
>>
>> -     if (dev_priv->audio.power_refcount++ == 0) {
>> +     if (dev_priv->display.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->display.audio.freq_cntrl);
>>                       drm_dbg_kms(&dev_priv->drm,
>>                                   "restored AUD_FREQ_CNTRL to 0x%x\n",
>> -                                 dev_priv->audio.freq_cntrl);
>> +                                 dev_priv->display.audio.freq_cntrl);
>>               }
>>
>>               /* Force CDCLK to 2*BCLK as long as we need audio powered.
>> */ @@ -1073,7 +1073,7 @@ static void
>> i915_audio_component_put_power(struct device *kdev,
>>       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->display.audio.power_refcount == 0)
>>               if (IS_GEMINILAKE(dev_priv))
>>                       glk_force_audio_cdclk(dev_priv, false);
>>
>> @@ -1140,10 +1140,10 @@ static struct intel_encoder
>> *get_saved_enc(struct drm_i915_private *dev_priv,
>>       /* MST */
>>       if (pipe >= 0) {
>>               if (drm_WARN_ON(&dev_priv->drm,
>> -                             pipe >= ARRAY_SIZE(dev_priv-
>> >audio.encoder_map)))
>> +                             pipe >= ARRAY_SIZE(dev_priv-
>> >display.audio.encoder_map)))
>>                       return NULL;
>>
>> -             encoder = dev_priv->audio.encoder_map[pipe];
>> +             encoder = dev_priv->display.audio.encoder_map[pipe];
>>               /*
>>                * when bootup, audio driver may not know it is
>>                * MST or not. So it will poll all the port & pipe @@ -1159,7
>> +1159,7 @@ static struct intel_encoder *get_saved_enc(struct
>> drm_i915_private *dev_priv,
>>               return NULL;
>>
>>       for_each_pipe(dev_priv, pipe) {
>> -             encoder = dev_priv->audio.encoder_map[pipe];
>> +             encoder = dev_priv->display.audio.encoder_map[pipe];
>>               if (encoder == NULL)
>>                       continue;
>>
>> @@ -1177,7 +1177,7 @@ static int
>> i915_audio_component_sync_audio_rate(struct device *kdev, int port,
>>                                               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->display.audio.component;
>>       struct intel_encoder *encoder;
>>       struct intel_crtc *crtc;
>>       unsigned long cookie;
>> @@ -1187,7 +1187,7 @@ static int
>> i915_audio_component_sync_audio_rate(struct device *kdev, int port,
>>               return 0;
>>
>>       cookie = i915_audio_component_get_power(kdev);
>> -     mutex_lock(&dev_priv->audio.mutex);
>> +     mutex_lock(&dev_priv->display.audio.mutex);
>>
>>       /* 1. get the pipe */
>>       encoder = get_saved_enc(dev_priv, port, pipe); @@ -1206,7 +1206,7
>> @@ static int i915_audio_component_sync_audio_rate(struct device *kdev,
>> int port,
>>       hsw_audio_config_update(encoder, crtc->config);
>>
>>   unlock:
>> -     mutex_unlock(&dev_priv->audio.mutex);
>> +     mutex_unlock(&dev_priv->display.audio.mutex);
>>       i915_audio_component_put_power(kdev, cookie);
>>       return err;
>>  }
>> @@ -1220,13 +1220,13 @@ static int i915_audio_component_get_eld(struct
>> device *kdev, int port,
>>       const u8 *eld;
>>       int ret = -EINVAL;
>>
>> -     mutex_lock(&dev_priv->audio.mutex);
>> +     mutex_lock(&dev_priv->display.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->audio.mutex);
>> +             mutex_unlock(&dev_priv->display.audio.mutex);
>>               return ret;
>>       }
>>
>> @@ -1238,7 +1238,7 @@ static int i915_audio_component_get_eld(struct
>> device *kdev, int port,
>>               memcpy(buf, eld, min(max_bytes, ret));
>>       }
>>
>> -     mutex_unlock(&dev_priv->audio.mutex);
>> +     mutex_unlock(&dev_priv->display.audio.mutex);
>>       return ret;
>>  }
>>
>> @@ -1273,7 +1273,7 @@ static int i915_audio_component_bind(struct
>> device *i915_kdev,
>>       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->display.audio.component = acomp;
>>       drm_modeset_unlock_all(&dev_priv->drm);
>>
>>       return 0;
>> @@ -1288,14 +1288,14 @@ static void
>> i915_audio_component_unbind(struct device *i915_kdev,
>>       drm_modeset_lock_all(&dev_priv->drm);
>>       acomp->base.ops = NULL;
>>       acomp->base.dev = NULL;
>> -     dev_priv->audio.component = NULL;
>> +     dev_priv->display.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->display.audio.power_refcount)
>>               drm_err(&dev_priv->drm, "audio power refcount %d after
>> unbind\n",
>> -                     dev_priv->audio.power_refcount);
>> +                     dev_priv->display.audio.power_refcount);
>>  }
>>
>>  static const struct component_ops i915_audio_component_bind_ops = {
>> @@ -1359,13 +1359,13 @@ static void i915_audio_component_init(struct
>> drm_i915_private *dev_priv)
>>               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->display.audio.freq_cntrl = aud_freq;
>>       }
>>
>>       /* init with current cdclk */
>>       intel_audio_cdclk_change_post(dev_priv);
>>
>> -     dev_priv->audio.component_registered = true;
>> +     dev_priv->display.audio.component_registered = true;
>>  }
>>
>>  /**
>> @@ -1377,11 +1377,11 @@ static void i915_audio_component_init(struct
>> drm_i915_private *dev_priv)
>>   */
>>  static void i915_audio_component_cleanup(struct drm_i915_private
>> *dev_priv)  {
>> -     if (!dev_priv->audio.component_registered)
>> +     if (!dev_priv->display.audio.component_registered)
>>               return;
>>
>>       component_del(dev_priv->drm.dev,
>> &i915_audio_component_bind_ops);
>> -     dev_priv->audio.component_registered = false;
>> +     dev_priv->display.audio.component_registered = false;
>>  }
>>
>>  /**
>> @@ -1403,7 +1403,7 @@ void intel_audio_init(struct drm_i915_private
>> *dev_priv)
>>   */
>>  void intel_audio_deinit(struct drm_i915_private *dev_priv)  {
>> -     if ((dev_priv)->audio.lpe.platdev != NULL)
>> +     if (dev_priv->display.audio.lpe.platdev != NULL)
>>               intel_lpe_audio_teardown(dev_priv);
>>       else
>>               i915_audio_component_cleanup(dev_priv);
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h
>> b/drivers/gpu/drm/i915/display/intel_display_core.h
>> index ca22706e11e6..748d2a84e20e 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_core.h
>> +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
>> @@ -10,11 +10,14 @@
>>  #include <linux/types.h>
>>  #include <linux/wait.h>
>>
>> +#include "intel_display.h"
>>  #include "intel_dmc.h"
>>  #include "intel_gmbus.h"
>>
>>  struct drm_i915_private;
>> +struct i915_audio_component;
>>  struct intel_atomic_state;
>> +struct intel_audio_funcs;
>>  struct intel_cdclk_funcs;
>>  struct intel_clock_gating_funcs;
>>  struct intel_color_funcs;
>> @@ -56,6 +59,25 @@ struct intel_wm_funcs {
>>       int (*compute_global_watermarks)(struct intel_atomic_state *state);
>> };
>>
>> +struct intel_audio {
>> +     /* hda/i915 audio component */
>> +     struct i915_audio_component *component;
>> +     bool component_registered;
>> +     /* mutex for audio/video sync */
>> +     struct mutex mutex;
>> +     int power_refcount;
>> +     u32 freq_cntrl;
>> +
>> +     /* Used to save the pipe-to-encoder mapping for audio */
>> +     struct intel_encoder *encoder_map[I915_MAX_PIPES];
>> +
>> +     /* necessary resource sharing with HDMI LPE audio driver. */
>> +     struct {
>> +             struct platform_device *platdev;
>> +             int irq;
>> +     } lpe;
>> +};
>> +
>>  struct intel_display {
>>       /* Display functions */
>>       struct {
>> @@ -82,6 +104,9 @@ struct intel_display {
>>
>>               /* Display internal color functions */
>>               const struct intel_color_funcs *color;
>> +
>> +             /* Display internal audio functions */
>> +             const struct intel_audio_funcs *audio;
>>       } funcs;
>>
>>       /* Grouping using anonymous structs. Keep sorted. */ @@ -111,6
>> +136,7 @@ struct intel_display {
>>       } pps;
>>
>>       /* Grouping using named structs. Keep sorted. */
>> +     struct intel_audio audio;
>>       struct intel_dmc dmc;
>>  };
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>> b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>> index 1e18696aaecf..dca6003ccac8 100644
>> --- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>> +++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>> @@ -75,7 +75,7 @@
>>  #include "intel_lpe_audio.h"
>>  #include "intel_pci_config.h"
>>
>> -#define HAS_LPE_AUDIO(dev_priv) ((dev_priv)->audio.lpe.platdev != NULL)
>> +#define HAS_LPE_AUDIO(dev_priv) ((dev_priv)->display.audio.lpe.platdev
>> +!= NULL)
>>
>>  static struct platform_device *
>>  lpe_audio_platdev_create(struct drm_i915_private *dev_priv) @@ -97,7
>> +97,7 @@ lpe_audio_platdev_create(struct drm_i915_private *dev_priv)
>>               return ERR_PTR(-ENOMEM);
>>       }
>>
>> -     rsc[0].start    = rsc[0].end = dev_priv->audio.lpe.irq;
>> +     rsc[0].start    = rsc[0].end = dev_priv->display.audio.lpe.irq;
>>       rsc[0].flags    = IORESOURCE_IRQ;
>>       rsc[0].name     = "hdmi-lpe-audio-irq";
>>
>> @@ -149,7 +149,7 @@ static void lpe_audio_platdev_destroy(struct
>> drm_i915_private *dev_priv)
>>        * than us fiddle with its internals.
>>        */
>>
>> -     platform_device_unregister(dev_priv->audio.lpe.platdev);
>> +     platform_device_unregister(dev_priv->display.audio.lpe.platdev);
>>  }
>>
>>  static void lpe_audio_irq_unmask(struct irq_data *d) @@ -168,7 +168,7
>> @@ static struct irq_chip lpe_audio_irqchip = {
>>
>>  static int lpe_audio_irq_init(struct drm_i915_private *dev_priv)  {
>> -     int irq = dev_priv->audio.lpe.irq;
>> +     int irq = dev_priv->display.audio.lpe.irq;
>>
>>       drm_WARN_ON(&dev_priv->drm, !intel_irqs_enabled(dev_priv));
>>       irq_set_chip_and_handler_name(irq,
>> @@ -205,15 +205,15 @@ static int lpe_audio_setup(struct drm_i915_private
>> *dev_priv)  {
>>       int ret;
>>
>> -     dev_priv->audio.lpe.irq = irq_alloc_desc(0);
>> -     if (dev_priv->audio.lpe.irq < 0) {
>> +     dev_priv->display.audio.lpe.irq = irq_alloc_desc(0);
>> +     if (dev_priv->display.audio.lpe.irq < 0) {
>>               drm_err(&dev_priv->drm, "Failed to allocate IRQ desc:
>> %d\n",
>> -                     dev_priv->audio.lpe.irq);
>> -             ret = dev_priv->audio.lpe.irq;
>> +                     dev_priv->display.audio.lpe.irq);
>> +             ret = dev_priv->display.audio.lpe.irq;
>>               goto err;
>>       }
>>
>> -     drm_dbg(&dev_priv->drm, "irq = %d\n", dev_priv->audio.lpe.irq);
>> +     drm_dbg(&dev_priv->drm, "irq = %d\n",
>> +dev_priv->display.audio.lpe.irq);
>>
>>       ret = lpe_audio_irq_init(dev_priv);
>>
>> @@ -224,10 +224,10 @@ static int lpe_audio_setup(struct drm_i915_private
>> *dev_priv)
>>               goto err_free_irq;
>>       }
>>
>> -     dev_priv->audio.lpe.platdev = lpe_audio_platdev_create(dev_priv);
>> +     dev_priv->display.audio.lpe.platdev =
>> +lpe_audio_platdev_create(dev_priv);
>>
>> -     if (IS_ERR(dev_priv->audio.lpe.platdev)) {
>> -             ret = PTR_ERR(dev_priv->audio.lpe.platdev);
>> +     if (IS_ERR(dev_priv->display.audio.lpe.platdev)) {
>> +             ret = PTR_ERR(dev_priv->display.audio.lpe.platdev);
>>               drm_err(&dev_priv->drm,
>>                       "Failed to create lpe audio platform device: %d\n",
>>                       ret);
>> @@ -242,10 +242,10 @@ static int lpe_audio_setup(struct drm_i915_private
>> *dev_priv)
>>
>>       return 0;
>>  err_free_irq:
>> -     irq_free_desc(dev_priv->audio.lpe.irq);
>> +     irq_free_desc(dev_priv->display.audio.lpe.irq);
>>  err:
>> -     dev_priv->audio.lpe.irq = -1;
>> -     dev_priv->audio.lpe.platdev = NULL;
>> +     dev_priv->display.audio.lpe.irq = -1;
>> +     dev_priv->display.audio.lpe.platdev = NULL;
>>       return ret;
>>  }
>>
>> @@ -263,7 +263,7 @@ void intel_lpe_audio_irq_handler(struct
>> drm_i915_private *dev_priv)
>>       if (!HAS_LPE_AUDIO(dev_priv))
>>               return;
>>
>> -     ret = generic_handle_irq(dev_priv->audio.lpe.irq);
>> +     ret = generic_handle_irq(dev_priv->display.audio.lpe.irq);
>>       if (ret)
>>               drm_err_ratelimited(&dev_priv->drm,
>>                                   "error handling LPE audio irq: %d\n", ret);
>> @@ -304,10 +304,10 @@ void intel_lpe_audio_teardown(struct
>> drm_i915_private *dev_priv)
>>
>>       lpe_audio_platdev_destroy(dev_priv);
>>
>> -     irq_free_desc(dev_priv->audio.lpe.irq);
>> +     irq_free_desc(dev_priv->display.audio.lpe.irq);
>>
>> -     dev_priv->audio.lpe.irq = -1;
>> -     dev_priv->audio.lpe.platdev = NULL;
>> +     dev_priv->display.audio.lpe.irq = -1;
>> +     dev_priv->display.audio.lpe.platdev = NULL;
>>  }
>>
>>  /**
>> @@ -334,7 +334,7 @@ void intel_lpe_audio_notify(struct drm_i915_private
>> *dev_priv,
>>       if (!HAS_LPE_AUDIO(dev_priv))
>>               return;
>>
>> -     pdata = dev_get_platdata(&dev_priv->audio.lpe.platdev->dev);
>> +     pdata = dev_get_platdata(&dev_priv->display.audio.lpe.platdev-
>> >dev);
>>       ppdata = &pdata->port[port - PORT_B];
>>
>>       spin_lock_irqsave(&pdata->lpe_audio_slock, irqflags); @@ -362,7
>> +362,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv,
>>       }
>>
>>       if (pdata->notify_audio_lpe)
>> -             pdata->notify_audio_lpe(dev_priv->audio.lpe.platdev, port -
>> PORT_B);
>> +             pdata->notify_audio_lpe(dev_priv-
>> >display.audio.lpe.platdev, port -
>> +PORT_B);
>>
>>       spin_unlock_irqrestore(&pdata->lpe_audio_slock, irqflags);  } diff --
>> git a/drivers/gpu/drm/i915/i915_driver.c
>> b/drivers/gpu/drm/i915/i915_driver.c
>> index 694384e54fd7..0d3993e51138 100644
>> --- a/drivers/gpu/drm/i915/i915_driver.c
>> +++ b/drivers/gpu/drm/i915/i915_driver.c
>> @@ -335,7 +335,7 @@ static int i915_driver_early_probe(struct
>> drm_i915_private *dev_priv)
>>       mutex_init(&dev_priv->sb_lock);
>>       cpu_latency_qos_add_request(&dev_priv->sb_qos,
>> PM_QOS_DEFAULT_VALUE);
>>
>> -     mutex_init(&dev_priv->audio.mutex);
>> +     mutex_init(&dev_priv->display.audio.mutex);
>>       mutex_init(&dev_priv->wm.wm_mutex);
>>       mutex_init(&dev_priv->display.pps.mutex);
>>       mutex_init(&dev_priv->hdcp_comp_mutex);
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h
>> b/drivers/gpu/drm/i915/i915_drv.h index d1b51e2460e0..ebd96555ada0
>> 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -78,7 +78,6 @@
>>  struct dpll;
>>  struct drm_i915_gem_object;
>>  struct drm_i915_private;
>> -struct intel_audio_funcs;
>>  struct intel_cdclk_config;
>>  struct intel_cdclk_state;
>>  struct intel_cdclk_vals;
>> @@ -306,29 +305,6 @@ struct i915_selftest_stash {
>>       struct ida mock_region_instances;
>>  };
>>
>> -/* intel_audio.c private */
>> -struct intel_audio_private {
>> -     /* Display internal audio functions */
>> -     const struct intel_audio_funcs *funcs;
>> -
>> -     /* hda/i915 audio component */
>> -     struct i915_audio_component *component;
>> -     bool component_registered;
>> -     /* mutex for audio/video sync */
>> -     struct mutex mutex;
>> -     int power_refcount;
>> -     u32 freq_cntrl;
>> -
>> -     /* Used to save the pipe-to-encoder mapping for audio */
>> -     struct intel_encoder *encoder_map[I915_MAX_PIPES];
>> -
>> -     /* necessary resource sharing with HDMI LPE audio driver. */
>> -     struct {
>> -             struct platform_device *platdev;
>> -             int irq;
>> -     } lpe;
>> -};
>> -
>>  struct drm_i915_private {
>>       struct drm_device drm;
>>
>> @@ -671,8 +647,6 @@ struct drm_i915_private {
>>
>>       bool ipc_enabled;
>>
>> -     struct intel_audio_private audio;
>> -
>>       struct i915_pmu pmu;
>>
>>       struct i915_drm_clients clients;
>> --
>> 2.34.1
>

-- 
Jani Nikula, Intel Open Source Graphics Center

  reply	other threads:[~2022-08-12  7:03 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-11 15:07 [Intel-gfx] [PATCH 00/39] drm/i915: add display sub-struct to drm_i915_private Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 01/39] " Jani Nikula
2022-08-12  4:27   ` Murthy, Arun R
2022-08-12  6:40     ` Jani Nikula
2022-08-16  3:31       ` Murthy, Arun R
2022-08-16  7:37         ` Jani Nikula
2022-08-16  7:40           ` Murthy, Arun R
2022-08-17  1:23   ` Lucas De Marchi
2022-08-17  6:48     ` Jani Nikula
2022-08-17  8:07       ` Jani Nikula
2022-08-18 21:25         ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 02/39] drm/i915: move cdclk_funcs to display.funcs Jani Nikula
2022-08-12  4:32   ` Murthy, Arun R
2022-08-12  6:43     ` Jani Nikula
2022-08-16  3:42       ` Murthy, Arun R
2022-08-11 15:07 ` [Intel-gfx] [PATCH 03/39] drm/i915: move dpll_funcs " Jani Nikula
2022-08-12  4:33   ` Murthy, Arun R
2022-08-11 15:07 ` [Intel-gfx] [PATCH 04/39] drm/i915: move hotplug_funcs " Jani Nikula
2022-08-12  4:37   ` Murthy, Arun R
2022-08-12  6:45     ` Jani Nikula
2022-08-17  1:28   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 05/39] drm/i915: move clock_gating_funcs " Jani Nikula
2022-08-12  4:41   ` Murthy, Arun R
2022-08-12  6:48     ` Jani Nikula
2022-08-12  6:51       ` Jani Nikula
2022-08-16  3:45         ` Murthy, Arun R
2022-08-17  1:38   ` Lucas De Marchi
2022-08-17  6:50     ` Jani Nikula
2022-08-17  7:20       ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 06/39] drm/i915: move wm_disp funcs " Jani Nikula
2022-08-12  4:45   ` Murthy, Arun R
2022-08-12  6:54     ` Jani Nikula
2022-08-16  3:48       ` Murthy, Arun R
2022-08-17  3:50   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 07/39] drm/i915: move fdi_funcs " Jani Nikula
2022-08-12  4:48   ` Murthy, Arun R
2022-08-17  3:51   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 08/39] drm/i915: move color_funcs " Jani Nikula
2022-08-12  4:49   ` Murthy, Arun R
2022-08-17  3:52   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 09/39] drm/i915: move and group gmbus members under display.gmbus Jani Nikula
2022-08-12  4:53   ` Murthy, Arun R
2022-08-12  6:56     ` Jani Nikula
2022-08-16  3:59       ` Murthy, Arun R
2022-08-16  7:50         ` Jani Nikula
2022-08-16  8:04           ` Murthy, Arun R
2022-08-17  3:56   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 10/39] drm/i915: move and group pps members under display.pps Jani Nikula
2022-08-12  4:54   ` Murthy, Arun R
2022-08-12  6:58     ` Jani Nikula
2022-08-16  4:03       ` Murthy, Arun R
2022-08-17  3:57   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 11/39] drm/i915: move dmc to display.dmc Jani Nikula
2022-08-12  4:58   ` Murthy, Arun R
2022-08-12  7:00     ` Jani Nikula
2022-08-16  4:07       ` Murthy, Arun R
2022-08-11 15:07 ` [Intel-gfx] [PATCH 12/39] drm/i915: move and split audio under display.audio and display.funcs Jani Nikula
2022-08-12  5:02   ` Murthy, Arun R
2022-08-12  7:03     ` Jani Nikula [this message]
2022-08-16  4:13       ` Murthy, Arun R
2022-08-16  8:02         ` Jani Nikula
2022-08-16  8:28           ` Murthy, Arun R
2022-08-17  4:14   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 13/39] drm/i915: move dpll under display.dpll Jani Nikula
2022-08-17  4:16   ` Lucas De Marchi
2022-08-24 10:35     ` Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 14/39] drm/i915: move and group fbdev under display.fbdev Jani Nikula
2022-08-22  3:58   ` Murthy, Arun R
2022-08-11 15:07 ` [Intel-gfx] [PATCH 15/39] drm/i915: move wm to display.wm Jani Nikula
2022-08-22  4:00   ` Murthy, Arun R
2022-08-11 15:07 ` [Intel-gfx] [PATCH 16/39] drm/i915: move and group hdcp under display.hdcp Jani Nikula
2022-08-22  4:02   ` Murthy, Arun R
2022-08-11 15:07 ` [Intel-gfx] [PATCH 17/39] drm/i915: move hotplug to display.hotplug Jani Nikula
2022-08-17  4:24   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 18/39] drm/i915: move overlay to display.overlay Jani Nikula
2022-08-22  4:10   ` Murthy, Arun R
2022-08-11 15:07 ` [Intel-gfx] [PATCH 19/39] drm/i915: move and group sagv under display.sagv Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 20/39] drm/i915: move and group max_bw and bw_obj under display.bw Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 21/39] drm/i915: move opregion to display.opregion Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 22/39] drm/i915: move and group cdclk under display.cdclk Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 23/39] drm/i915: move backlight to display.backlight Jani Nikula
2022-08-17  4:30   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 24/39] drm/i915: move mipi_mmio_base to display.dsi Jani Nikula
2022-08-17  4:32   ` Lucas De Marchi
2022-08-17  7:00     ` Jani Nikula
2022-08-17  7:21       ` Lucas De Marchi
2022-08-17  7:54         ` Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 25/39] drm/i915: move vbt to display.vbt Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 26/39] drm/i915: move fbc to display.fbc Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 27/39] drm/i915/vrr: drop window2_delay member from i915 Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 28/39] drm/i915: move and group power related members under display.power Jani Nikula
2022-08-17  4:41   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 29/39] drm/i915: move and group fdi members under display.fdi Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 30/39] drm/i915: move fb_tracking under display sub-struct Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 31/39] drm/i915: move INTEL_FRONTBUFFER_* macros to intel_frontbuffer.h Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 32/39] drm/i915: move dbuf under display sub-struct Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 33/39] drm/i915: move and group modeset_wq and flip_wq under display.wq Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 34/39] drm/i915: split gem quirks from display quirks Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 35/39] drm/i915/quirks: abstract checking for " Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 36/39] drm/i915/quirks: abstract quirks further by making quirk ids an enum Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 37/39] drm/i915: move quirks under display sub-struct Jani Nikula
2022-08-17  4:49   ` Lucas De Marchi
2022-08-11 15:07 ` [Intel-gfx] [PATCH 38/39] drm/i915: move atomic_helper " Jani Nikula
2022-08-11 15:07 ` [Intel-gfx] [PATCH 39/39] drm/i915: move and group properties under display.properties Jani Nikula
2022-08-11 15:15 ` [Intel-gfx] [PATCH 00/39] drm/i915: add display sub-struct to drm_i915_private Jani Nikula
2022-08-11 15:38 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2022-08-11 15:38 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-08-11 15:58 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-08-12  0:40 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2022-08-17  4:52 ` [Intel-gfx] [PATCH 00/39] " Lucas De Marchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k07erlj2.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=arun.r.murthy@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=lucas.demarchi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.