drm/nouveau/core/client: allow creation of subclients
authorBen Skeggs <bskeggs@redhat.com>
Sun, 22 May 2016 10:35:16 +0000 (20:35 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 17 Feb 2017 05:15:00 +0000 (15:15 +1000)
commit04b8867758a4e1fca9d349f4a279fff8855db58c
treeed6ce57d32f045d60f834942e5232ac9967caa93
parent7c413feb7f9907c72aad7ea8f43af8ca8893c2bc
drm/nouveau/core/client: allow creation of subclients

We want a supervisor client of NVKM (such as the DRM) to be able to
allow sharing of resources (such as memory objects) between clients.

To allow this, the supervisor creates all its clients as children of
itself, and will use an upcoming ioctl to permit sharing.

Currently it's not possible for indirect clients to use subclients.
Supporting this will require an additional field in the main ioctl.
This isn't important currently, but will need to be fixed for virt.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvif/client.h
drivers/gpu/drm/nouveau/include/nvif/driver.h
drivers/gpu/drm/nouveau/include/nvif/if0000.h
drivers/gpu/drm/nouveau/include/nvkm/core/client.h
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/nouveau/nvif/Kbuild
drivers/gpu/drm/nouveau/nvif/client.c
drivers/gpu/drm/nouveau/nvif/driver.c [new file with mode: 0644]
drivers/gpu/drm/nouveau/nvkm/core/client.c