summaryrefslogtreecommitdiff
path: root/nvkm/engine
Commit message (Collapse)AuthorAgeFilesLines
* disp: clear notify intr status when enabling, to prevent racesBen Skeggs2014-12-022-0/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/nv50-: rename class members to match nvidia channel namesBen Skeggs2014-12-0211-206/+206
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* fifo/gk104-: handle copy engine class errorsBen Skeggs2014-12-021-6/+42
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* device: recognise GM204Ben Skeggs2014-12-022-1/+45
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/gm204: some magic that fixes bringup of uninitialised outputsBen Skeggs2014-12-025-3/+24
| | | | | | | | | | | Probably missing something here, doesn't make a lot of sense to write or+link data into a register whose offset is calculated by the same or+link info.. This is the all I've witnessed the binary driver and vbios doing so far, so it'll do. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/gm204: initial supportBen Skeggs2014-12-026-1/+252
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/gf110-: magic that might help some tmds issuesBen Skeggs2014-12-021-2/+10
| | | | | | | | The binary driver has been doing this since GF119, and we've somehow gotten away with it. But, TMDS that hasn't been initialised already by the x86 vbios code is distorted without it on GM204. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* i2c: segregate aux channel adapter indices from bit-banged i2cBen Skeggs2014-12-021-1/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gf116: remove copy1 engineIlia Mirkin2014-12-021-1/+0
| | | | | | | | | | | | | | | | Indications are that no GF116's actually have a copy engine there, but actually have the decompression engine. This engine can be made to do copies, but that should be done separately. Unclear why this didn't turn up on all GF116's, but perhaps the non-mobile ones came with enough VRAM to not trigger ttm migrations in test scenarios. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=85465 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=59168 Cc: stable@vger.kernel.org Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* fifo/g84-: ack non-stall interrupt before handling itBen Skeggs2014-12-023-4/+4
| | | | | | | | | | Closes a very unlikely race that can occur if another NonStallInterrupt method passes between checking fences and acking the previous interrupt. With this change, the interrupt will re-fire under such conditions. Tested-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gr/gt215: fix initialisation on gddr5 boardsBen Skeggs2014-10-201-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>
* disp/gt214-/dp: enable audioBen Skeggs2014-10-024-18/+23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/g94-: calculate some dp audio constantsBen Skeggs2014-10-022-22/+49
| | | | | | | NVIDIA appear to have tweaked the algorithm from GF110, this implements the previous algorithm for them still. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/gk104-: infoframe registers moved yet again on keplerBen Skeggs2014-10-026-3/+91
| | | | | | | Thanks to Vincent Pelletier for pointing this out and providing a proof of concept patch on the list. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gpio: rename g92 class to g94Emil Velikov2014-10-022-18/+18
| | | | | | | | | | | | | | | | | nv92 hardware has only 16 interrupt lines, while nv94 and later has 32. Accessing 0xe0c{0,4} registers on nv92 can lead to incorrect PDISP setup. This is a regression introduced with commit 9d0f5ec9ee0fd5dc5fc1cc2cf559286431e406e3 Author: Ben Skeggs <bskeggs@redhat.com> Date: Mon May 12 15:22:42 2014 +1000 gpio: split g92 class from nv50 Reported-by: estece on #nouveau Cc: stable@vger.kernel.org # 3.16+ Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* subdev: add a pfuse subdev v2Martin Peres2014-10-024-0/+35
| | | | | | | | | | | | We will use this subdev to disable temperature reading on cards that did not get a sensor calibration in the factory. v2: - rename "nouveau_fuse_rd32" to "gxXXX_fuse_rd32" as adviced by Christian Costa - fold the code a little as adviced by Emil Velikov Signed-off-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* ppwr: enable ppwr on gm107Martin Peres2014-10-021-1/+2
| | | | | | | | For some reason, it is now required to wait a 20 µs after the 0x200 reset of the engine. Signed-off-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gm107/therm: add PWM fan support v2Martin Peres2014-10-021-3/+1
| | | | | | | | v2: change the copyright ownership from "Nouveau Community" to myself, as per Illia's recommendation. Signed-off-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/nv50-: add support for completion eventsBen Skeggs2014-10-0210-11/+164
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* core: pass related object into notify constructorBen Skeggs2014-10-027-11/+18
| | | | | | The event source types/index might need to be derived from it. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/nv50: fix dpms regression on certain boardsBen Skeggs2014-10-021-1/+2
| | | | | | Reported in fdo#82527 comment #2. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gk20a: add LTC deviceAlexandre Courbot2014-08-151-0/+1
| | | | | | | LTC device is now required for PGRAPH to work, add it. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gr/gf100-: fix -ENOSPC detection when allocating zbc table entriesBen Skeggs2014-08-151-0/+6
| | | | | | Spotted by Coverity. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp/nv50: shhh compilerBen Skeggs2014-08-101-4/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gr/gf100-: implement the proper SetShaderExceptions methodBen Skeggs2014-08-108-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>
* gr/gf100-: remove some broken ltc bashing, for nowBen Skeggs2014-08-1013-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>
* gr/gf100-: unhardcode attribute cb configBen Skeggs2014-08-1013-166/+199
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gr/gf100-: fetch tpcs-per-ppc info on startupBen Skeggs2014-08-109-1/+16
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gr/gf100-: unhardcode pagepool configBen Skeggs2014-08-1013-41/+75
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* gr/gf100-: unhardcode bundle cb configBen Skeggs2014-08-1013-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>
* gr/gf100-: improve initial context patch list helpersBen Skeggs2014-08-104-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>
* gr/gf100-: add support for zero bandwidth clearBen Skeggs2014-08-109-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>
* ltc: s/ltcg/ltc/ + cleanupBen Skeggs2014-08-104-20/+20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp: implement nvif event sources for vblank/connector notifiersBen Skeggs2014-08-105-0/+23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp: allow user direct access to channel control registersBen Skeggs2014-08-103-0/+21
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* disp: audit and version display classesBen Skeggs2014-08-1045-153/+155
| | | | | | | | 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>
* disp: audit and version SCANOUTPOS methodBen Skeggs2014-08-1011-142/+167
| | | | | | | | 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>
* disp/nv50-: audit and version PIOR_PWR methodBen Skeggs2014-08-107-50/+30
| | | | | | | | 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>
* disp/nv50-: audit and version SOR_DP_PWR methodBen Skeggs2014-08-106-55/+24
| | | | | | | | 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>
* disp/nv50-: audit and version LVDS_SCRIPT methodBen Skeggs2014-08-106-9/+15
| | | | | | | | 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>
* disp/nv50-: audit and version SOR_HDMI_PWR methodBen Skeggs2014-08-1010-27/+86
| | | | | | | | 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>
* disp/nv50-: audit and version SOR_HDA_ELD methodBen Skeggs2014-08-107-24/+47
| | | | | | | | 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>
* disp/nv50-: audit and version SOR_PWR methodBen Skeggs2014-08-107-14/+23
| | | | | | | | 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>
* disp/nv50-: audit and version DAC_LOAD methodBen Skeggs2014-08-107-38/+24
| | | | | | | | 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>
* disp/nv50-: audit and version DAC_PWR methodBen Skeggs2014-08-109-18/+106
| | | | | | | | 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>
* disp/nv50-: share channel creation between nv50/gf110 implsBen Skeggs2014-08-1010-302/+204
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* fifo: implement nvif event sourceBen Skeggs2014-08-109-42/+60
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* fifo: allow direct access to channel control registers where possibleBen Skeggs2014-08-109-9/+34
| | | | | | | | | | | | | The indirect method has been left in-place here as a fallback path, as it may not be possible to map the non-PAGE_SIZE aligned control areas across some chipset+interface combinations. This isn't a problem for the primary use-case where the core and drm are linked together in kernel-land, but across a VM or (in the case where it applies now) between the core in the kernel and a userspace test tool. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* fifo: audit and version fifo channel classesBen Skeggs2014-08-1011-100/+202
| | | | | | | | 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>
* device: audit and version NVIF_CONTROL class and methodsBen Skeggs2014-08-101-56/+105
| | | | | | | | 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>