mbox series

nouveau-next 5.1 (take 2)

Message ID CACAvsv5bsB4rRY1Gqa_Bp_KAd-v_q1rGZ4nYmOAQhceL0Nr-Xg@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series nouveau-next 5.1 (take 2) | expand

Pull-request

git://github.com/skeggsb/linux linux-5.1

Message

Ben Skeggs Feb. 19, 2019, 11:34 p.m. UTC
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.

Jerome and I have corrected the issues mentioned in response to the
previous pull request, so we should be good to go!

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 a788ade4f6e0302710f89b2a3534346df752072d:

  drm/nouveau/dmem: use dma addresses during migration copies
(2019-02-20 09:00:03 +1000)

----------------------------------------------------------------
Ben Skeggs (50):
      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: prepare for enabling svm with existing userspace interfaces
      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
    |  12 +
 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 +
 drivers/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 +-
 drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h
    |   2 +-
 drivers/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
    |   4 +-
 drivers/gpu/drm/nouveau/nouveau_bo.c
    |   4 +-
 drivers/gpu/drm/nouveau/nouveau_chan.c
    |  32 +-
 drivers/gpu/drm/nouveau/nouveau_chan.h
    |   1 +
 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
    |  60 ++++
 drivers/gpu/drm/nouveau/nouveau_drm.c
    | 248 +++++++------
 drivers/gpu/drm/nouveau/nouveau_drv.h
    |   6 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c
    |   2 +-
 drivers/gpu/drm/nouveau/nouveau_fence.h
    |   2 -
 drivers/gpu/drm/nouveau/nouveau_gem.c
    |  43 +--
 drivers/gpu/drm/nouveau/nouveau_svm.c
    | 835 ++++++++++++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/nouveau/nouveau_svm.h
    |  48 +++
 drivers/gpu/drm/nouveau/nouveau_vmm.c
    |   4 +-
 drivers/gpu/drm/nouveau/nouveau_vmm.h
    |   1 +
 drivers/gpu/drm/nouveau/nv84_fence.c
    |   3 +-
 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 +-
 drivers/gpu/drm/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 +
 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h
    |   2 +-
 drivers/gpu/drm/nouveau/nvkm/engine/disp/{roottu104.c => roottu102.c}
    |  20 +-
 drivers/gpu/drm/nouveau/nvkm/engine/disp/{sortu104.c => sortu102.c}
    |  14 +-
 drivers/gpu/drm/nouveau/nvkm/engine/disp/{tu104.c => tu102.c}
    |  14 +-
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild
    |   6 +-
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/changk104.h
    |   2 +-
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/{gpfifotu104.c =>
gpfifotu102.c} |  10 +-
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/{tu104.c => tu102.c}
    |  30 +-
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/user.h
    |   2 +-
 drivers/gpu/drm/nouveau/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 +-
 drivers/gpu/drm/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 +-
 drivers/gpu/drm/nouveau/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 +
 drivers/gpu/drm/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 +-
 drivers/gpu/drm/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 +-
 drivers/gpu/drm/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 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/{vmmtu104.c => vmmtu102.c}
    |  13 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c
    |   4 +-
 drivers/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 +++
 134 files changed, 4268 insertions(+), 1002 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