drm/i915: allocate i915->gt0 dynamically
authorJani Nikula <jani.nikula@intel.com>
Mon, 2 Oct 2023 08:47:03 +0000 (11:47 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 4 Oct 2023 15:27:46 +0000 (18:27 +0300)
Convert i915->gt0 to a pointer, and allocate it dynamically.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Acked-by: MichaƂ Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/01bf968aa431b77d491790178cbeece18b5fc4c0.1696236329.git.jani.nikula@intel.com
drivers/gpu/drm/i915/gt/intel_gt.c
drivers/gpu/drm/i915/i915_drv.h

index 93062c35e07235b2c8bd0cc199484df060a10fb9..a3d68ff4b1918f5dce45983ccb3da9ce88aab058 100644 (file)
@@ -62,7 +62,13 @@ void intel_gt_common_init_early(struct intel_gt *gt)
 /* Preliminary initialization of Tile 0 */
 int intel_root_gt_init_early(struct drm_i915_private *i915)
 {
-       struct intel_gt *gt = to_gt(i915);
+       struct intel_gt *gt;
+
+       gt = drmm_kzalloc(&i915->drm, sizeof(*gt), GFP_KERNEL);
+       if (!gt)
+               return -ENOMEM;
+
+       i915->gt0 = gt;
 
        gt->i915 = i915;
        gt->uncore = &i915->uncore;
index da2217c1615394e7978a532fc0229fb20b062124..70240f71d88610cc409ede396d47053518ace23a 100644 (file)
@@ -318,10 +318,10 @@ struct drm_i915_private {
        struct i915_hwmon *hwmon;
 
        /* Abstract the submission mechanism (legacy ringbuffer or execlists) away */
-       struct intel_gt gt0;
+       struct intel_gt *gt0;
 
        /*
-        * i915->gt[0] == &i915->gt0
+        * i915->gt[0] == i915->gt0
         */
        struct intel_gt *gt[I915_MAX_GT];
 
@@ -382,9 +382,9 @@ static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
        return pci_get_drvdata(pdev);
 }
 
-static inline struct intel_gt *to_gt(struct drm_i915_private *i915)
+static inline struct intel_gt *to_gt(const struct drm_i915_private *i915)
 {
-       return &i915->gt0;
+       return i915->gt0;
 }
 
 /* Simple iterator over all initialised engines */