nouveau-next 4.21

Ben Skeggs skeggsb at gmail.com
Tue Dec 11 07:10:49 UTC 2018


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


More information about the dri-devel mailing list