title: s/dislay/display/

On Thu, Nov 05, 2026 at 12:18:34AM GMT, Ville Syrjala wrote:
> From: Ville Syrjälä <[email protected]>
> 
> Add a place for upcoming mmio stuff in the form of
> a display->mmio struct and intel_de_init() to fill it up.
> For now we'll just stick the uncore pointer there, but
> it'll get replaced by something else eventually.
> 
> I originally wanted to call intel_de_init() just after
> intel_display_device_probe(), but i915 calls that before
> the uncore/mmio setup has been done. Right now that wouldn't
> matter since the &i915->uncore is valid nonetheless. But
> eventually I think we'll just want to get the 'void __iomem *'
> from the core driver and that of course need to be mapped
> before intel_de_init() is called. So put the init call into
> __intel_display_device_info_runtime_init() which should be the
> first place where we call any intel_de_*() stuff
> 
> Signed-off-by: Ville Syrjälä <[email protected]>

Reviewed-by: Michał Grzelak <[email protected]>

BR,
Michał

> ---
>  drivers/gpu/drm/i915/display/intel_de.c             | 5 +++++
>  drivers/gpu/drm/i915/display/intel_de.h             | 4 +++-
>  drivers/gpu/drm/i915/display/intel_display_core.h   | 5 +++++
>  drivers/gpu/drm/i915/display/intel_display_device.c | 7 +++++++
>  4 files changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_de.c 
> b/drivers/gpu/drm/i915/display/intel_de.c
> index a7417905192d..6b3d06147e58 100644
> --- a/drivers/gpu/drm/i915/display/intel_de.c
> +++ b/drivers/gpu/drm/i915/display/intel_de.c
> @@ -162,3 +162,8 @@ u16 intel_de_read16(struct intel_display *display, 
> intel_reg_t reg)
>  
>       return intel_uncore_read16(__to_uncore(display), reg);
>  }
> +
> +void intel_de_init(struct intel_display *display)
> +{
> +     display->mmio.uncore = to_intel_uncore(display->drm);
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_de.h 
> b/drivers/gpu/drm/i915/display/intel_de.h
> index d0a239a36980..f1135ee5071b 100644
> --- a/drivers/gpu/drm/i915/display/intel_de.h
> +++ b/drivers/gpu/drm/i915/display/intel_de.h
> @@ -14,9 +14,11 @@
>  
>  static inline struct intel_uncore *__to_uncore(struct intel_display *display)
>  {
> -     return to_intel_uncore(display->drm);
> +     return display->mmio.uncore;
>  }
>  
> +void intel_de_init(struct intel_display *display);
> +
>  u8 intel_de_read8(struct intel_display *display, intel_reg_t reg);
>  void intel_de_write8(struct intel_display *display, intel_reg_t reg, u8 val);
>  u16 intel_de_read16(struct intel_display *display, intel_reg_t reg);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h 
> b/drivers/gpu/drm/i915/display/intel_display_core.h
> index c80b4a2f74f9..35409f9abb2f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_core.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
> @@ -51,6 +51,7 @@ struct intel_hotplug_irq_funcs;
>  struct intel_initial_plane_config;
>  struct intel_opregion;
>  struct intel_overlay;
> +struct intel_uncore;
>  struct task_struct;
>  
>  /* Amount of SAGV/QGV points, BSpec precisely defines this */
> @@ -530,6 +531,10 @@ struct intel_display {
>               const struct intel_modeset_funcs *funcs;
>       } modeset;
>  
> +     struct {
> +             struct intel_uncore *uncore;
> +     } mmio;
> +
>       struct {
>               /* protected by wm.wm_mutex */
>               u16 linetime[I915_MAX_PIPES];
> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c 
> b/drivers/gpu/drm/i915/display/intel_display_device.c
> index c74256359c25..f1bd1252a960 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_device.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_device.c
> @@ -1798,6 +1798,13 @@ static void 
> __intel_display_device_info_runtime_init(struct intel_display *displ
>       struct intel_display_runtime_info *display_runtime = 
> DISPLAY_RUNTIME_INFO(display);
>       enum pipe pipe;
>  
> +     /*
> +      * TODO end of intel_display_device_probe() would be a more
> +      * logical place, but at the moment i915 calls that super
> +      * early when things aren't fully set up yet.
> +      */
> +     intel_de_init(display);
> +
>       BUILD_BUG_ON(BITS_PER_TYPE(display_runtime->pipe_mask) < 
> I915_MAX_PIPES);
>       BUILD_BUG_ON(BITS_PER_TYPE(display_runtime->cpu_transcoder_mask) < 
> I915_MAX_TRANSCODERS);
>       BUILD_BUG_ON(BITS_PER_TYPE(display_runtime->port_mask) < 
> I915_MAX_PORTS);
> -- 
> 2.56.0
> 

Reply via email to