summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/sun4i
diff options
context:
space:
mode:
authorBoris Brezillon <boris.brezillon@collabora.com>2020-01-15 20:15:54 -0600
committerRob Herring <robh@kernel.org>2020-01-21 10:32:55 -0600
commitbdefca2d8dc0f80bbe49e08bf52a717146490706 (patch)
tree86619f2f829e4ef80ea3ada90acf3882c56e2e68 /drivers/gpu/drm/sun4i
parentdb1a079569687eeb7f617a50bbb0474e9e11b64a (diff)
downloadlinux-bdefca2d8dc0f80bbe49e08bf52a717146490706.tar.bz2
drm/panfrost: Add the panfrost_gem_mapping concept
With the introduction of per-FD address space, the same BO can be mapped in different address space if the BO is globally visible (GEM_FLINK) and opened in different context or if the dmabuf is self-imported. The current implementation does not take case into account, and attaches the mapping directly to the panfrost_gem_object. Let's create a panfrost_gem_mapping struct and allow multiple mappings per BO. The mappings are refcounted which helps solve another problem where mappings were torn down (GEM handle closed by userspace) while GPU jobs accessing those BOs were still in-flight. Jobs now keep a reference on the mappings they use. v2 (robh): - Minor review comment clean-ups from Steven - Use list_is_singular helper - Just WARN if we add a mapping when madvise state is not WILLNEED. With that, drop the use of object_name_lock. v3 (robh): - Revert returning list iterator in panfrost_gem_mapping_get() Fixes: a5efb4c9a562 ("drm/panfrost: Restructure the GEM object creation") Fixes: 7282f7645d06 ("drm/panfrost: Implement per FD address spaces") Cc: <stable@vger.kernel.org> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Steven Price <steven.price@arm.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200116021554.15090-1-robh@kernel.org
Diffstat (limited to 'drivers/gpu/drm/sun4i')
0 files changed, 0 insertions, 0 deletions