Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d10cfee4 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin
Browse files

drm/i915: Convert gt workarounds to intel_gt

parent cf6844b2
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -6,6 +6,7 @@


#include "i915_drv.h"
#include "i915_drv.h"
#include "intel_context.h"
#include "intel_context.h"
#include "intel_gt.h"
#include "intel_workarounds.h"
#include "intel_workarounds.h"


/**
/**
@@ -984,9 +985,9 @@ wa_list_apply(struct intel_uncore *uncore, const struct i915_wa_list *wal)
	spin_unlock_irqrestore(&uncore->lock, flags);
	spin_unlock_irqrestore(&uncore->lock, flags);
}
}


void intel_gt_apply_workarounds(struct drm_i915_private *i915)
void intel_gt_apply_workarounds(struct intel_gt *gt)
{
{
	wa_list_apply(&i915->uncore, &i915->gt_wa_list);
	wa_list_apply(gt->uncore, &gt->i915->gt_wa_list);
}
}


static bool wa_list_verify(struct intel_uncore *uncore,
static bool wa_list_verify(struct intel_uncore *uncore,
@@ -1005,10 +1006,9 @@ static bool wa_list_verify(struct intel_uncore *uncore,
	return ok;
	return ok;
}
}


bool intel_gt_verify_workarounds(struct drm_i915_private *i915,
bool intel_gt_verify_workarounds(struct intel_gt *gt, const char *from)
				 const char *from)
{
{
	return wa_list_verify(&i915->uncore, &i915->gt_wa_list, from);
	return wa_list_verify(gt->uncore, &gt->i915->gt_wa_list, from);
}
}


static void
static void
+3 −3
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@
struct drm_i915_private;
struct drm_i915_private;
struct i915_request;
struct i915_request;
struct intel_engine_cs;
struct intel_engine_cs;
struct intel_gt;


static inline void intel_wa_list_free(struct i915_wa_list *wal)
static inline void intel_wa_list_free(struct i915_wa_list *wal)
{
{
@@ -25,9 +26,8 @@ void intel_engine_init_ctx_wa(struct intel_engine_cs *engine);
int intel_engine_emit_ctx_wa(struct i915_request *rq);
int intel_engine_emit_ctx_wa(struct i915_request *rq);


void intel_gt_init_workarounds(struct drm_i915_private *i915);
void intel_gt_init_workarounds(struct drm_i915_private *i915);
void intel_gt_apply_workarounds(struct drm_i915_private *i915);
void intel_gt_apply_workarounds(struct intel_gt *gt);
bool intel_gt_verify_workarounds(struct drm_i915_private *i915,
bool intel_gt_verify_workarounds(struct intel_gt *gt, const char *from);
				 const char *from);


void intel_engine_init_whitelist(struct intel_engine_cs *engine);
void intel_engine_init_whitelist(struct intel_engine_cs *engine);
void intel_engine_apply_whitelist(struct intel_engine_cs *engine);
void intel_engine_apply_whitelist(struct intel_engine_cs *engine);
+2 −2
Original line number Original line Diff line number Diff line
@@ -1248,9 +1248,9 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv)
			   LOWER_SLICE_ENABLED : LOWER_SLICE_DISABLED);
			   LOWER_SLICE_ENABLED : LOWER_SLICE_DISABLED);


	/* Apply the GT workarounds... */
	/* Apply the GT workarounds... */
	intel_gt_apply_workarounds(dev_priv);
	intel_gt_apply_workarounds(&dev_priv->gt);
	/* ...and determine whether they are sticking. */
	/* ...and determine whether they are sticking. */
	intel_gt_verify_workarounds(dev_priv, "init");
	intel_gt_verify_workarounds(&dev_priv->gt, "init");


	intel_gt_init_swizzling(&dev_priv->gt);
	intel_gt_init_swizzling(&dev_priv->gt);