drm/i915: Parameterize binder context creation
authorNirmoy Das <nirmoy.das@intel.com>
Tue, 26 Sep 2023 08:37:39 +0000 (10:37 +0200)
committerNirmoy Das <nirmoy.das@intel.com>
Sat, 30 Sep 2023 11:49:26 +0000 (13:49 +0200)
Add i915_ggtt_require_binder() to indicate that i915
needs to create binder context which will be used
by subsequent patch to enable i915_address_space vfuncs
that will use GPU commands to update GGTT.

Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Oak Zeng <oak.zeng@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230926083742.14740-5-nirmoy.das@intel.com
drivers/gpu/drm/i915/gt/intel_engine_cs.c
drivers/gpu/drm/i915/gt/intel_gtt.c
drivers/gpu/drm/i915/gt/intel_gtt.h

index 64f51defc2cb33654906eec0f4361aae15e0d8e8..b1a1d07e2e217937c12cd91d57e073f2ea77ae73 100644 (file)
@@ -1477,7 +1477,7 @@ static int engine_init_common(struct intel_engine_cs *engine)
         * engines as well but BCS should be less busy engine so pick that for
         * GGTT updates.
         */
-       if (engine->id == BCS0) {
+       if (i915_ggtt_require_binder(engine->i915) && engine->id == BCS0) {
                bce = create_ggtt_bind_context(engine);
                if (IS_ERR(bce)) {
                        ret = PTR_ERR(bce);
index 13944a14ea2d1b1d7a6082889c92c34addab3031..4c89eb8d9af7d8ec555989c628877ef695816647 100644 (file)
 #include "intel_gt_regs.h"
 #include "intel_gtt.h"
 
+bool i915_ggtt_require_binder(struct drm_i915_private *i915)
+{
+       return false;
+}
 
 static bool intel_ggtt_update_needs_vtd_wa(struct drm_i915_private *i915)
 {
index 6a3c7a1bdf53d063ae09b50f5f7876d2eac9e245..49835a86afd7ee8997ebd6615f824fc299640cc2 100644 (file)
@@ -691,4 +691,6 @@ static inline struct sgt_dma {
        return (struct sgt_dma){ sg, addr, addr + sg_dma_len(sg) };
 }
 
+bool i915_ggtt_require_binder(struct drm_i915_private *i915);
+
 #endif