]> asedeno.scripts.mit.edu Git - linux.git/commit
drm/etnaviv: implement softpin
authorLucas Stach <l.stach@pengutronix.de>
Fri, 2 Aug 2019 12:27:33 +0000 (14:27 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Thu, 15 Aug 2019 10:07:47 +0000 (12:07 +0200)
commit088880ddc0b20086b71bb87b805fb63ff07c35f2
treef4da28a492fc07725cf6091692f28ad935071d2a
parent17eae23b08207a8954f77ca74caeaeb72a04da67
drm/etnaviv: implement softpin

With softpin we allow the userspace to take control over the GPU virtual
address space. The new capability is relected by a bump of the minor DRM
version. There are a few restrictions for userspace to take into
account:

1. The kernel reserves a bit of the address space to implement zero page
faulting and mapping of the kernel internal ring buffer. Userspace can
query the kernel for the first usable GPU VM address via
ETNAVIV_PARAM_SOFTPIN_START_ADDR.

2. We only allow softpin on GPUs, which implement proper process
separation via PPAS. If softpin is not available the softpin start
address will be set to ~0.

3. Softpin is all or nothing. A submit using softpin must not use any
address fixups via relocs.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Guido Günther <agx@sigxcpu.org>
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
drivers/gpu/drm/etnaviv/etnaviv_drv.c
drivers/gpu/drm/etnaviv/etnaviv_drv.h
drivers/gpu/drm/etnaviv/etnaviv_gem.c
drivers/gpu/drm/etnaviv/etnaviv_gem.h
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
drivers/gpu/drm/etnaviv/etnaviv_gpu.c
include/uapi/drm/etnaviv_drm.h