summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/subdev
Commit message (Collapse)AuthorAgeFilesLines
* drm/nouveau: remove symlinks, move core/ to nvkm/ (no code changes)Ben Skeggs2015-01-22257-46070/+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>
* drm/nouveau/clk: allow users to enable auto mode when loading driverVince Hsu2015-01-221-0/+3
| | | | | | | | This patch adds one option for the boot config strings "NvClkMode*", so that we can enable the "auto" mode when loading module. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pwr: add support for GK20AVince Hsu2015-01-221-0/+232
| | | | | | | | | | | | | This patch adds PWR support for GK20A. But instead of adding the PWR features like firmware loading and communication with PMU firmware, we add the DVFS (Dynamic Voltage and Frequency Scaling), which is one of the PMU firmware's jobs on dGPUs, in this patch. This refers to the idle signals provided by the NVIDIA hardware and tries to adjust the performance level based on the calculated target. The reclocking policy can be fine-tuned later when we have more real use cases. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pwr: make nouveau_pwr_pgob() non-staticVince Hsu2015-01-222-1/+2
| | | | | | | | | The platform device does not use the common nouveau_pwr_init() to initialize the PWR, but it does need the .pgob() be assigned to avoid NULL pointer dereference in graph/nve4.c. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/clk: allow non-blocking for nouveau_clock_astate()Vince Hsu2015-01-221-2/+2
| | | | | | | | | | | There might be some callers of nouveau_clock_astate(), and they are from inetrrupt context. So we must ensure that this function can be atomic in that condition. This patch adds one parameter which is subsequently passed to nouveau_pstate_calc(). Therefore we can choose whether we want to wait for the pstate work's completion or not. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/mc: add missing bracesVince Hsu2015-01-221-1/+2
| | | | | | | | | Several braces were misplaced unintentionally. That caused the msi handling became part of the default case of the first switch statement. So add the missing ones. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: object.engine is always a nouveau_engine nowBen Skeggs2015-01-222-3/+3
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bar: barobjs may not have an engineBen Skeggs2015-01-221-4/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/fb: ram impl does not have an engineBen Skeggs2015-01-221-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/i2c: pad/ports do not have an engineBen Skeggs2015-01-2210-27/+27
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/instmem: instobjs may not have an engineBen Skeggs2015-01-223-11/+12
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/i2c: fix some blatant abuseBen Skeggs2015-01-222-3/+3
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/gf100-/bar: don't fill in bar->alloc until after all vm setup doneBen Skeggs2015-01-221-2/+4
| | | | | | | | | | | | gpuobj has a condition of (bar && bar->alloc) around usage to avoid some nasty ordering issues (which, i've now been reminded to add a todo about fixing...) between bar and vm. The bar->alloc part of the condition isn't currently necessary (it used to be, another change made bar always NULL where it matters), so we got lucky. That won't be the case for much longer. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: rename subclass.base to subclass.superclassBen Skeggs2015-01-221-2/+1
| | | | | | | | Makes things a bit more readable. This is specially important now as upcoming commits are going to be gradually removing the use of macros for down-casts, in favour of compile-time checking. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/fb: remove some (now) unnecessary hacksBen Skeggs2015-01-221-2/+0
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* Merge branch 'linux-3.19' of ↵Dave Airlie2015-01-083-24/+55
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes - Fix BUG() on !SMP builds - Fix for OOPS on pre-NV50 that snuck into -next - MCP7[789A] hang fix where firmware hasn't already setup NISO pollers - NV4x IGP MSI disable, it doesn't appear to work correctly - Add GK208B to recognised boards (no code change aside from adding chipset recognition) * 'linux-3.19' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau/nouveau: Do not BUG_ON(!spin_is_locked()) on UP drm/nv4c/mc: disable msi drm/nouveau/fb/ram/mcp77: enable NISO poller drm/nouveau/fb/ram/mcp77: use carveout reg to determine size drm/nouveau/fb/ram/mcp77: subclass nouveau_ram drm/nouveau: wake up the card if necessary during gem callbacks drm/nouveau/device: Add support for GK208B, resolves bug 86935 drm/nouveau: fix missing return statement in nouveau_ttm_tt_unpopulate drm/nouveau/bios: fix oops on pre-nv50 chipsets
| * drm/nv4c/mc: disable msiIlia Mirkin2014-12-221-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Several users have, over time, reported issues with MSI on these IGPs. They're old, rarely available, and MSI doesn't provide such huge advantages on them. Just disable. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87361 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74492 Fixes: fa8c9ac72fe ("drm/nv4c/mc: nv4x igp's have a different msi rearm register") Cc: stable@vger.kernel.org Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ram/mcp77: enable NISO pollerPierre Moreau2014-12-221-5/+39
| | | | | | | | | | Signed-off-by: Pierre Moreau <pierre.morrow@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ram/mcp77: use carveout reg to determine sizeBen Skeggs2014-12-221-4/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ram/mcp77: subclass nouveau_ramBen Skeggs2014-12-221-10/+14
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: fix oops on pre-nv50 chipsetsBen Skeggs2014-12-221-2/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | Merge branch 'linux-3.19' of ↵Dave Airlie2014-12-0265-2005/+5051
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next - Tegra K1 voltage support, and coherency improvements - GM204 support (modesetting, still waiting on NVIDIA for signed fw to proceed further), and a lot of bios/i2c/devinit adjustments needed to support it - GT21x memory reclocking work - Various other bits and pieces, most of which are prep-work for a couple of bigger projects I didn't get finished in time * 'linux-3.19' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (73 commits) drm/nv50/kms: drop requirement that framebuffer bos be contig up-front drm/nv50/kms: directly use cursor image from userspace buffer drm/nouveau/kms: when pinning display-related buffers, force contig vram drm/nouveau: teach nouveau_bo_pin() how to force a contig vram allocation drm/nouveau/volt: add support for GK20A drm/nouveau/platform: add GPU speedo information to nouveau platform drm/nouveau/volt: allow non-bios voltage scaling drm/gf100-/gr: return non-fatal error code when fw not present drm/nouveau/devinit: bump priv ring timeouts before executing scripts drm/nouveau/bios: translate ramcfg strap through M0203 drm/nouveau/fb: make use of M0203 routines for ram type determination drm/nouveau/bios: add parsing of BIT M(v2) +0x03 table drm/nouveau/core: allow vbios parsing without knowing chipset type drm/nouveau/lib: add null backend drm/nouveau/device: store revision drm/nouveau/core: add some forgotten subdevs to disable mask drm/gk20a/clk: fix max VCO value drm/nouveau: we need pin_refcnt for nouveau_bo_placement_set() drm/nv50-/kms: add some evo tracing ability for debugging drm/nv50/kms: use sclass() instead of trial-and-error ...
| * drm/nouveau/volt: add support for GK20AVince Hsu2014-12-022-0/+214
| | | | | | | | | | | | | | | | | | | | The voltage value are calculated by the hardware characterized result. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Acked-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/volt: allow non-bios voltage scalingVince Hsu2014-12-021-29/+38
| | | | | | | | | | | | | | | | | | | | | | Move the vbios parsing out of init() and call it conditionally if the platform has a vbios. Non-vbios platforms can use the ctor() to init the data structures. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Acked-by: Alexandre Courbot <acourbot@nvidia.com> Acked-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/devinit: bump priv ring timeouts before executing scriptsBen Skeggs2014-12-021-0/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: translate ramcfg strap through M0203Ben Skeggs2014-12-021-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A machine has been spotted where the ramcfg strap is "8", and the ramcfg xlat table goes 0-7,0-7, resulting in us selecting config 0 for memory items. On this particular system, config "8" is available and supposed to be used. It appears that starting from GT21x (where Mv2 appears), we're supposed to use the value in this table instead. One concern here is that not all the places we currently use ramcfg xlat are supposed to be treated the same now. The strap xlat table wasn't removed from the vbios either, presumably for some kind of good reason. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb: make use of M0203 routines for ram type determinationBen Skeggs2014-12-021-22/+15
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: add parsing of BIT M(v2) +0x03 tableBen Skeggs2014-12-021-0/+129
| | | | | | | | | | | | | | | | | | We only support one kind of matching here (ramcfg strap), but it appears alternate methods are possible. I wrote a tool to scan our vbios repo for other types, but did not see any used. Hopefully this means there aren't any in the wild that will now break. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/gk20a/clk: fix max VCO valueAlexandre Courbot2014-12-021-1/+1
| | | | | | | | | | | | | | | | | | For some reason max_vco was set to a lower value that it can support, which prevented some clock states to be applied. Fix this by setting it to the same value as downstream. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/pwr/fuc: Fix thinko in nouveau_memx_wait()Roy Spliet2014-12-021-1/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nva3/clock: Allow user reclockingRoy Spliet2014-12-021-1/+1
| | | | | | | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ramnva3: Reclocking script for GDDR3Roy Spliet2014-12-022-10/+92
| | | | | | | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ramnva3: Reclocking script for DDR2Roy Spliet2014-12-021-15/+42
| | | | | | | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ramnva3: Reclocking script for DDR3Roy Spliet2014-12-022-75/+218
| | | | | | | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ramnva3: Ressurect timing calculation codeRoy Spliet2014-12-022-14/+112
| | | | | | | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/ramnva3: Link training for DDR3Roy Spliet2014-12-029-1415/+2257
| | | | | | | | | | | | | | V2: fix whitespace errors in memx.fuc Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/gddr3: Generate MR valuesRoy Spliet2014-12-022-0/+118
| | | | | | | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios/ramcfg: 10_02_40 -> DLLoffRoy Spliet2014-12-023-3/+3
| | | | | | | | | | Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: stop after NV+NPDS+ISBN imageBen Skeggs2014-12-021-4/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: add some more signatures as seen on my gtx660Ben Skeggs2014-12-022-0/+2
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: support for opcodes 0x47/0x48Ben Skeggs2014-12-021-0/+36
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: add support for udisp 2.2Ben Skeggs2014-12-021-0/+1
| | | | | | | | | | | | Not entirely sure why this got bumped at all yet. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: add support for dp 4.1Ben Skeggs2014-12-021-1/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: add support for DCB_I2C_PMGR port typeBen Skeggs2014-12-021-0/+12
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: add support for ccb 4.1Ben Skeggs2014-12-021-2/+17
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: add support for dcb 4.1Ben Skeggs2014-12-021-12/+15
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/gm204/i2c: add aux channel driverBen Skeggs2014-12-025-3/+231
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/gm204/i2c: add pad driverBen Skeggs2014-12-022-0/+87
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: segregate aux channel adapter indices from bit-banged i2cBen Skeggs2014-12-022-2/+8
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: store aux addr independently of i2cBen Skeggs2014-12-023-41/+72
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>