summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/engine/device
Commit message (Collapse)AuthorAgeFilesLines
* drm/nouveau/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>
* drm/nouveau/dmaobj: update to an improved style of class definitionBen Skeggs2014-08-109-66/+66
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/device: audit and version NV_DEVICE classBen Skeggs2014-08-101-61/+94
| | | | | | | | 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>
* drm/nouveau/client: add method to retrieve device listBen Skeggs2014-08-101-0/+14
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: remove NV_D0 familyBen Skeggs2014-08-101-6/+4
| | | | | | | The one place where it mattered has been replaced with a class check, which is more appropriate anyway. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/device: add method to retrieve some basic device infoBen Skeggs2014-08-101-37/+126
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: rework event interfaceBen Skeggs2014-08-102-3/+22
| | | | | | | | | | | | | | | This is a lot of prep-work for being able to send event notifications back to userspace. Events now contain data, rather than a "something just happened" signal. Handler data is now embedded into a containing structure, rather than being kmalloc()'d, and can optionally have the notify routine handled in a workqueue. Various races between suspend/unload with display HPD/DP IRQ handlers automagically solved as a result. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gk20a: reclocking supportAlexandre Courbot2014-08-101-0/+1
| | | | | | | | | Add support for reclocking on GK20A, using a statically-defined pstates table. The algorithms for calculating the coefficients and setting the clocks are directly taken from the ChromeOS kernel. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: map pages using DMA APIAlexandre Courbot2014-08-101-25/+0
| | | | | | | | | | The DMA API is the recommended way to map pages no matter what the underlying bus is. Use the DMA functions for page mapping and remove currently existing wrappers. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gk20a: add BAR instanceAlexandre Courbot2014-08-101-1/+1
| | | | | | | | GK20A's BAR is functionally identical to NVC0's, but do not support being ioremapped write-combined. Create a BAR instance for GK20A that reflect that state. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
* drm/nouveau: expose pstate selection per-power source in sysfsBen Skeggs2014-08-101-8/+17
| | | | | | | | echo ac:id >> pstate # select mode when on mains power echo dc:id >> pstate # select mode when on battery echo id >> pstate # select mode for both Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/clk: allow selection of different power state for ac vs batteryBen Skeggs2014-08-101-2/+5
| | | | | | | v2: - s/init/fini/ typo, reported by Alex Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/device: register for acpi eventsBen Skeggs2014-08-103-2/+81
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gk208-/gr: stop touching 0x260 inappropriatelyBen Skeggs2014-08-102-3/+3
| | | | | | | 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>
* drm/gk110b/gr: initvals differ from gk110Ben Skeggs2014-08-101-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gk104/pwr: implement PGOB disable methodBen Skeggs2014-08-101-2/+2
| | | | | | | | | | | | | | | | | As documented at: ftp://download.nvidia.com/open-gpu-doc/gk104-disable-graphics-power-gating/1/gk104-disable-graphics-power-gating.txt NVIDIA were not able document the steps necessary to detect whether this is required or not at this time. However, they did confirm that this procedure is safe to perform unconditionally on GK104/6. GK107 does not have the power gating feature, and it was recommended that we do not perform these steps there as the effects were not verified. The disable path is from observing the binary driver, and not documented in the link above. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pwr: tidyBen Skeggs2014-08-104-19/+19
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gf117/i2c: no aux channels on this chipsetBen Skeggs2014-06-181-1/+1
| | | | | Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gk104/i2c: add aux channel interrupt driverBen Skeggs2014-06-111-5/+5
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/i2c: start hiding subdev-internal interfacesBen Skeggs2014-06-119-65/+65
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gpio: split g92 class from nv50Ben Skeggs2014-06-112-18/+18
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gpio: use indirect pointer to base class definitionBen Skeggs2014-06-118-63/+63
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvf0/device: enable video decoding engines on gk110/gk208John Rowley2014-06-101-6/+0
| | | | | | | Only tested on nvf1, was advised to enable on all. Signed-off-by: John Rowley <john.rowley08@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvf1/device: add support for 0xf1 (gk110b)John Rowley2014-06-101-0/+35
| | | | | Signed-off-by: John Rowley <john.rowley08@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/device: support for probing GK20AAlexandre Courbot2014-06-101-0/+17
| | | | | | | Set the correct subdev/engine classes when GK20A (0xea) is probed. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gm107/gr: initial supportBen Skeggs2014-03-261-3/+1
| | | | | | | Our ucode only partially works at this point, so requiring binary fw image for now. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gf104/gr: rename gf104 (nvc4), it came before gf106 (nvc3)Ben Skeggs2014-03-261-4/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* support for platform devicesAlexandre Courbot2014-03-261-5/+78
| | | | | | | | | | | | | | | | | | | | | 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>
* drm/gm100/device: recognise GM107Ben Skeggs2014-03-262-0/+110
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gm107/ltcg: initial implementationBen Skeggs2014-03-262-14/+14
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/disp: preparation for storing static class dataBen Skeggs2014-03-268-63/+63
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv4c/mc: nv4x igp's have a different msi rearm registerIlia Mirkin2014-02-181-5/+5
| | | | | | | | | See https://bugs.freedesktop.org/show_bug.cgi?id=74492 Reported-by: Ronald <ronald645@gmail.com> Suggested-by: Marcin Koƛcielnicki <koriakin@0x04.net> Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/devinit: prevent use of engines marked as disabled by hw/vbiosIlia Mirkin2014-01-231-10/+10
| | | | | Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/devinit: tidy up the subdev class definitionBen Skeggs2014-01-238-63/+63
| | | | | Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/instmem: tidy up the subdev class definitionBen Skeggs2014-01-238-63/+63
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv108/gr: initial support (need external fuc)Ben Skeggs2014-01-231-3/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv108/ce: enable copy enginesBen Skeggs2014-01-231-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv108/fifo: initial supportBen Skeggs2014-01-231-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvce/mc: fix msi rearm on GF114Sid Boyce2014-01-071-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: populate master subdev pointer only when fully constructedBen Skeggs2014-01-071-0/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/clk: Add support for NVAA/NVACRoy Spliet2013-12-031-2/+2
| | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc8/mc: msi rearm is via the nvc0 methodBen Skeggs2013-11-141-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/fb: implement various bits of work towards memory reclockingBen Skeggs2013-11-081-5/+5
| | | | | | Not even remotely ready for the vast majority of the world. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/device: initial control object class, with pstate control methodsBen Skeggs2013-11-083-2/+155
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/clk: implement power state and engine clock control in coreBen Skeggs2013-11-082-15/+15
| | | | | | User control of this has been hard-coded as disabled for now. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/volt: implement voltage control in coreBen Skeggs2013-11-084-0/+47
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/perfmon: initial infrastructure to expose performance countersBen Skeggs2013-11-085-1/+50
| | | | | | Internal use only at this point. Userspace later. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bus: add interfaces/helpers for sequencerBen Skeggs2013-11-081-10/+10
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bus: make external class definitions pointersBen Skeggs2013-11-088-63/+63
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pwr: initial implementationBen Skeggs2013-11-084-0/+21
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
OpenPOWER on IntegriCloud