Re: [PATCH 1/3] drm/i915: add function for GT related workarounds

Mika Kuoppala
2016-01-25T14:41:12Z

tim.gore@intel.com writes:

> From: Tim Gore <tim.gore@intel.com>
>
> Add a function that is a place for workarounds that are
> GT related but not required per ring. This function is
> called on driver load and also after a reset and on
> resume, so it is safe for workarounds that get clobbered
> in these situations.
>
> Signed-off-by: Tim Gore <tim.gore@intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 7377b67..fe960d5 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2132,6 +2132,16 @@ static void i915_address_space_init(struct i915_address_space *vm,
> list_add_tail(&vm->global_link, &dev_priv->vm_list);
> }
>
> +void gtt_write_workarounds(struct drm_device *dev)
> +{

static void

This can be squashed with 2/3.

-Mika

> + struct drm_i915_private *dev_priv = dev->dev_private;
> +
> + /* This function is for gtt related workarounds. This function is
> + * called on driver load and after a GPU reset, so you can place
> + * workarounds here even if they get overwritten by GPU reset.
> + */
> +}
> +
> int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
> {
> struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -2148,6 +2158,8 @@ int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
>
> int i915_ppgtt_init_hw(struct drm_device *dev)
> {
> + gtt_write_workarounds(dev);
> +
> /* In the case of execlists, PPGTT is enabled by the context descriptor
> * and the PDPs are contained within the context itself. We don't
> * need to do anything here. */
> --
> 1.9.1