Commit Graph

798714 Commits

Author SHA1 Message Date
Ben Skeggs
52c887539d drm/nouveau/i2c/tu106: initial support
Appears to be compatible with GM200.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:57 +10:00
Ben Skeggs
1b0a475482 drm/nouveau/gpio/tu106: initial support
Appears to be compatible with GK104.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:57 +10:00
Ben Skeggs
8d12c4846d drm/nouveau/ibus/tu106: initial support
Appears to be compatible with GM200.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:57 +10:00
Ben Skeggs
73010b8e2b drm/nouveau/top/tu106: initial support
Appears to be compatible with GK104.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:57 +10:00
Ben Skeggs
9d7693fe07 drm/nouveau/devinit/tu106: initial support
Appears to be compatible with TU104.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:56 +10:00
Ben Skeggs
b0216803e3 drm/nouveau/bios/tu106: initial support
No real surprised here so far.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:56 +10:00
Ben Skeggs
a39cb42a75 drm/nouveau/pci/tu106: initial support
Appears to be compatible with GP100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:56 +10:00
Ben Skeggs
2cc0d7c0f7 drm/nouveau/core: recognise TU106
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:56 +10:00
Ben Skeggs
2d583ade74 drm/nouveau/core: increase maximum number of nvdec instances to 3
RTX2070 appears to have 3 copies of the engine.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:55 +10:00
Ben Skeggs
563737c525 drm/nouveau/kms/tu104: initial support
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:55 +10:00
Ben Skeggs
c36322d23d drm/nouveau/ce/tu104: initial support
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:55 +10:00
Ben Skeggs
641d0b3056 drm/nouveau/fifo/tu104: initial support
Various different bits and pieces vs GV100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:55 +10:00
Ben Skeggs
114b6556db drm/nouveau/disp/tu104: initial support
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:54 +10:00
Ben Skeggs
aff70760be drm/nouveau/dma/tu104: initial support
Appears to be compatible with GV100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:54 +10:00
Ben Skeggs
5a991efdfa drm/nouveau/therm/tu104: initial support
Appears to be compatible with GP100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:54 +10:00
Ben Skeggs
e7e0e946bb drm/nouveau/pmu/tu104: initial support
Appears to be compatible with GP102.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:54 +10:00
Ben Skeggs
17fb2807c6 drm/nouveau/fault/tu104: initial support
New registers.

Currently uncertain how exactly to mask fault buffer interrupts.  This will
likely be corrected at around the same time as the new MC interrupt stuff
has been properly figured out and implemented.

For the moment, it shouldn't matter too much.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:54 +10:00
Ben Skeggs
838efaa574 drm/nouveau/bar/tu104: initial support
New registers.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:53 +10:00
Ben Skeggs
7986f813c6 drm/nouveau/mmu/tu104: initial support
New flush method.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:53 +10:00
Ben Skeggs
01e0930617 drm/nouveau/ltc/tu104: initial support
Appears to be compatible with GP102.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:53 +10:00
Ben Skeggs
5386148b31 drm/nouveau/fb/tu104: initial support
Appears to be compatible with GV100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:53 +10:00
Ben Skeggs
c44349b054 drm/nouveau/imem/tu104: initial support
Appears to be compatible with NV50.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:52 +10:00
Ben Skeggs
ead5bf1e3c drm/nouveau/tmr/tu104: initial support
Appears to be compatible with GK20A.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:52 +10:00
Ben Skeggs
75ad1b0020 drm/nouveau/bus/tu104: initial support
Appears to be compatible with GF100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:52 +10:00
Ben Skeggs
f2e55b9ea9 drm/nouveau/mc/tu104: initial support
Things are a bit different here on Turing, and will require further changes
yet once I've investigated them more thoroughly.

