[Intel-gfx] [PATCH 03/11] drm/i915: Split out functions for different kinds of workarounds
Mika Kuoppala
mika.kuoppala at linux.intel.com
Thu Oct 12 12:35:01 UTC 2017
Chris Wilson <chris at chris-wilson.co.uk> writes:
> Quoting Oscar Mateo (2017-10-11 19:15:13)
>> There are different kind of workarounds (those that modify registers that
>> live in the context image, those that modify global registers, those that
>> whitelist registers, etc...) and they have different requirements in terms
>> of where they are applied and how. Also, by splitting them apart, it should
>> be easier to decide where a new workaround should go.
>>
>> v2:
>> - Add multiple MISSING_CASE
>> - Rebased
>>
>> Signed-off-by: Oscar Mateo <oscar.mateo at intel.com>
>> Cc: Chris Wilson <chris at chris-wilson.co.uk>
>> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
>> ---
>> drivers/gpu/drm/i915/i915_gem.c | 3 +
>> drivers/gpu/drm/i915/i915_gem_context.c | 5 +
>> drivers/gpu/drm/i915/intel_lrc.c | 10 +-
>> drivers/gpu/drm/i915/intel_ringbuffer.c | 4 +-
>> drivers/gpu/drm/i915/intel_workarounds.c | 698 +++++++++++++++++++------------
>> drivers/gpu/drm/i915/intel_workarounds.h | 8 +-
>> 6 files changed, 444 insertions(+), 284 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
>> index f76890b..119c456 100644
>> --- a/drivers/gpu/drm/i915/i915_gem.c
>> +++ b/drivers/gpu/drm/i915/i915_gem.c
>> @@ -35,6 +35,7 @@
>> #include "intel_drv.h"
>> #include "intel_frontbuffer.h"
>> #include "intel_mocs.h"
>> +#include "intel_workarounds.h"
>> #include "i915_gemfs.h"
>> #include <linux/dma-fence-array.h>
>> #include <linux/kthread.h>
>> @@ -4804,6 +4805,8 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv)
>> }
>> }
>>
>> + intel_mmio_workarounds_apply(dev_priv);
>
> Hmm, we still have an overlap with intel_init_clock_gating(). Perusing
> those there are several that deserve to be in intel_mmio_wa_apply
> instead.
>
> Are we happy with the split between "mmio_workarounds" and "clock_gating"?
>
> So are we looking at intel_display_workarounds, intel_gt_workarounds and
> intel_ctx_workarounds?
I vote for splitting into these 3 categories as mmio is just a method of
applying. If we have 3 lists in the testharness and do the usual
reset/suspend dances for each category, we would notice clearly if we
have added something that doesnt fit the domain constraints.
-Mika
More information about the Intel-gfx
mailing list