aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/engine/graph (follow)
AgeCommit message (Collapse)AuthorFilesLines
2015-01-22drm/nouveau: remove symlinks, move core/ to nvkm/ (no code changes)Ben Skeggs72-32641/+0
The symlinks were annoying some people, and they're not used anywhere else in the kernel tree. The include directory structure has been changed so that symlinks aren't needed anymore. NVKM has been moved from core/ to nvkm/ to make it more obvious as to what the directory is for, and as some minor prep for when NVKM gets split out into its own module (virt) at a later date. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-12-02drm/gf100-/gr: return non-fatal error code when fw not presentBen Skeggs1-1/+1
This allows the module to load without acceleration. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-10-20drm/gt215/gr: fix initialisation on gddr5 boardsBen Skeggs1-2/+8
The binary driver modifies the default context to have this value, rather than 0x3d0040, *after* it's filled the buffer with the usual golden data. We don't really have anything in place to locate the correct offset to do these type of modifications outside of the generation function, so this will have to do. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-15drm/gf100-/gr: fix -ENOSPC detection when allocating zbc table entriesBen Skeggs1-0/+6
Spotted by Coverity. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: implement the proper SetShaderExceptions methodBen Skeggs8-17/+45
We have another version of it implemented in SW, however, that version isn't serialised with normal PGRAPH operation and can possibly clobber the enables for another context. This is the same method that's implemented by the NVIDIA binary driver. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: remove some broken ltc bashing, for nowBen Skeggs13-58/+0
... and hope that the defaults are good enough. This was always supposed to be a read/modify/write thing anyway, so we're writing very wrong stuff for some boards already. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: unhardcode attribute cb configBen Skeggs13-166/+199
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: fetch tpcs-per-ppc info on startupBen Skeggs9-1/+16
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: unhardcode pagepool configBen Skeggs13-41/+75
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: unhardcode bundle cb configBen Skeggs13-41/+100
Should be the same values as before, except: GF117 has smaller buffer allocated, as per register setup. GK20A now uses values from Tegra driver, not GK104's. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: improve initial context patch list helpersBen Skeggs4-20/+51
Removes need for fixed buffer indices, and allows the functions utilising them to also be run outside of context generation. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gf100-/gr: add support for zero bandwidth clearBen Skeggs9-11/+257
Default ZBC table is compatible with binary driver defaults. Userspace will need to be updated to take full advantage of this feature, however, some applications will see a performance boost without updated drivers. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/nouveau/disp: audit and version display classesBen Skeggs10-10/+0
The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/nve4/graph: do not crash if no power device presentAlexandre Courbot1-1/+2
Detect and workaround the absence of a power device so chips that do not feature one (e.g. GK20A) can still use this driver. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gk208-/gr: stop touching 0x260 inappropriatelyBen Skeggs5-11/+11
As a side note.. It's a bit hard to figure out how to name this commit.. GK20A is NVEA, which is before NV108 (GK208).. Confusing. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gk110b/gr: initvals differ from gk110Ben Skeggs6-13/+240
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-08-10drm/gk104/gr: disable PGOB at init timeBen Skeggs2-25/+7
This removes the previous hack that worked on some boards. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-17drm/nv50/gr: remove an unneeded write while initialising PGRAPHPierre Moreau1-1/+0
The blob does not seem to write at that place for my NVAC, though it does for my NV96, agreeing with what is done in the if/else structure below. I guess someone forgot to remove the line when the if/else was put in place. Signed-off-by: Pierre Moreau <pierre.morrow@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-17drm/nv50/gr: fix overlap while zeroing zcull regionsPierre Moreau1-4/+4
The specified stride was not correct, resulting in erases overlapping and part of the zcull regions being not erased at all. Signed-off-by: Pierre Moreau <pierre.morrow@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-17drm/gf100-/gr: report class data to host on fwmthd failureBen Skeggs12-703/+1003
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-10Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-nextDave Airlie8-12/+133
There's really not a great deal this time due to me spending most of this window on Maxwell. But, here's the random bits and pieces that's currently queued. * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (25 commits) drm/gk208/gr: add missing registers to grctx init drm/nouveau/kms/nv04-nv40: fix pageflip events via special case. drm/nv50-/mc: fix kms pageflip events by reordering irq handling order. drm/nouveau/disp/nv04-nv40: abort scanoutpos query on vga analog. drm/nv50-/kms: wait for enough ring space in crtc_prepare() drm/nouveau/disp/dp: support training pattern 3 drm/nouveau/disp/dp: support aux read interval during link training drm/gk104/gpio: fix incorrect interrupt register usage drm/nouveau/core: punt all object state change messages to trace level drm/nouveau/clk: allow end-user reclocking for nv40, nvaa, and nve0 clock types drm/nouveau/fb: default NvMemExec to on, turning it off is used for debugging only drm/nouveau/bios: fix a potential NULL deref in the PROM shadowing function drm/nouveau/i2c: bump the i2c delay for the adt7473 drm/nouveau/therm/fan/tach: default to 2 pulses per revolution drm/nvf0/device: enable video decoding engines on gk110/gk208 drm/nvf1/device: add support for 0xf1 (gk110b) drm/nouveau/device: support for probing GK20A drm/nouveau/graph: add GK20A support drm/nouveau/graph: pad firmware code at load time drm/nouveau/graph: enable when using external fw ...
2014-06-10drm/gk208/gr: add missing registers to grctx initIlia Mirkin1-0/+2
This fixes hangs on GK208 which happen instantaneously on trying to use a geometry shader. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: stable@vger.kernel.org # v3.14+
2014-06-10drm/nouveau/graph: add GK20A supportAlexandre Courbot6-9/+120
Add a GR device for GK20A based on NVE4, with the correct classes definitions (GK20A's 3D class is 0xa297). Most of the NVE4 code can be used on GK20A, so make relevant bits of NVE4 available to other chips as well. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-10drm/nouveau/graph: pad firmware code at load timeAlexandre Courbot1-0/+4
Pad the microcode to a multiple of 0x40 words, otherwise firmware will fail to run from non-prepadded firmware files. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-10drm/nouveau/graph: enable when using external fwAlexandre Courbot1-3/+7
nvc0_graph_ctor() would only let the graphics engine be enabled if its oclass has a proper microcode linked to it. This prevents GR from being enabled at all on chips that rely exclusively on external firmware, even though such a use-case is valid. Relax the conditions enabling the GR engine to also include the case where an external firmware has also been loaded. Also switch to external firmware if the graph class has no microcode linked to it. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-10drm: Remove spurious ';'Damien Lespiau2-2/+2
One small step after another, the never-ending crusade towards better code continues. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-05-02drm/gm107/gr: bump attrib cb size quite a bitBen Skeggs1-1/+3
When initially looking at traces, missed the fact the binary driver was using large pages. Fixes page faults when launching geometry shaders. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gk104/gr: therm magic needed on some kepler boardsBen Skeggs1-1/+24
Not needed everywhere, and potentially not safe to do depending on how the rest of PTHERM is configured... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gm107/gr: initial supportBen Skeggs10-4/+2938
Our ucode only partially works at this point, so requiring binary fw image for now. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf100-/gf: fix a stupid typo, waiting on wrong signal for mmctxBen Skeggs11-11/+11
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf100-/gr: split ppc state into its subunitsBen Skeggs10-44/+62
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf100-/gf: split tpc state into its subunitsBen Skeggs19-270/+374
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf100-/gr: split gpc state into its subunitsBen Skeggs19-348/+348
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf100-/gr: tidy reg/ctx initval lists, mostly by giving them namesBen Skeggs20-2063/+1854
Unit names come from the Android GK20A driver. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gk110/gr: minor adjustment to some random initvalBen Skeggs1-2/+2
Change from traces of a newer binary driver version. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gk104/gr: minor adjustment to some random initvalBen Skeggs1-1/+1
Change from traces of a newer binary driver version. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf119/gr: fix bug in some random initvalBen Skeggs1-1/+1
Bug noticed vs traces. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf110/gr: fixup gpc/tpc initvals listsBen Skeggs1-42/+47
Differences noted vs traces. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gk208/gr: minor adjustment to some random initvalBen Skeggs1-1/+1
Change from traces of a newer binary driver version. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf108/gr: minor adjustment to some random initvalBen Skeggs1-1/+2
Bug noticed vs traces. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/gf104/gr: rename gf104 (nvc4), it came before gf106 (nvc3)Ben Skeggs4-16/+16
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/nvc0-/graph: fix gpccs fuc stack setupBen Skeggs7-935/+941
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26support for platform devicesAlexandre Courbot3-4/+4
Upcoming mobile Kepler GPUs (such as GK20A) use the platform bus instead of PCI to which Nouveau is tightly dependent. This patch allows Nouveau to handle platform devices by: - abstracting PCI-dependent functions that were typically used for resource querying and page mapping, - introducing a nv_device_is_pci() function that allows to make PCI-dependent code conditional, - providing a nouveau_drm_platform_probe() function that takes a GPU platform device to be probed. Core code as well as engine/subdev drivers are updated wherever possible to make use of these functions. Some older drivers are too dependent on PCI to be properly updated, but all newer code on which future chips may depend should at least be runnable with platform devices. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/nv50/gr: decode texture trap status codeIlia Mirkin1-0/+16
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-03-26drm/nv50/graph: update status enum namesIlia Mirkin1-14/+15
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-02-18drm/nv50/gr: add missing nv_error parameter privIlia Mirkin1-1/+1
Commit ea7dce901 ("drm/nv50/gr: print mpc trap name when it's not an mp trap") added an nv_error call that was missing the priv parameter. This causes GPFs if the error is ever hit. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv50/gr: print mpc trap name when it's not an mp trapIlia Mirkin1-0/+20
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2014-01-23drm/nv50/gr: update list of mp errors, make it a bitfieldIlia Mirkin1-8/+10
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2014-01-23drm/nv50/gr: add more trap names to print on errorIlia Mirkin1-58/+70
Also avoids printing the errors bitfield if that information has already been shown. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
2014-01-23drm/nvf0/gr: enable acceleration with our chsw ucodeBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>