summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.c
Commit message (Collapse)AuthorAgeFilesLines
* drm/nouveau: nvkm/vmm: implement raw ops to manage uvmmDanilo Krummrich2023-08-041-12/+15
| | | | | | | | | | | | | | The new VM_BIND UAPI uses the DRM GPU VA manager to manage the VA space. Hence, we a need a way to manipulate the MMUs page tables without going through the internal range allocator implemented by nvkm/vmm. This patch adds a raw interface for nvkm/vmm to pass the resposibility for managing the address space and the corresponding map/unmap/sparse operations to the upper layers. Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Danilo Krummrich <dakr@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230804182406.5222-11-dakr@redhat.com
* drm/nouveau/mmu: index engref by subdev typeBen Skeggs2021-02-111-1/+1
| | | | | | | None of the chipsets we use this on have instanced engines, so this is fine. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
* drm/nouveau/subdev: store full subdev name in structBen Skeggs2021-02-111-2/+1
| | | | | | | | Much easier to store this to avoid having to reconstruct a string for a specific subdev, taking into account whether it's instanced or not. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
* drm/nouveau/mmu: serialise mmu invalidations with private mutexBen Skeggs2021-02-111-2/+2
| | | | | | | nvkm_subdev.mutex is going away. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
* drm/nouveau/mmu: Add correct turing page kindsJames Jones2020-01-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Turing introduced a new simplified page kind scheme, reducing the number of possible page kinds from 256 to 16. It also is the first NVIDIA GPU in which the highest possible page kind value is not reserved as an "invalid" page kind. To address this, the invalid page kind is made an explicit property of the MMU HAL, and a new table of page kinds is added to the tu102 MMU HAL. One hardware change not addressed here is that 0x00 is technically no longer a supported page kind, and pitch surfaces are instead intended to share the block-linear generic page kind 0x06. However, because that will be a rather invasive change to nouveau and 0x00 still works fine in practice on Turing hardware, addressing this new behavior is deferred. Signed-off-by: James Jones <jajones@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/mmu: support initialisation of client-managed address-spacesBen Skeggs2019-02-201-3/+3
| | | | | | | | | | | | | | | | NVKM is currently responsible for managing the allocation of a client's GPU address-space, but there's various use-cases (ie. HMM address-space mirroring) where giving a client more direct control is desirable. This commit allows for a VMM to be created where the area allocated for NVKM is limited to a client-specified window, the remainder of address- space is controlled directly by the client. Leaving a window is necessary to support various internal requirements, but also to support existing allocation interfaces as not all of the HW is capable of working with a HMM allocation. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/mmu/mcp77: fix regressions in stolen memory handlingBen Skeggs2018-01-191-8/+8
| | | | | | | | - Fixes addition of stolen memory base address to PTEs. - Removes support for compression. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Tested-by: Pierre Moreau <pierre.morrow@free.fr>
* drm/nouveau/mmu/nv50,g84: implement new vmm backendBen Skeggs2017-11-021-1/+292
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/mmu/nv50,g84: implement vmm on top of new baseBen Skeggs2017-11-021-0/+94
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>