]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gem: Refactor placement setup for i915_gem_object_create* (v2)
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 23 Jul 2021 17:21:36 +0000 (12:21 -0500)
committerMatthew Auld <matthew.auld@intel.com>
Mon, 26 Jul 2021 15:37:31 +0000 (16:37 +0100)
commitac1a11cf04d2d34f4d83bc7376197860045d74a3
tree47ba647d9f6b623ada037e3e3f778ee4a34469de
parentaa3622de6c0a26a7d69a945471a39033ea959994
drm/i915/gem: Refactor placement setup for i915_gem_object_create* (v2)

Since we don't allow changing the set of regions after creation, we can
make ext_set_placements() build up the region set directly in the
create_ext and assign it to the object later.  This is similar to what
we did for contexts with the proto-context only simpler because there's
no funny object shuffling.  This will be used in the next patch to allow
us to de-duplicate a bunch of code.  Also, since we know the maximum
number of regions up-front, we can use a fixed-size temporary array for
the regions.  This simplifies memory management a bit for this new
delayed approach.

v2 (Matthew Auld):
 - Get rid of MAX_N_PLACEMENTS
 - Drop kfree(placements) from set_placements()
v3 (Matthew Auld):
 - Properly set ext_data->n_placements

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210723172142.3273510-3-jason@jlekstrand.net
drivers/gpu/drm/i915/gem/i915_gem_create.c