For now though, the existing GP100 code is compatible enough with one small
hack to forward on fault buffer interrupts.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:52 +10:00
Ben Skeggs
575d583ab6 drm/nouveau/fuse/tu104: initial support
Appears to be compatible with GM107.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:51 +10:00
Ben Skeggs
298fd472ea drm/nouveau/i2c/tu104: initial support
Appears to be compatible with GM200.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:51 +10:00
Ben Skeggs
3273483c32 drm/nouveau/gpio/tu104: initial support
Appears to be compatible with GK104.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:51 +10:00
Ben Skeggs
ba9070d3ec drm/nouveau/ibus/tu104: initial support
Appears to be compatible with GM200.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:51 +10:00
Ben Skeggs
67e5abb78d drm/nouveau/top/tu104: initial support
Appears to be compatible with GK104.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:50 +10:00
Ben Skeggs
43d61cda30 drm/nouveau/devinit/tu104: initial support
The GPU executes DEVINIT itself now, which makes our lives a bit easier.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:50 +10:00
Ben Skeggs
acbe55a5d4 drm/nouveau/bios/tu104: initial support
No real surprises here so far.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:50 +10:00
Ben Skeggs
2d7ca8cb19 drm/nouveau/pci/tu104: initial support
Appears to be compatible with GP100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:50 +10:00
Ben Skeggs
344d9c8f35 drm/nouveau/core: recognise TU104
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:50 +10:00
Ben Skeggs
cb55cd0c66 drm/nouveau/kms/nv50-: allow more flexibility with lut formats
Will be required for Turing.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:49 +10:00
Ben Skeggs
5949dd8ee2 drm/nouveau: remove left-over struct member
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:49 +10:00
Ben Skeggs
9d24907ccf drm/nouveau/fifo/gv100: return work submission token in channel ctor args
The token will also contain runlist ID on Turing, so instead expose it as
an opaque value from NVKM so the client doesn't need to care.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:49 +10:00
Ben Skeggs
a98a3c52f8 drm/nouveau/fifo/gv100: allocate method buffer
The GPU saves off some stuff to the address specified in this part of RAMFC
when the channel faults, so we should probably point it at a valid address.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:49 +10:00
Ben Skeggs
f7cc47e436 drm/nouveau/fifo/gm200-: read pbdma count more directly
The trick we used (and still use for older GPUs) doesn't work on Turing.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:48 +10:00
Ben Skeggs
f37a302e67 drm/nouveau/fifo/gk104-: virtualise pbdma enable function
Turing will require different code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:48 +10:00
Ben Skeggs
fb80ad15f8 drm/nouveau/fifo/gk104-: group pbdma functions together
We're about to be adding more of them.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:48 +10:00
Ben Skeggs
efa44c664f drm/nouveau/fifo/gk104-: separate runlist building from committing to hw
We will need to bash different registers on Turing.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:48 +10:00
Ben Skeggs
85532bd984 drm/nouveau/fifo/gk104-: support enabling privileged ce functions
Will be used by SVM code to allow direct (without going through MMU) memcpy
using the GPU copy engines.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:47 +10:00
Ben Skeggs
86b442d74c drm/nouveau/fifo/gk104-: return channel instance in ctor args
Will be used to match fault buffer entries with a channel.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:47 +10:00
Ben Skeggs
302daab1a7 drm/nouveau/fifo/gf100-: call into BAR to reset BARs after MMU fault
This is needed for Turing, but we're supposed to wait for completion after
re-writing the value on older GPUs anyway.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:47 +10:00
Ben Skeggs
03da9faae1 drm/nouveau/disp/gv100: fix name of window channels in debug output
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:47 +10:00
Ben Skeggs
729eba3355 drm/nouveau/mmu: add more general vmm free/node handling functions
Aside from being a nice cleanup, these will to allow the upcoming direct
page mapping interfaces to play nicely with normal mappings.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:46 +10:00
Ben Skeggs
3968d6920b drm/nouveau/fault: add explicit control over fault buffer interrupts
The GPU will continually fire interrupts while a fault buffer GET != PUT,
and to stop the spurious interrupts while the handler does its thing, we
were disabling the fault buffer temporarily.

This is not actually a great idea to begin with, and made worse by Volta
resetting GET/PUT when it's reactivated.  So, let's not do that.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:46 +10:00
Ben Skeggs
809724560f drm/nouveau/fault: store get/put pri address in nvkm_fault_buffer
Will allow more shared fault buffer handling code between Pascal/Volta.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:46 +10:00
Ben Skeggs
4d326469d9 drm/nouveau/fault: remove manual mapping of fault buffers into BAR2
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-12-11 15:37:46 +10:00