[Intel-gfx] [PATCH 3/4] drm/i915: move display device and runtime info to struct intel_display

Matt Roper matthew.d.roper at intel.com
Thu Jun 8 22:04:53 UTC 2023


On Thu, Jun 08, 2023 at 06:09:04PM +0300, Jani Nikula wrote:
> Continue moving all things display further into display files and
> structures.
> 
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display_core.h | 9 +++++++++
>  drivers/gpu/drm/i915/i915_drv.h                   | 5 ++---
>  drivers/gpu/drm/i915/intel_device_info.c          | 7 +++----
>  drivers/gpu/drm/i915/intel_device_info.h          | 4 ----
>  4 files changed, 14 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
> index 8d2243c71dd8..a65ed8a52ce4 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_core.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
> @@ -19,6 +19,7 @@
>  #include "intel_cdclk.h"
>  #include "intel_display_limits.h"
>  #include "intel_display_power.h"
> +#include "intel_display_device.h"

Minor nitpick:  the includes aren't sorted here.

Otherwise,

Acked-by: Matt Roper <matthew.d.roper at intel.com>


>  #include "intel_dpll_mgr.h"
>  #include "intel_fbc.h"
>  #include "intel_global_state.h"
> @@ -429,6 +430,14 @@ struct intel_display {
>  		u32 state;
>  	} hti;
>  
> +	struct {
> +		/* Access with DISPLAY_INFO() */
> +		const struct intel_display_device_info *__device_info;
> +
> +		/* Access with DISPLAY_RUNTIME_INFO() */
> +		struct intel_display_runtime_info __runtime_info;
> +	} info;
> +
>  	struct {
>  		bool false_color;
>  	} ips;
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b457a37e67c4..2d8331d435f1 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -205,7 +205,6 @@ struct drm_i915_private {
>  
>  	const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
>  	struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
> -	struct intel_display_runtime_info __display_runtime; /* Access with DISPLAY_RUNTIME_INFO() */
>  	struct intel_driver_caps caps;
>  
>  	struct i915_dsm dsm;
> @@ -407,9 +406,9 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
>  	     (engine__) = rb_to_uabi_engine(rb_next(&(engine__)->uabi_node)))
>  
>  #define INTEL_INFO(i915)	(&(i915)->__info)
> -#define DISPLAY_INFO(i915)	(INTEL_INFO(i915)->display)
>  #define RUNTIME_INFO(i915)	(&(i915)->__runtime)
> -#define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->__display_runtime)
> +#define DISPLAY_INFO(i915)	((i915)->display.info.__device_info)
> +#define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->display.info.__runtime_info)
>  #define DRIVER_CAPS(i915)	(&(i915)->caps)
>  
>  #define INTEL_DEVID(i915)	(RUNTIME_INFO(i915)->device_id)
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> index 53d316804071..d51bbdbe53ab 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -387,7 +387,6 @@ static const struct intel_display_device_info no_display = {};
>   */
>  void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
>  {
> -	struct intel_device_info *info = mkwrite_device_info(dev_priv);
>  	struct intel_runtime_info *runtime = RUNTIME_INFO(dev_priv);
>  
>  	if (HAS_DISPLAY(dev_priv))
> @@ -397,7 +396,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
>  	if (!HAS_DISPLAY(dev_priv)) {
>  		dev_priv->drm.driver_features &= ~(DRIVER_MODESET |
>  						   DRIVER_ATOMIC);
> -		info->display = &no_display;
> +		dev_priv->display.info.__device_info = &no_display;
>  	}
>  
>  	/* Disable nuclear pageflip by default on pre-g4x */
> @@ -440,8 +439,8 @@ void intel_device_info_driver_create(struct drm_i915_private *i915,
>  	memcpy(runtime, &INTEL_INFO(i915)->__runtime, sizeof(*runtime));
>  
>  	/* Probe display support */
> -	info->display = intel_display_device_probe(i915, info->has_gmd_id,
> -						   &ver, &rel, &step);
> +	i915->display.info.__device_info = intel_display_device_probe(i915, info->has_gmd_id,
> +								      &ver, &rel, &step);
>  	memcpy(DISPLAY_RUNTIME_INFO(i915),
>  	       &DISPLAY_INFO(i915)->__runtime_defaults,
>  	       sizeof(*DISPLAY_RUNTIME_INFO(i915)));
> diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
> index 069291b3bd37..c8b4bee5e592 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.h
> +++ b/drivers/gpu/drm/i915/intel_device_info.h
> @@ -29,8 +29,6 @@
>  
>  #include "intel_step.h"
>  
> -#include "display/intel_display_device.h"
> -
>  #include "gt/intel_engine_types.h"
>  #include "gt/intel_context_types.h"
>  #include "gt/intel_sseu.h"
> @@ -241,8 +239,6 @@ struct intel_device_info {
>  	DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG);
>  #undef DEFINE_FLAG
>  
> -	const struct intel_display_device_info *display;
> -
>  	/*
>  	 * Initial runtime info. Do not access outside of i915_driver_create().
>  	 */
> -- 
> 2.39.2
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-gfx mailing list