Hey Dave, Mostly just initial support for Turing TU104/TU106 chipsets. Support for TU102 is missing as I don't yet have HW, but it should be trivial to add in later in the merge window (in theory). It's a bit of a rough first pass that'll get improved in future releases as a finish figuring out some of the other HW changes, but it's good enough as it stands for modesetting and suspend/resume etc. Acceleration bring-up is incomplete due to NVIDIA not yet having provided FW images for me to use, though command submission and copy engines are functional already. Thanks, Ben. The following changes since commit e69aa5f9b97f7f871643336deb281db5cb14878b: Merge tag 'drm-misc-next-2018-12-06' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2018-12-07 11:23:05 +1000) are available in the Git repository at: git://github.com/skeggsb/linux linux-4.21 for you to fetch changes up to 8ff01abcccbb563fbf50b84a476bd9b22c42c0a3: drm/nouveau/ce/tu106: initial support (2018-12-11 15:38:01 +1000) ---------------------------------------------------------------- Ben Skeggs (72): drm/nouveau/core: support multiple nvdec instances drm/nouveau/bios: translate additional memory types drm/nouveau/bios: translate USB-C connector type drm/nouveau/devinit/gm200-: export function to upload+execute PMU/PRE_OS drm/nouveau/tmr: detect stalled gpu timer and break out of waits drm/nouveau/imem/nv50: support pinning objects in BAR2 and returning address drm/nouveau/fault: remove manual mapping of fault buffers into BAR2 drm/nouveau/fault: store get/put pri address in nvkm_fault_buffer drm/nouveau/fault: add explicit control over fault buffer interrupts drm/nouveau/mmu: add more general vmm free/node handling functions drm/nouveau/disp/gv100: fix name of window channels in debug output drm/nouveau/fifo/gf100-: call into BAR to reset BARs after MMU fault drm/nouveau/fifo/gk104-: return channel instance in ctor args drm/nouveau/fifo/gk104-: support enabling privileged ce functions drm/nouveau/fifo/gk104-: separate runlist building from committing to hw drm/nouveau/fifo/gk104-: group pbdma functions together drm/nouveau/fifo/gk104-: virtualise pbdma enable function drm/nouveau/fifo/gm200-: read pbdma count more directly drm/nouveau/fifo/gv100: allocate method buffer drm/nouveau/fifo/gv100: return work submission token in channel ctor args drm/nouveau: remove left-over struct member drm/nouveau/kms/nv50-: allow more flexibility with lut formats drm/nouveau/core: recognise TU104 drm/nouveau/pci/tu104: initial support drm/nouveau/bios/tu104: initial support drm/nouveau/devinit/tu104: initial support drm/nouveau/top/tu104: initial support drm/nouveau/ibus/tu104: initial support drm/nouveau/gpio/tu104: initial support drm/nouveau/i2c/tu104: initial support drm/nouveau/fuse/tu104: initial support drm/nouveau/mc/tu104: initial support drm/nouveau/bus/tu104: initial support drm/nouveau/tmr/tu104: initial support drm/nouveau/imem/tu104: initial support drm/nouveau/fb/tu104: initial support drm/nouveau/ltc/tu104: initial support drm/nouveau/mmu/tu104: initial support drm/nouveau/bar/tu104: initial support drm/nouveau/fault/tu104: initial support drm/nouveau/pmu/tu104: initial support drm/nouveau/therm/tu104: initial support drm/nouveau/dma/tu104: initial support drm/nouveau/disp/tu104: initial support drm/nouveau/fifo/tu104: initial support drm/nouveau/ce/tu104: initial support drm/nouveau/kms/tu104: initial support drm/nouveau/core: increase maximum number of nvdec instances to 3 drm/nouveau/core: recognise TU106 drm/nouveau/pci/tu106: initial support drm/nouveau/bios/tu106: initial support drm/nouveau/devinit/tu106: initial support drm/nouveau/top/tu106: initial support drm/nouveau/ibus/tu106: initial support drm/nouveau/gpio/tu106: initial support drm/nouveau/i2c/tu106: initial support drm/nouveau/fuse/tu106: initial support drm/nouveau/mc/tu106: initial support drm/nouveau/bus/tu106: initial support drm/nouveau/tmr/tu106: initial support drm/nouveau/imem/tu106: initial support drm/nouveau/fb/tu106: initial support drm/nouveau/ltc/tu106: initial support drm/nouveau/mmu/tu106: initial support drm/nouveau/bar/tu106: initial support drm/nouveau/fault/tu106: initial support drm/nouveau/pmu/tu106: initial support drm/nouveau/therm/tu106: initial support drm/nouveau/dma/tu106: initial support drm/nouveau/disp/tu106: initial support drm/nouveau/fifo/tu106: initial support drm/nouveau/ce/tu106: initial support Lyude Paul (4): drm/nouveau: Add strap_peek to debugfs drm/nouveau: Add size to vbios.rom file in debugfs drm/nouveau/drm/nouveau: Check rc from drm_dp_mst_topology_mgr_resume() drm/nouveau/drm/nouveau: Don't forget to label dp_aux devices drivers/gpu/drm/nouveau/dispnv04/disp.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/Kbuild | 3 ++ drivers/gpu/drm/nouveau/dispnv50/atom.h | 7 ++- drivers/gpu/drm/nouveau/dispnv50/base907c.c | 1 + drivers/gpu/drm/nouveau/dispnv50/core.c | 1 + drivers/gpu/drm/nouveau/dispnv50/core.h | 4 ++ drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 4 +- drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 61 ++++++++++++++++++++++++ drivers/gpu/drm/nouveau/dispnv50/curs.c | 1 + drivers/gpu/drm/nouveau/dispnv50/disp.c | 14 ++++-- drivers/gpu/drm/nouveau/dispnv50/disp.h | 2 + drivers/gpu/drm/nouveau/dispnv50/head.c | 6 +-- drivers/gpu/drm/nouveau/dispnv50/head.h | 11 +++++ drivers/gpu/drm/nouveau/dispnv50/head507d.c | 19 ++++++++ drivers/gpu/drm/nouveau/dispnv50/head907d.c | 18 +++++++ drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 11 +++-- drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/dispnv50/lut.c | 50 +++++++------------- drivers/gpu/drm/nouveau/dispnv50/lut.h | 5 +- drivers/gpu/drm/nouveau/dispnv50/wimm.c | 1 + drivers/gpu/drm/nouveau/dispnv50/wndw.c | 12 +++-- drivers/gpu/drm/nouveau/dispnv50/wndw.h | 18 +++++++ drivers/gpu/drm/nouveau/dispnv50/wndwc37e.c | 21 +++++---- drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/include/nvif/cl0080.h | 1 + drivers/gpu/drm/nouveau/include/nvif/cla06f.h | 3 +- drivers/gpu/drm/nouveau/include/nvif/class.h | 9 +++- drivers/gpu/drm/nouveau/include/nvif/clc36f.h | 19 ++++++++ drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 11 +++-- drivers/gpu/drm/nouveau/include/nvkm/core/memory.h | 2 + drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h | 3 ++ drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0203.h | 13 ++++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/fault.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 5 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/timer.h | 28 +++++++---- drivers/gpu/drm/nouveau/nouveau_abi16.c | 2 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 + drivers/gpu/drm/nouveau/nouveau_chan.c | 37 +++++++++++---- drivers/gpu/drm/nouveau/nouveau_chan.h | 5 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 12 ++++- drivers/gpu/drm/nouveau/nouveau_connector.h | 3 +- drivers/gpu/drm/nouveau/nouveau_debugfs.c | 46 ++++++++++++++++-- drivers/gpu/drm/nouveau/nouveau_dma.c | 2 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 8 ++-- drivers/gpu/drm/nouveau/nouveau_vmm.h | 1 - drivers/gpu/drm/nouveau/nvif/disp.c | 1 + drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/ce/tu104.c | 40 ++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 87 ++++++++++++++++++++++++++++++---- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 3 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c | 8 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 7 +++ drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 5 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu104.c | 52 +++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c | 8 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu104.c | 97 ++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/tu104.c | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/wndwgv100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 3 ++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 13 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 90 +++++++++++++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 30 ++++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c | 2 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c | 11 ++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.c | 16 ++++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm20b.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp10b.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 19 +++++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogv100.c | 72 +++++++++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifotu104.c | 83 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c | 15 +++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu104.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/user.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/usertu104.c | 45 ++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/falcon/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 20 ++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu104.c | 98 +++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c | 14 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu104.c | 89 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/fault/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c | 21 ++++----- drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp100.c | 24 +++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/fault/gv100.c | 47 ++++++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fault/priv.h | 9 +++- drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu104.c | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 11 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c | 3 ++ drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 16 ++++++- drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 3 ++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/tu104.c | 55 ++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu104.c | 43 +++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c | 21 ++------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 145 ++++++++++++++++++++++++++++++++++++++++++++------------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h | 8 +++- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu104.c | 77 ++++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gp102.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c | 36 ++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.c | 2 +- 119 files changed, 2450 insertions(+), 308 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/dispnv50/corec57d.c create mode 100644 drivers/gpu/drm/nouveau/dispnv50/headc57d.c create mode 100644 drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c create mode 100644 drivers/gpu/drm/nouveau/include/nvif/clc36f.h create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/ce/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifotu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/usertu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/mc/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu104.c _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel