drm/i915: Store some backpointers in struct intel_gt
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 21 Jun 2019 07:07:42 +0000 (08:07 +0100)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Fri, 21 Jun 2019 12:48:17 +0000 (13:48 +0100)
We need an easy way to get back to i915 and uncore.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190621070811.7006-4-tvrtko.ursulin@linux.intel.com
drivers/gpu/drm/i915/gt/intel_gt.c
drivers/gpu/drm/i915/gt/intel_gt.h
drivers/gpu/drm/i915/gt/intel_gt_types.h
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/selftests/mock_gem_device.c

index 10adee1120e62952cce306f194cdcf94310a7715..eccb52cf37b60f541a96d157f7a303e45ad2164f 100644 (file)
@@ -3,10 +3,15 @@
  * Copyright © 2019 Intel Corporation
  */
 
+#include "i915_drv.h"
+
 #include "intel_gt.h"
 
-void intel_gt_init_early(struct intel_gt *gt)
+void intel_gt_init_early(struct intel_gt *gt, struct drm_i915_private *i915)
 {
+       gt->i915 = i915;
+       gt->uncore = &i915->uncore;
+
        INIT_LIST_HEAD(&gt->active_rings);
        INIT_LIST_HEAD(&gt->closed_vma);
 
index 63284ca81d69c405cc44b2e8a90eac973f2d508a..0dd218e533682cb57d9ee25d00c6d840e129aa36 100644 (file)
@@ -8,6 +8,8 @@
 
 #include "intel_gt_types.h"
 
-void intel_gt_init_early(struct intel_gt *gt);
+struct drm_i915_private;
+
+void intel_gt_init_early(struct intel_gt *gt, struct drm_i915_private *i915);
 
 #endif /* __INTEL_GT_H__ */
index 72e94aba8b2a437a1ed5841e261e6e04dac28837..86a4985f8e84da245630ff84b5db9abe0713e4a9 100644 (file)
 #include "i915_vma.h"
 #include "intel_wakeref.h"
 
+struct drm_i915_private;
+struct intel_uncore;
+
 struct intel_gt {
+       struct drm_i915_private *i915;
+       struct intel_uncore *uncore;
+
        struct i915_gt_timelines {
                struct mutex mutex; /* protects list, tainted by GPU */
                struct list_head active_list;
index 961f76d3efa4106e3848a8ec9baf51dc5b36b4b9..df11a0d6d52d7d555f5d72148813006ed11572bd 100644 (file)
@@ -923,7 +923,7 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv)
        if (ret < 0)
                goto err_engines;
 
-       intel_gt_init_early(&dev_priv->gt);
+       intel_gt_init_early(&dev_priv->gt, dev_priv);
 
        ret = i915_gem_init_early(dev_priv);
        if (ret < 0)
index 8dc9296892e623d7cf34654a86ef48af54d14b92..2b87200477f693ef373141d783636efa3c42b4c0 100644 (file)
@@ -180,7 +180,7 @@ struct drm_i915_private *mock_gem_device(void)
 
        mock_uncore_init(&i915->uncore);
        i915_gem_init__mm(i915);
-       intel_gt_init_early(&i915->gt);
+       intel_gt_init_early(&i915->gt, i915);
        intel_gt_pm_init(i915);
        atomic_inc(&i915->gt.wakeref.count); /* disable; no hw support */