linux/drivers/gpu/drm/nouveau
Ben Skeggs b597764327 drm/nouveau/mmu/gk104,gk20a: implement new vmm backend
Adds support for:
- 64KiB big page size.
- System-memory PTs.
- LPTE "invalid" state.
- (Tegra) Use of video memory aperture.

Adds support for marking LPTEs invalid, resulting in the corresponding
SPTEs being ignored, which is supposed to speed up TLB invalidates.

On The Tegra side, this will switch to using the video memory aperture
for all mappings.  The HW will still target non-coherent system memory,
but this aperture needs to be selected in order to support compression.

Tegra's instmem backend somewhat cheated to get this effect previously.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2017-11-02 13:32:29 +10:00
..
dispnv04 drm/nouveau/core/object: allow arguments to be passed to map function 2017-11-02 13:32:16 +10:00
include drm/nouveau/mmu/gf100: implement new vmm backend 2017-11-02 13:32:29 +10:00
nvif drm/nouveau/core/object: allow arguments to be passed to map function 2017-11-02 13:32:16 +10:00
nvkm drm/nouveau/mmu/gk104,gk20a: implement new vmm backend 2017-11-02 13:32:29 +10:00
Kbuild drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
Kconfig drm/nouveau/mmu: implement new vmm backend 2017-11-02 13:32:27 +10:00
nouveau_abi16.c drm/nouveau/core/mm: have users explicitly define heap identifiers 2017-11-02 13:32:22 +10:00
nouveau_abi16.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_acpi.c ACPI: Switch to use generic guid_t in acpi_evaluate_dsm() 2017-06-07 12:20:49 +02:00
nouveau_acpi.h
nouveau_backlight.c drm/nouveau: allocate device object for every client 2017-02-17 15:15:04 +10:00
nouveau_bios.c drm/nouveau/kms: add 8.1Gbps DP link rate 2017-11-02 13:32:15 +10:00
nouveau_bios.h
nouveau_bo.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_bo.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_chan.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_chan.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_connector.c drm: Pass struct drm_file * to __drm_mode_object_find [v2] 2017-10-12 10:03:04 +10:00
nouveau_connector.h
nouveau_crtc.h drm: nouveau: remove dead code and pointless local lut storage 2017-08-04 11:36:11 +02:00
nouveau_debugfs.c drm/nouveau: Remove nouveau_drm_debugfs_cleanup() 2017-03-01 16:09:52 +01:00
nouveau_debugfs.h drm/nouveau: Remove nouveau_drm_debugfs_cleanup() 2017-03-01 16:09:52 +01:00
nouveau_display.c drm/nouveau/kms/nv04-nv40: prevent undisplayable framebuffers from creation 2017-08-22 18:04:34 +10:00
nouveau_display.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_dma.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_dma.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_dp.c
nouveau_drm.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_drv.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_encoder.h drm/nouveau/disp: introduce acquire/release display path methods 2017-06-16 14:04:57 +10:00
nouveau_fbcon.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_fbcon.h
nouveau_fence.c drm/nouveau: remove unused sysmem fence code 2017-11-02 13:32:20 +10:00
nouveau_fence.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_gem.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_gem.h drm/nouveau: split various bo flags out into their own members 2017-11-02 13:32:20 +10:00
nouveau_hwmon.c drm/nouveau/hwmon: Change permissions to numeric 2017-06-16 14:05:03 +10:00
nouveau_hwmon.h
nouveau_ioc32.c
nouveau_ioctl.h
nouveau_led.c drm/nouveau/drm/nouveau/led: prevent a possible use-after-free 2017-02-17 17:38:07 +10:00
nouveau_led.h
nouveau_mem.c drm/nouveau: allocate vram with nvkm_ram_get() 2017-11-02 13:32:23 +10:00
nouveau_mem.h drm/nouveau: directly handle comptag allocation 2017-11-02 13:32:23 +10:00
nouveau_nvif.c
nouveau_platform.c drm/nouveau/platform: support for probing GP10B 2017-04-06 14:39:04 +10:00
nouveau_platform.h
nouveau_prime.c drm/nouveau: pass nvif_client to nouveau_bo_new() instead of drm_device 2017-02-17 15:15:02 +10:00
nouveau_reg.h
nouveau_sgdma.c drm/nouveau: separate buffer object backing memory from nvkm structures 2017-11-02 13:32:21 +10:00
nouveau_ttm.c drm/nouveau: allocate vram with nvkm_ram_get() 2017-11-02 13:32:23 +10:00
nouveau_ttm.h
nouveau_usif.c drm: Remove drm_pending_event->pid 2017-03-14 14:38:33 +01:00
nouveau_usif.h
nouveau_vga.c drm/nouveau: Skip vga_fini on non-PCI device 2017-06-16 14:05:04 +10:00
nouveau_vga.h
nouveau_vmm.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nouveau_vmm.h drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nv04_fbcon.c drm/nouveau: allocate device object for every client 2017-02-17 15:15:04 +10:00
nv04_fence.c
nv10_fence.c
nv10_fence.h
nv17_fence.c drm/nouveau: s/mem/reg/ for struct ttm_mem_reg variables 2017-02-17 15:15:04 +10:00
nv50_display.c drm/nouveau: split various bo flags out into their own members 2017-11-02 13:32:20 +10:00
nv50_display.h
nv50_fbcon.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nv50_fence.c drm/nouveau: s/mem/reg/ for struct ttm_mem_reg variables 2017-02-17 15:15:04 +10:00
nv84_fence.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nvc0_fbcon.c drm/nouveau: separate constant-va tracking from nvkm vma structure 2017-11-02 13:32:21 +10:00
nvc0_fence.c