summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)AuthorFilesLines
2018-05-18drm/nouveau/kms/nv50-: simplify tracking of channel interlocksBen Skeggs20-86/+224
Instead of windows returning their core channel interlock mask if they know core has been modified, it's recorded unconditionally and used if required when update methods are emitted. This will be required to support Volta. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: determine MST support from DP Info TableBen Skeggs3-3/+12
GV100 doesn't support MST, use the information provided in VBIOS tables to detect its presence instead. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: extend window image data for stereo/planar formatsBen Skeggs6-18/+18
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: move drm format->hw conversion into common codeBen Skeggs3-18/+27
This will be required to support additional HW features. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: unify set/clr masksBen Skeggs4-44/+20
This is a simplification that'll be used to improve interlock handling. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: allow specification of valid heads for a windowBen Skeggs5-6/+6
This will be required to support Volta, where window ID != head. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: split base implementation by hardware classBen Skeggs9-79/+242
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: split core implementation by hardware classBen Skeggs19-333/+903
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: split each resource type into their own source filesBen Skeggs28-2483/+2967
There should be no code changes here, just shuffling stuff around. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50: abstract OR interfaces so the code can be splitBen Skeggs1-78/+102
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50: handle SetControlOutputResource from headBen Skeggs2-61/+57
Removes duplicated code from OR-specific functions. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: abstract head interfaces so the code can be splitBen Skeggs1-14/+50
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50: modify core allocation so the code can be splitBen Skeggs1-81/+134
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: modify base allocation so the code can be splitBen Skeggs1-133/+105
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: modify cursor allocation so the code can be splitBen Skeggs1-65/+71
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: modify overlay allocation so the code can be splitBen Skeggs1-98/+179
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: move fb ctxdma tracking into windowsBen Skeggs1-79/+84
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: fix i2c-over-aux on anx9805Ben Skeggs1-2/+1
We don't support address-only transactions there. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms/nv50-: move code underneath dispnv50/Ben Skeggs3-5/+4
The code is about to be split up, and this matches dispnv04. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/kms: move display class instantiation to libraryBen Skeggs8-61/+129
This function is useful outside of DRM code. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/drm/nv50-: remove allocation of sw classBen Skeggs2-22/+19
Hasn't been required for a long time. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau: no need to create ctxdma for push buffers on fermi and upBen Skeggs1-2/+5
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau: remove fence wait code from deferred client work handlerBen Skeggs1-16/+14
Fences attached to deferred client work items now originate from channels belonging to the client, meaning we can be certain they've been signalled before we destroy a client. This closes a race that could happen if the dma_fence_wait_timeout() call didn't succeed. When the fence was later signalled, a use-after-free was possible. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gem: tie deferred unmapping of buffers to VMA fence completionBen Skeggs1-15/+2
As VMAs are per-client, unlike buffers, this allows us to avoid referencing foreign fences (those that belong to another client/driver) from the client deferred work handler, and prevent some not-fun race conditions that can be triggered when a fence stalls. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gem: attach fences to VMAs to track GPU usageBen Skeggs3-1/+16
An upcoming patch will use these to fix issues related to the deferred unmapping of GEM objects. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gem: lookup VMAs for buffers referenced by pushbuf ioctlBen Skeggs3-15/+19
We previously only did this for push buffers, but an upcoming patch will need to attach fences to all VMAs to resolve another issue. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gp102-: setup stencil zbcBen Skeggs14-16/+162
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gp100-: use correct registers for zbc colour/depth setupBen Skeggs20-15/+88
These were missed the first time around due to the driver version I traced using the older registers still. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gp100-: fix attrib cb setupBen Skeggs7-17/+32
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gp100-: fix pagepool setupBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-gm10x: update register listsBen Skeggs19-36/+96
There are differences on GM200 and newer too, but we can't fix them there as they come from firmware packages. A request has been made to NVIDIA to release updated firmware. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: swap bundle and pagepoolBen Skeggs1-1/+1
Makes it easier to diff against RM traces. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: calculate and use sm mapping tableBen Skeggs23-56/+79
There's a number of places that require this data, so let's separate out the calculations to ensure they remain consistent. This is incorrect for GM200 and newer, but will produce the same results as we did before. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: port zcull tile mapping calculations from NVGPUBen Skeggs2-34/+34
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: port tile mapping calculations from NVGPUBen Skeggs22-77/+153
There's also a couple of hardcoded tables for a couple of very specific configurations that NVGPU's algorithm didn't work for. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: virtualise trap_mpBen Skeggs20-2/+23
Required to support Volta. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: add missing reset sequence before golden context initBen Skeggs1-0/+20
RM and NVGPU both have a variant of this, we probably should too. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: delete duplicated grctx init codeBen Skeggs12-152/+11
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: update r408840 where requiredBen Skeggs8-2/+127
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: update 419a3c where requiredBen Skeggs6-0/+15
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: virtualise r418e94Ben Skeggs3-2/+13
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: virtualise r419e00Ben Skeggs3-4/+15
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: update 419eb0 where requiredBen Skeggs4-0/+14
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: note missing 418800 modificationsBen Skeggs6-2/+24
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-gf119: update 419cb8 where requiredBen Skeggs7-0/+19
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: support firmware-provided bundle/method everywhereBen Skeggs1-2/+10
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: virtualise tpc_mask + apply fixes from tracesBen Skeggs13-30/+47
We weren't placing higher TPC IDs in the right place on some configurations. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: virtualise r419f78 + apply fixes from tracesBen Skeggs3-2/+11
Removed from GK110[B]/GK208 as RM traces show it not being touched. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: virtualise gpc_tpc_nrBen Skeggs11-7/+20
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-05-18drm/nouveau/gr/gf100-: virtualise r406500Ben Skeggs7-6/+21
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>