This function will be used later by the per (context,engine) power
programming interface.

Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h            |  3 +++
 drivers/gpu/drm/i915/i915_gem_execbuffer.c | 18 +++++++++---------
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index f5d0e816008d..60c63f141a47 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3380,6 +3380,9 @@ int i915_gem_set_domain_ioctl(struct drm_device *dev, 
void *data,
                              struct drm_file *file_priv);
 int i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
                             struct drm_file *file_priv);
+struct intel_engine_cs *i915_gem_engine_from_flags(struct drm_i915_private 
*dev_priv,
+                                                  struct drm_file *file,
+                                                  u64 flags);
 int i915_gem_execbuffer(struct drm_device *dev, void *data,
                        struct drm_file *file_priv);
 int i915_gem_execbuffer2(struct drm_device *dev, void *data,
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index d733c4d5a500..6120d22ac145 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -2008,12 +2008,12 @@ static const enum intel_engine_id 
user_ring_map[I915_USER_RINGS + 1] = {
        [I915_EXEC_VEBOX]       = VECS
 };
 
-static struct intel_engine_cs *
-eb_select_engine(struct drm_i915_private *dev_priv,
-                struct drm_file *file,
-                struct drm_i915_gem_execbuffer2 *args)
+struct intel_engine_cs *
+i915_gem_engine_from_flags(struct drm_i915_private *dev_priv,
+                          struct drm_file *file,
+                          u64 flags)
 {
-       unsigned int user_ring_id = args->flags & I915_EXEC_RING_MASK;
+       unsigned int user_ring_id = flags & I915_EXEC_RING_MASK;
        struct intel_engine_cs *engine;
 
        if (user_ring_id > I915_USER_RINGS) {
@@ -2022,14 +2022,14 @@ eb_select_engine(struct drm_i915_private *dev_priv,
        }
 
        if ((user_ring_id != I915_EXEC_BSD) &&
-           ((args->flags & I915_EXEC_BSD_MASK) != 0)) {
+           ((flags & I915_EXEC_BSD_MASK) != 0)) {
                DRM_DEBUG("execbuf with non bsd ring but with invalid "
-                         "bsd dispatch flags: %d\n", (int)(args->flags));
+                         "bsd dispatch flags: %d\n", (int)(flags));
                return NULL;
        }
 
        if (user_ring_id == I915_EXEC_BSD && HAS_BSD2(dev_priv)) {
-               unsigned int bsd_idx = args->flags & I915_EXEC_BSD_MASK;
+               unsigned int bsd_idx = flags & I915_EXEC_BSD_MASK;
 
                if (bsd_idx == I915_EXEC_BSD_DEFAULT) {
                        bsd_idx = gen8_dispatch_bsd_engine(dev_priv, file);
@@ -2220,7 +2220,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
        if (args->flags & I915_EXEC_IS_PINNED)
                eb.batch_flags |= I915_DISPATCH_PINNED;
 
-       eb.engine = eb_select_engine(eb.i915, file, args);
+       eb.engine = i915_gem_engine_from_flags(eb.i915, file, args->flags);
        if (!eb.engine)
                return -EINVAL;
 
-- 
2.14.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to