[Intel-gfx] [PATCH 16/16] drm/i915: make device info a pointer to static const data
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Thu Aug 18 09:57:07 UTC 2022
Op 20-06-2022 om 10:49 schreef Jani Nikula:
> Now that the device info is no longer modified runtime, we don't need to
> make a copy of it, and we can convert i915->__info into a pointer to
> static const data. Also remove mkwrite_device_info().
>
> This does increase the text size slightly.
>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>
> ---
>
> An alternative is to keep copying device info, but casting away the
> const only once at the copy time, removing mkwrite_device_info().
> ---
> drivers/gpu/drm/i915/i915_driver.c | 8 ++------
> drivers/gpu/drm/i915/i915_drv.h | 11 ++---------
> 2 files changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 5969cc7805d3..9c9c492e97a8 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -793,9 +793,6 @@ static void i915_welcome_messages(struct drm_i915_private *dev_priv)
> static struct drm_i915_private *
> i915_driver_create(struct pci_dev *pdev, const struct pci_device_id *ent)
> {
> - const struct intel_device_info *match_info =
> - (struct intel_device_info *)ent->driver_data;
> - struct intel_device_info *device_info;
> struct intel_runtime_info *runtime;
> struct drm_i915_private *i915;
>
> @@ -809,9 +806,8 @@ i915_driver_create(struct pci_dev *pdev, const struct pci_device_id *ent)
> /* Device parameters start as a copy of module parameters. */
> i915_params_copy(&i915->params, &i915_modparams);
>
> - /* Setup the write-once "constant" device info */
> - device_info = mkwrite_device_info(i915);
> - memcpy(device_info, match_info, sizeof(*device_info));
> + /* Static const device info. */
> + i915->__info = (const struct intel_device_info *)ent->driver_data;
>
> /* Initialize initial runtime info from static const data and pdev. */
> runtime = RUNTIME_INFO(i915);
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 89472440947c..a2a57f07c5be 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -380,7 +380,7 @@ struct drm_i915_private {
> /* i915 device parameters */
> struct i915_params params;
>
> - const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
> + const struct intel_device_info *__info; /* Use INTEL_INFO() to access. */
> struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
> struct intel_driver_caps caps;
>
> @@ -848,7 +848,7 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
> GENMASK(INTEL_FRONTBUFFER_BITS_PER_PIPE * ((pipe) + 1) - 1, \
> INTEL_FRONTBUFFER_BITS_PER_PIPE * (pipe))
>
> -#define INTEL_INFO(dev_priv) (&(dev_priv)->__info)
> +#define INTEL_INFO(__i915) (__i915->__info)
> #define RUNTIME_INFO(dev_priv) (&(dev_priv)->__runtime)
> #define DRIVER_CAPS(dev_priv) (&(dev_priv)->caps)
>
> @@ -1432,13 +1432,6 @@ void i915_gem_driver_release(struct drm_i915_private *dev_priv);
>
> int i915_gem_open(struct drm_i915_private *i915, struct drm_file *file);
>
> -/* intel_device_info.c */
> -static inline struct intel_device_info *
> -mkwrite_device_info(struct drm_i915_private *dev_priv)
> -{
> - return (struct intel_device_info *)INTEL_INFO(dev_priv);
> -}
> -
> static inline enum i915_map_type
> i915_coherent_map_type(struct drm_i915_private *i915,
> struct drm_i915_gem_object *obj, bool always_coherent)
I think just moving around things is safest in this case. I believe all should be moved to the new display sub-struct, but this is a start of making that easier.
For the series, except patch 5:
Reviewed-by: Maarten Lankhort <maarten.lankhorst at linux.intel.com>
More information about the Intel-gfx
mailing list