Hey Dave, Various fixes/cleanups, along with initial support for SVM features utilising HMM address-space mirroring and device memory migration. There's a lot more work to do in these areas, both in terms of features and efficiency, but these can slowly trickle in later down the track.
Thanks, Ben. The following changes since commit c06de56121e3ac0f0f1f4a081c041654ffcacd62: Merge v5.0-rc7 into drm-next (2019-02-18 13:27:15 +1000) are available in the Git repository at: git://github.com/skeggsb/linux linux-5.1 for you to fetch changes up to ead865d70199286f82c178ededd2f8c6dbb89b75: drm/nouveau/dmem: use dma addresses during migration copies (2019-02-18 15:24:51 +1000) ---------------------------------------------------------------- Ben Skeggs (49): drm/nouveau/devinit/tu102: rename implementation from tu104 drm/nouveau/mc/tu102: rename implementation from tu104 drm/nouveau/mmu/tu102: rename implementation from tu104 drm/nouveau/bar/tu102: rename implementation from tu104 drm/nouveau/fault/tu102: rename implementation from tu104 drm/nouveau/disp/tu102: rename implementation from tu104 drm/nouveau/fifo/tu102: rename implementation from tu104 drm/nouveau/ce/tu102: rename implementation from tu104 drm/nouveau/core: define GSP subdev drm/nouveau/top: add function to lookup PRI address for devices drm/nouveau/top/gv100-: translate entry for the GSP drm/nouveau/gsp/gv100-: instantiate GSP falcon drm/nouveau/nvdec/gp102-: utilise engine PRI address from TOP drm/nouveau/nvdec/tu102-: instantiate NVDEC0 falcon drm/nouveau/sec2: utilise engine PRI address from TOP drm/nouveau/sec2/tu102-: instantiate SEC2 falcon drm/nouveau/secboot: fix missing newline in error messages drm/nouveau/bios/init: label existing INIT_GENERIC_CONDITION types drm/nouveau/bios/init: handle INIT_GENERIC_CONDITION_ID_NO_PANEL_SEQ_DELAYS drm/nouveau/disp/gf119-: decode exception reason to human-readable string drm/nouveau: allocate kernel channel(s) before initialising display drm/nouveau/kms: display destroy/init/fini hooks can be static drm/nouveau/kms/nv04-nv4x: move a bunch of pre-nv50 page flip code to dispnv04 drm/nouveau/kms/nv04-nv4x: move suspend code to dispnv04 fini hook drm/nouveau/kms/nv04-nv4x: move resume code to dispnv04 init hook drm/nouveau: allow accelerated buffer moves even when gr isn't present drm/nouveau/gr/gf100-: move fecs set_watchdog_timeout method into a function drm/nouveau/gr/gf100-: move fecs discover_image_size into a function drm/nouveau/gr/gf100-: move fecs discover_zcull_image_size into a function drm/nouveau/gr/gf100-: move fecs discover_pm_image_size into a function drm/nouveau/gr/gf100-: move fecs elpg setup into functions drm/nouveau/gr/gf100-: remove some unnecessary reg writes drm/nouveau/gr/gf100-: move fecs bind_pointer into a function drm/nouveau/gr/gf100-: store fecs/gpccs falcon pointers in substructures drm/nouveau/mmu/gf100-: make mmu invalidate function more general drm/nouveau/mmu/gf100-: virtualise setting pdb base address for invalidation drm/nouveau/gr/gf100-: expose fecs methods for pausing ctxsw drm/nouveau/gr/gf100-: expose method to determine current context drm/nouveau/mmu: support initialisation of client-managed address-spaces drm/nouveau/mmu: store mapped flag separately from memory pointer drm/nouveau/mmu: add a privileged method to directly manage PTEs drm/nouveau/mmu/gp100-: add privileged methods for fault replay/cancel drm/nouveau/mmu/gp100-: support vmms with gcc/tex replayable faults enabled drm/nouveau/fault/gp100: expose MaxwellFaultBufferA drm/nouveau/fault/gv100-: expose VoltaFaultBufferA drm/nouveau/svm: initial support for shared virtual memory drm/nouveau/dmem: extend copy function to allow direct use of physical addresses drm/nouveau/dmem: use physical vram addresses during migration copies drm/nouveau/dmem: use dma addresses during migration copies Colin Ian King (5): drm/nouveau/bios/dp: make array vsoff static, shrinks object size drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON drm/nouveau/pmu: don't print reply values if exec is false drm/nouveau: fix missing break in switch statement drm/nouveau/falcon: fix a few indentation issues Gustavo A. R. Silva (1): drm/nouveau: mark expected switch fall-through Ilia Mirkin (1): drm/nouveau/volt/gf117: fix speedo readout register Jérôme Glisse (2): drm/nouveau/dmem: device memory helpers for SVM drm/nouveau/svm: new ioctl to migrate process memory to GPU memory Lyude Paul (1): drm/nouveau: Don't WARN_ON VCPI allocation failures drivers/gpu/drm/nouveau/Kbuild | 2 + drivers/gpu/drm/nouveau/Kconfig | 9 + drivers/gpu/drm/nouveau/dispnv04/crtc.c | 214 ++++- drivers/gpu/drm/nouveau/dispnv04/disp.c | 216 +++-- drivers/gpu/drm/nouveau/dispnv04/disp.h | 5 +- drivers/gpu/drm/nouveau/dispnv50/core.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/curs.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/disp.c | 13 +- drivers/gpu/drm/nouveau/dispnv50/wimm.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/wndw.c | 2 +- drivers/gpu/drm/nouveau/include/nvif/class.h | 13 +- drivers/gpu/drm/nouveau/include/nvif/clb069.h | 12 + drivers/gpu/drm/nouveau/include/nvif/if000c.h | 30 +- drivers/gpu/drm/nouveau/include/nvif/ifc00d.h | 21 + drivers/gpu/drm/nouveau/include/nvif/vmm.h | 4 +- drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 3 + drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 3 + .../gpu/drm/nouveau/include/nvkm/engine/nvdec.h | 2 + drivers/gpu/drm/nouveau/include/nvkm/engine/sec2.h | 3 + drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h | 2 +- .../gpu/drm/nouveau/include/nvkm/subdev/devinit.h | 2 +- .../gpu/drm/nouveau/include/nvkm/subdev/fault.h | 4 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/gsp.h | 14 + drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 6 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/top.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h | 1 + drivers/gpu/drm/nouveau/nouveau_abi16.c | 1 + drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 9 + drivers/gpu/drm/nouveau/nouveau_display.c | 306 +------ drivers/gpu/drm/nouveau/nouveau_display.h | 21 +- drivers/gpu/drm/nouveau/nouveau_dmem.c | 887 +++++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_dmem.h | 43 + drivers/gpu/drm/nouveau/nouveau_drm.c | 249 +++--- drivers/gpu/drm/nouveau/nouveau_drv.h | 5 +- drivers/gpu/drm/nouveau/nouveau_fence.h | 2 - drivers/gpu/drm/nouveau/nouveau_svm.c | 833 +++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_svm.h | 20 + drivers/gpu/drm/nouveau/nouveau_vmm.c | 4 +- drivers/gpu/drm/nouveau/nouveau_vmm.h | 1 + drivers/gpu/drm/nouveau/nvif/disp.c | 2 +- drivers/gpu/drm/nouveau/nvif/vmm.c | 5 +- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/ce/Kbuild | 2 +- .../nouveau/nvkm/engine/ce/{tu104.c => tu102.c} | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 86 +- drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 16 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 12 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 3 + .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 2 +- .../nvkm/engine/disp/{roottu104.c => roottu102.c} | 20 +- .../nvkm/engine/disp/{sortu104.c => sortu102.c} | 14 +- .../nouveau/nvkm/engine/disp/{tu104.c => tu102.c} | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 6 +- .../gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 2 +- .../engine/fifo/{gpfifotu104.c => gpfifotu102.c} | 10 +- .../nouveau/nvkm/engine/fifo/{tu104.c => tu102.c} | 30 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/user.h | 2 +- .../nvkm/engine/fifo/{usertu104.c => usertu102.c} | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/base.c | 27 + drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 331 ++++++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 16 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/priv.h | 5 + drivers/gpu/drm/nouveau/nvkm/engine/nvdec/base.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/sec2/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/sec2/base.c | 23 +- drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp102.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/sec2/priv.h | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c | 33 + drivers/gpu/drm/nouveau/nvkm/falcon/base.c | 3 + drivers/gpu/drm/nouveau/nvkm/falcon/msgqueue.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/bar/Kbuild | 2 +- .../nouveau/nvkm/subdev/bar/{tu104.c => tu102.c} | 30 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 11 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild | 2 +- .../nvkm/subdev/devinit/{tu104.c => tu102.c} | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/fault/Kbuild | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp100.c | 3 + drivers/gpu/drm/nouveau/nvkm/subdev/fault/gv100.c | 16 + drivers/gpu/drm/nouveau/nvkm/subdev/fault/priv.h | 7 + .../nouveau/nvkm/subdev/fault/{tu104.c => tu102.c} | 39 +- drivers/gpu/drm/nouveau/nvkm/subdev/fault/user.c | 106 +++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/gsp/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gv100.c | 62 ++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild | 2 +- .../nouveau/nvkm/subdev/mc/{tu104.c => tu102.c} | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/Kbuild | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp10b.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gv100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/priv.h | 2 +- .../nouveau/nvkm/subdev/mmu/{tu104.c => tu102.c} | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c | 83 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 382 +++++++-- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h | 82 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgf100.c | 56 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk104.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk20a.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm200.c | 22 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm20b.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.c | 210 ++++- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp10b.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgv100.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmmcp77.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv04.c | 15 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv41.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv44.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.c | 6 +- .../nvkm/subdev/mmu/{vmmtu104.c => vmmtu102.c} | 13 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c | 4 +- .../gpu/drm/nouveau/nvkm/subdev/secboot/acr_r352.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/top/base.c | 16 + drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.c | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/volt/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf117.c | 60 ++ include/uapi/drm/nouveau_drm.h | 51 ++ 130 files changed, 4178 insertions(+), 965 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/include/nvif/clb069.h create mode 100644 drivers/gpu/drm/nouveau/include/nvkm/subdev/gsp.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_dmem.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_dmem.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_svm.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_svm.h rename drivers/gpu/drm/nouveau/nvkm/engine/ce/{tu104.c => tu102.c} (91%) rename drivers/gpu/drm/nouveau/nvkm/engine/disp/{roottu104.c => roottu102.c} (74%) rename drivers/gpu/drm/nouveau/nvkm/engine/disp/{sortu104.c => sortu102.c} (90%) rename drivers/gpu/drm/nouveau/nvkm/engine/disp/{tu104.c => tu102.c} (93%) rename drivers/gpu/drm/nouveau/nvkm/engine/fifo/{gpfifotu104.c => gpfifotu102.c} (91%) rename drivers/gpu/drm/nouveau/nvkm/engine/fifo/{tu104.c => tu102.c} (82%) rename drivers/gpu/drm/nouveau/nvkm/engine/fifo/{usertu104.c => usertu102.c} (86%) create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c rename drivers/gpu/drm/nouveau/nvkm/subdev/bar/{tu104.c => tu102.c} (84%) rename drivers/gpu/drm/nouveau/nvkm/subdev/devinit/{tu104.c => tu102.c} (87%) rename drivers/gpu/drm/nouveau/nvkm/subdev/fault/{tu104.c => tu102.c} (82%) create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fault/user.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/Kbuild create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gv100.c rename drivers/gpu/drm/nouveau/nvkm/subdev/mc/{tu104.c => tu102.c} (88%) rename drivers/gpu/drm/nouveau/nvkm/subdev/mmu/{tu104.c => tu102.c} (88%) rename drivers/gpu/drm/nouveau/nvkm/subdev/mmu/{vmmtu104.c => vmmtu102.c} (89%) create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf117.c _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel