summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-01-23drm/nve0/fb/gddr5: parse bios data into struct rather than using directlyBen Skeggs
Still essentially a struct of magic values with magic names and unknown purposes. But, we will shortly need to be able to mix and match bits of the previous and next configurations to do a transition reclock, as such, we can no longer directly use the vbios data with any ease. This is probably nicer anyway in the long run, for a few reasons. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: found LP3 settingBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb: note the memory voltage toggle, not using it yetBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: somewhat better attempt at 100770/10f604/610/614Ben Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> fb/gddr5/nve0: 100770 is like 10f604 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: fixup delays a bitBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/bios: timing 2.0 entries can have subentriesBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: note another semi-unknownBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/fb/gddr5: modify mr8 with high bits of CL/WRBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: fix calculation of RDQS settingBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: switch off some other random bit at some pointBen Skeggs
As seen when comparing us vs nv on my GTX660 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: punt all 10f910/914 accesses through ram_trainBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: not all memory partitions are created equalBen Skeggs
As seen when comparing us vs nv on my GTX660. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb: typo in register nameBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/bios: make common code to handle ramcfg strap etcBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: fix an assumption of sane memory controller layoutBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fb/gddr5: fix behaviour of lp3 settingBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fifo: recover from mmu faults on bar1/bar3Ben Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fifo: keep mmu fault interrupts enabled at all timesBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fifo: update human-readable mmu fault descriptionsBen Skeggs
Ordering from Android GK20A driver, names from binary driver strings. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fifo: document more intr status bitsBen Skeggs
As per Android GK20A driver. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fifo: populate PBDMA status bitfield with more definitionsBen Skeggs
As per Android GK20A driver. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fifo: s/subfifo/PBDMA/Ben Skeggs
As per Android GK20A driver. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nve0/fifo: s/playlist/runlist/Ben Skeggs
As per Android GK20A driver. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nvf0/gr: enable acceleration with our chsw ucodeBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv108/gr: enable acceleration with our chsw ucodeBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nvc0-/gr: handle fwmthd interrupts in ucodeBen Skeggs
Compute code in mesa triggers one of these, hanging the engine. Let's at least ack the request for now to avoid the hang. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nvc0-/gr: fiddle some magic around strand initBen Skeggs
Fixes HUB_INIT timeout on GK110/GK208 when not using NVIDIA's ucode. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv108/gr: initial support (need external fuc)Ben Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv108/ce: enable copy enginesBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv108/fifo: initial supportBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nvf0/gr: remove a copy+pasto in ctx reglistBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nvc0-/gr: bring in some macros to abstract falcon isa differencesBen Skeggs
Need. A. Compiler... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/falcon: use vmalloc to create firwmare copiesIlia Mirkin
Some firmware images may be large (64K), so using kmalloc memory is inappropriate for them. Use vmalloc instead, to avoid high-order allocation failures. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: stable@vger.kernel.org
2014-01-23drm/nouveau/gem: remove (now) unneeded pre-validate fence syncBen Skeggs
Now that nouveau_bo.c can handle sync when it actually needs to, we can remove this and avoid a double semaphore acquire when syncing in the command submission path. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/ttm: explicitly wait for bo idle before memcpy buffer moveBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/ttm: explicity sync with kernel channel before moving bufferBen Skeggs
The GEM code handles this currently, but that'll be removed. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/ttm: tidy up creation of temporary buffer move vmasBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv04/plane: add support for nv04/nv05 video overlayIlia Mirkin
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv10/plane: add YUYV supportIlia Mirkin
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nv50-: map TTM_PL_SYSTEM through a BAR for CPU accessMaarten Lankhorst
Moves bo's to TTM_PL_TT for BAR mapping, to hide tiling from user. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau: fix m2mf copy to tiled gartMaarten Lankhorst
Commit de7b7d59d54852c introduced tiled GART, but a linear copy is still performed. This may result in errors on eviction, fix it by checking tiling from memtype. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Cc: stable@vger.kernel.org #3.10+ Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/nouveau/vm: reduce number of entry-points to vm_map()Ben Skeggs
Pretty much everywhere had to make the decision which to use, so it makes a lot more sense to just have one entrypoint decide the path to take instead. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-01-23drm/cirrus: correct register values for 16bppTakashi Iwai
When the mode is set with 16bpp on QEMU, the output gets totally broken. The culprit is the bogus register values set for 16bpp, which was likely copied from from a wrong place. Addresses https://bugzilla.novell.com/show_bug.cgi?id=799216 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: David Airlie <airlied@linux.ie> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-01-23drm/nouveau: make vga_switcheroo code depend on VGA_SWITCHEROOJeff Mahoney
Commit 8116188fdef594 ("nouveau/acpi: hook up to the MXM method for mux switching.") broke the build on non-x86 architectures due to the new dependency on MXM and MXM being an x86 platform driver. It built previously since the vga switcheroo registration routines were zereod out on !X86. The code was built in but unused. This patch makes all of the DSM code depend on CONFIG_VGA_SWITCHEROO, allowing it to build on non-x86 and shrinking the module size as well. [rdunlap@infradead.org: fix build eror when VGA_SWITCHEROO is not enabled] Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: David Airlie <airlied@linux.ie> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-01-23drm/mgag200: on cards with < 2MB VRAM default to 16-bitDave Airlie
This aligns with what the userspace -mga driver does in the same situation. Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-01-22drm/i915: Allow reading the TIMESTAMP register on Gen8.Kenneth Graunke
Nothing's changed here; we just need to bump the generation check. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-22drm/i915: Repeat evictions whilst pageflip completions are outstandingChris Wilson
Since an old pageflip will keep its scanout buffer object pinned until it has executed its unpin task on the common workqueue, we can clog up our GGTT with stale pinned objects. As we cannot flush those workqueues without dropping our locks, we have to resort to falling back to userspace and telling them to repeat the operation in order to have a chance to run our workqueues and free up the required memory. If we fail, then we are forced to report ENOSPC back to userspace causing the operation to fail and best-case scenario is that it introduces temporary corruption. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Jon Bloomfield <jon.bloomfield@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-22drm/i915: Wait for completion of pending flips when starved of fencesChris Wilson
On older generations (gen2, gen3) the GPU requires fences for many operations, such as blits. The display hardware also requires fences for scanouts and this leads to a situation where an arbitrary number of fences may be pinned by old scanouts following a pageflip but before we have executed the unpin workqueue. This is unpredictable by userspace and leads to random EDEADLK when submitting an otherwise benign execbuffer. However, we can detect when we have an outstanding flip and so cause userspace to wait upon their completion before finally declaring that the system is starved of fences. This is really no worse than forcing the GPU to stall waiting for older execbuffer to retire and release their fences before we can reallocate them for the next execbuffer. v2: move the test for a pending fb unpin to a common routine for later reuse during eviction Reported-and-tested-by: dimon@gmx.net Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73696 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Jon Bloomfield <jon.bloomfield@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-22drm/i915: don't disable DP port after a failed link trainingImre Deak
Atm after a failed link training we disable the DP port. This can happen during a modeset-enable or a DP link re-establishment. The latter can be a problem and we shouldn't disable the DP port, see the previous patch for the reasoning. In the former case the right thing would be to disable the DP port, but also the rest of the pipe. As a stop-gap solution leave the DP port enabled in both cases. It is an improvement on its own (avoiding HW lock ups) and the proper solution for the first case requires a bigger change, so let's keep that on the TODO list. v2: - fix explanation of change impact (Chris) Suggested-by: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-22drm/i915: don't disable the DP port if the link is lostImre Deak
Currently if the DP link is lost (either because of a hot unplug, or failed link status check) we disable the DP port, but leave the rest of the pipe running. This is incompatible with the modeset disabling sequence of some platforms/configurations. At least this is the case for DP ports on the CPU as opposed to PCH. Atm we'll also get a warning when we do a modeset disable after the above link lost event, since we expect the DP port to be enabled at this point (see the bugzilla ticket for the related dmesg). Note that with this patch we'll still end up disabling the port, thanks to the HPD uevent and subsequent modeset disable. See also the next patch fixing the other half of this issue. Solution suggested by Ville. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70570 Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>