Ben Skeggs
0cdc3fdfb7
drm/nouveau/fifo/gm107-: remove engines from mmu engine mapping array
...
These are specified by PTOP on Maxwell GPUs.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-05-20 14:43:04 +10:00
Ben Skeggs
289e082706
drm/nouveau/fifo/gk104-: identify mmu engine ids for host faults
...
It appears these don't map to PBDMAs (at least on Kepler, it may or may
be valid for Fermi - this hasn't been checked), but to runlists.
This drops the NVKM_ENGINE_FIFO data from the entries too, as resetting
all of PFIFO is *not* the way to handle such faults.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-05-20 14:43:04 +10:00
Ben Skeggs
e50d0237fc
drm/nouveau/fifo/gk104-: implement support for PTOP fault info
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-05-20 14:43:04 +10:00
Ben Skeggs
91419acf78
drm/nouveau/fifo/gk104-: abstract mmu fault data structures
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-05-20 14:43:04 +10:00
Ben Skeggs
98ac3f061a
drm/nouveau/fifo/gk104-: subclass func
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-05-20 14:43:04 +10:00
Ben Skeggs
e93e198d46
drm/nouveau/fifo/gk104-: use device info from top subdev
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-05-20 14:43:04 +10:00
Ben Skeggs
56d06fa29e
drm/nouveau/core: remove pmc_enable argument from subdev ctor
...
These are now specified directly in the MC subdev.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-05-20 14:43:04 +10:00
Ben Skeggs
7c4f87c9e5
drm/nouveau/fifo/gm107: KeplerChannelGpfifoB, and 2048 channels
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:48 +10:00
Ben Skeggs
63f8c9b7f6
drm/nouveau/fifo/gk110: expose KeplerChannelGpfifoB
...
This class supports a WFI method (0x0078) that's not present on the
KeplerChannelGpfifoA class.
The binary driver exposes both classes on these GPUs for some reason,
though there doesn't appear to be any difference in the setup that's
done for each (ie. even if you allocate GpfifoA, the WFI method will
still work).
We shall just expose GpfifoB, as I don't see a good reason to report
the presence of both.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:48 +10:00
Ben Skeggs
b4c5fc4b85
drm/nouveau/fifo/gk104: submit NOP after all PBDMA_INTR_0, not just DEVICE
...
Prevents the same interrupt from re-triggering forever.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:47 +10:00
Ben Skeggs
4a3f63f808
drm/nouveau/fifo/gk104: add vic plumbing
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:47 +10:00
Ben Skeggs
a8b005fd52
drm/nouveau/fifo/gk104: add sec plumbing
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:46 +10:00
Ben Skeggs
608fd040b7
drm/nouveau/fifo/gk104: add nvdec plumbing
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:46 +10:00
Ben Skeggs
9e4fff3205
drm/nouveau/fifo/gk104: add nvenc plumbing
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:46 +10:00
Ben Skeggs
5d7fa4de46
drm/nouveau/fifo/gk104: add msenc plumbing
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:45 +10:00
Ben Skeggs
1f5ff7f52b
drm/nouveau/fifo/gk104: make use of topology info during gpfifo construction
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:42 +10:00
Ben Skeggs
19f89279fa
drm/nouveau/fifo/gk104: make use of topology info during fault recovery
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:42 +10:00
Ben Skeggs
af83a67779
drm/nouveau/fifo/gk104: make use of topology info when handling ctxsw timeout
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:41 +10:00
Ben Skeggs
41e5171ba8
drm/nouveau/fifo/gk104: read device topology information from hw
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:41 +10:00
Ben Skeggs
69aa40e276
drm/nouveau/fifo/gk104: cosmetic engine->runlist changes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:40 +10:00
Ben Skeggs
acdf7d4f7e
drm/nouveau/fifo/gk104: don't attempt recovery of unknown mmu engines
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:40 +10:00
Ben Skeggs
55252da161
drm/nouveau/fifo/gk104: identify fault-recovery members more clearly
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:39 +10:00
Ben Skeggs
6d39b83f13
drm/nouveau/fifo/gk104: rename spoon to pbdma, and move detection to oneinit
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:39 +10:00
Ben Skeggs
1015d81122
drm/nouveau/fifo/gf100: fix certain engines not being recovered after a fault
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:38 +10:00
Ben Skeggs
f22d7d45fa
drm/nouveau/fifo/gf100: don't attempt recovery of unknown mmu engines
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:38 +10:00
Ben Skeggs
792662439c
drm/nouveau/fifo/gf100: identify fault-recovery members more clearly
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:38 +10:00
Ben Skeggs
adbe24a21e
drm/nouveau/fifo/gf100: rename spooon to pbdma, and move detection to oneinit
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:37 +10:00
Alexandre Courbot
2bf1833e51
drm/nouveau/fifo/gk104: kick channel upon removal
...
A channel may still be processed by the PBDMA even after removal, unless
it is properly kicked. Some chips are more sensible to this than others,
with GM20B triggering the issue very easily (the PBDMA will try to fetch
methods from the previously-removed channel after a new one is added).
Make sure this cannot happen by kicking the channel right after it is
disabled, and before the new runlist is submitted.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:34 +10:00
Alexandre Courbot
a2e435a1b0
drm/nouveau/fifo/gk104: take runlist target into account
...
Bits 28:29 of RUNLIST_BASE specify the memory target of the runlist. Set
it to 0x3 (SYS_MEM_NONCOHERENT) if the runlist object resides in system
memory.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:31 +10:00
Alexandre Courbot
c694ecad9d
drm/nouveau/fifo/gf100: take runlist target into account
...
Bits 28:29 of RUNLIST_BASE specify the memory target of the runlist. Set
it to 0x3 (SYS_MEM_NONCOHERENT) if the runlist object resides in system
memory.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:30 +10:00
Xia Yang
0689aad70d
drm/nouveau/fifo/gk104: fix chid bit mask
...
Fix the channel id bit mask in FIFO schedule timeout error handling.
FIFO_ENGINE_STATUS_NEXT_ID is bit 27:16 thus 0x0fff0000.
FIFO_ENGINE_STATUS_ID is bit 11:0 thus 0x00000fff.
Signed-off-by: Xia Yang <xiay@nvidia.com >
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:30 +10:00
Ben Skeggs
db1eb52846
drm/nouveau: s/gm204/gm200/ in a number of places
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-03-14 10:13:12 +10:00
Ben Skeggs
9402aec544
drm/nouveau/fifo/gf100: remove references to "daemon"
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-01-11 11:28:23 +10:00
Ben Skeggs
f01c4e682c
drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-01-11 11:17:40 +10:00
Ben Skeggs
8ed1730ccd
drm/nouveau/nvif: split out fifo interface definitions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-01-11 11:17:40 +10:00
Vince Hsu
da4ee13cd5
drm/nouveau/fifo/gk104: fix engine status register offset
...
The offset should be 8 on Kepler and later.
Signed-off-by: Vince Hsu <vinceh@nvidia.com >
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-01-11 11:17:40 +10:00
Ben Skeggs
d40d0fd487
drm/nouveau/fifo/gf100: fix race condition when updating engine runlists
...
Similar in spirit to the gk104 fix with a similar title.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-01-11 11:17:40 +10:00
Ben Skeggs
386ffd5e80
drm/nouveau/fifo/gk104: fix race condition when updating engine runlists
...
The CPU-side tracking of engine runlists was not protected by a lock,
leading to list corruption, eventually causing runlist_update() to
overrun the GPU-side runlist, triggering an OOPS.
Fixes some of the issues noticed during parallel piglit runs.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2016-01-11 11:17:40 +10:00
Ben Skeggs
7e8820fed7
drm/nouveau/device: cleaner abstraction for device resource functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:48 +10:00
Ben Skeggs
fbd58ebda9
drm/nouveau/object: merge with handle
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:47 +10:00
Ben Skeggs
68f3f702b6
drm/nouveau/core: remove the remainder of the previous style
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:47 +10:00
Ben Skeggs
13de7f4629
drm/nouveau/fifo: convert to new-style nvkm_engine
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:46 +10:00
Ben Skeggs
3293228174
drm/nouveau/bar: convert to new-style nvkm_subdev
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:42 +10:00
Ben Skeggs
ef8bc5760b
drm/nouveau/core: kill some (now) dead code
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:42 +10:00
Ben Skeggs
8f0649b5c6
drm/nouveau/fifo: convert user classes to new-style nvkm_object
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:40 +10:00
Ben Skeggs
9a65a38c45
drm/nouveau/fifo: split user classes out from engine implementations
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:40 +10:00
Ben Skeggs
0710cc3148
drm/nouveau/dma: convert user classes to new-style nvkm_object
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:40 +10:00
Ben Skeggs
19fef52d93
drm/nouveau/dma: split user classes out from engine implementations
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:39 +10:00
Ben Skeggs
6157091177
drm/nouveau/sw: remove dependence on namedb/engctx lookup
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:39 +10:00
Ben Skeggs
6ca307b0c9
drm/nouveau/fifo: remove dependence on namedb/engctx lookup
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:38 +10:00