summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm
Commit message (Collapse)AuthorAgeFilesLines
* drm/nouveau/vdec: fork vp3 implementations from vp2Ilia Mirkin2013-07-016-14/+204
| | | | | Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: move falcon class to engine/Ben Skeggs2013-07-0111-24/+21
| | | | | | | | Not really "core" per-se. About to merge Ilia's work adding another similar class for the VP2 xtensa engines, so, seems like a good time to move all these to engine/. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/kms: don't fail if there's no dcb table entriesBen Skeggs2013-07-012-7/+9
| | | | | | Fixes module not loading on Tesla K20. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: remove limit on gartMaarten Lankhorst2013-07-011-5/+0
| | | | | | | | Most graphics cards nowadays have a multiple of this limit as their vram, so limiting GART doesn't seem to make much sense. Signed-off-by: Maarten >Lnkhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/vm: perform a bar flush when flushing vmMaarten Lankhorst2013-07-012-0/+8
| | | | | | | | | | Appears to fix the regression from "drm/nvc0/vm: handle bar tlb flushes internally". nvidia always seems to do this flush after writing values. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: cleanup register lists, and add nvce/nvcf to switchesBen Skeggs2013-07-016-600/+344
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc8/gr: update initial register/context valuesBen Skeggs2013-07-016-10/+74
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc4/gr: update initial register/context valuesBen Skeggs2013-07-016-9/+62
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc1/gr: update initial register/context valuesBen Skeggs2013-07-016-35/+80
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc3/gr: update initial register/context valuesBen Skeggs2013-07-016-12/+112
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: update initial register/context valuesBen Skeggs2013-07-016-544/+1042
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvd9/gr: update initial register/context valuesBen Skeggs2013-07-016-74/+482
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve4/gr: update initial register/context valuesBen Skeggs2013-07-014-157/+31
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0-/gr: bump maximum gpc/tpc limitsBen Skeggs2013-07-011-2/+4
| | | | | | | Needed for GK110, separate commit to catch any unexpected breaks to other parts of the code. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvf0/gr: initial register/context setupBen Skeggs2013-07-016-482/+1057
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve7/gr: update initial register/context valuesBen Skeggs2013-07-014-3/+12
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve6/gr: update initial register/context valuesBen Skeggs2013-07-014-113/+383
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: delay busy bo vma removal until fence signalsBen Skeggs2013-07-014-15/+108
| | | | | | | As opposed to an explicit wait. Allows userspace to not stall waiting on buffer deletion. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/vm: make each vma take a reference on its parent vmBen Skeggs2013-07-011-1/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/core: remove nouveau_mm.mutex, no more usersBen Skeggs2013-07-013-5/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/vm: take subdev mutex, not the mm, protects against race with ↵Ben Skeggs2013-07-011-16/+17
| | | | | | | | | vm/nvc0 nvc0_vm_flush() accesses the pgd list, which will soon be able to race with vm_unlink() during channel destruction. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/vm: handle bar tlb flushes internallyBen Skeggs2013-07-013-34/+28
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-/vm: take mutex rather than irqsave spinlockBen Skeggs2013-07-012-10/+4
| | | | | | | | | | These operations can take quite some time, and we really don't want to have to hold a spinlock for too long. Now that the lock ordering for vm and the gr/nv84 hw bug workaround has been reversed, it's possible to use a mutex here. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/vm: remove explicit vm knowledge from enginesBen Skeggs2013-07-019-66/+31
| | | | | | This reverses the lock ordering between VM and gr/nv84:nvc0. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/vm: handle bar tlb flushes internallyBen Skeggs2013-07-013-5/+13
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: port mp trap handling from calim's kepler codeBen Skeggs2013-07-011-6/+38
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/gr: attempt to resume after sm trapsBen Skeggs2013-07-011-16/+6
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/gr: s/tp/tpc/Ben Skeggs2013-07-011-26/+27
| | | | | | NVIDIA's name... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/fifo: create our playlists up-front, at startupBen Skeggs2013-07-011-14/+14
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nva3/clk: minor improvements to fractional N calculationBen Skeggs2013-07-011-3/+11
| | | | | | | Helps us to get identical numbers to the binary driver for (at least) Kepler memory PLLs, and fixes a rounding error. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/fb: initialise vram controller as pfb sub-objectBen Skeggs2013-07-0145-733/+1313
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/clk: change init ordering, no longer needed by devinitBen Skeggs2013-07-011-2/+2
| | | | | | | And, will depend on FB/VOLT/DAEMON being ready when it gets initialised so that it can set/restore clocks. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/devinit: move simple pll setting routines to devinitBen Skeggs2013-07-0124-487/+628
| | | | | | | | | These are pretty much useless for reclocking purposes. Lets make it clearer what they're for and move them to DEVINIT to signify they're for the very simple PLL setting requirements of running the init tables. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: pass generic subdev to calculation routinesBen Skeggs2013-07-017-18/+17
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/ce: stub interrupt handlerBen Skeggs2013-07-012-0/+17
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/ce: link ce2 to its engine, rather than from graphicsBen Skeggs2013-07-012-2/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/fifo: copy engine context stored in ramfc, not externallyBen Skeggs2013-07-011-8/+14
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nve0/ce: create engine object for ce2Ben Skeggs2013-07-014-0/+36
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: pull in latest ucode builds from external treeBen Skeggs2013-07-015-48/+51
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* Merge branch 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie2013-06-211-0/+7
|\ | | | | | | | | | | | | | | into drm-fixes One user visible fix to stop misreport GPU hangs and subsequent resets. * 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: update lockup tracking when scheduling in empty ring
| * drm/radeon: update lockup tracking when scheduling in empty ringJerome Glisse2013-06-201-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | There might be issue with lockup detection when scheduling on an empty ring that have been sitting idle for a while. Thus update the lockup tracking data when scheduling new work in an empty ring. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Tested-by: Andy Lutomirski <luto@amacapital.net> Cc: stable@vger.kernel.org Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* | Merge branch 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie2013-06-195-53/+77
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | into drm-fixes Alex writes: Remove some harmless but confusing VM related error messages fix a regression with suspend and UVD, fix UVD on big endian. * 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: fix UVD on big endian drm/radeon: fix write back suspend regression with uvd v2 drm/radeon: do not try to uselessly update virtual memory pagetable
| * drm/radeon: fix UVD on big endianAlex Deucher2013-06-142-20/+27
| | | | | | | | | | | | | | | | This fixes the kernel side so that the ring should come up and ring and IB tests should work. The userspace UVD drivers will also need big endian fixes. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: fix write back suspend regression with uvd v2Jerome Glisse2013-06-123-31/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UVD ring can't use scratch thus it does need writeback buffer to keep a valid address or radeon_ring_backup will trigger a kernel fault. It's ok to not unpin the write back buffer on suspend as it leave in gtt and thus does not need eviction. v2: Fix the uvd case. Reported and tracked by Wojtek <wojtask9@wp.pl> Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| * drm/radeon: do not try to uselessly update virtual memory pagetableJerome Glisse2013-06-121-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If a buffer is never bound to a virtual memory pagetable than don't try to unbind it. Only drawback is that we don't update the pagetable when unbinding the ib pool buffer which is fine because it only happens at suspend or module unload/shutdown. Fixes spurious messages about buffers without VM mappings. E.g.: radeon 0000:01:00.0: bo ffff88020afac400 don't has a mapping in vm ffff88021ca2b900 Cc: stable@kernel.org Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* | drm/prime: Honor requested file flags when exporting a bufferLaurent Pinchart2013-06-191-2/+1
|/ | | | | | | | | The DRM PRIME API passes file flags to the driver for the exported buffer. Honor them instead of hardcoding 0600. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
* Merge tag 'drm-intel-fixes-2013-06-11' of ↵Dave Airlie2013-06-111-10/+14
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://people.freedesktop.org/~danvet/drm-intel into drm-fixes Daniel writes: Just tiny regression fixes here: - Two fixes to fix sdvo hotplug which broke in the hpd storm detection work. - One fix to patch-up the sdvo lvds regression fixer from the last pull - we need to prefer the vbt mode over edid modes. * tag 'drm-intel-fixes-2013-06-11' of git://people.freedesktop.org/~danvet/drm-intel: drm/i915: prefer VBT modes for SVDO-LVDS over EDID drm/i915: Enable hotplug interrupts after querying hw capabilities. drm/i915: Fix hotplug interrupt enabling for SDVOC
| * drm/i915: prefer VBT modes for SVDO-LVDS over EDIDDaniel Vetter2013-06-101-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 53d3b4d7778daf15900867336c85d3f8dd70600c Author: Egbert Eich <eich@suse.de> Date: Tue Jun 4 17:13:21 2013 +0200 drm/i915/sdvo: Use &intel_sdvo->ddc instead of intel_sdvo->i2c for DDC Egbert Eich fixed a long-standing bug where we simply used a non-working i2c controller to read the EDID for SDVO-LVDS panels. Unfortunately some machines seem to not be able to cope with the mode provided in the EDID. Specifically they seem to not be able to cope with a 4x pixel mutliplier instead of a 2x one, which seems to have been worked around by slightly changing the panels native mode in the VBT so that the dotclock is just barely above 50MHz. Since it took forever to notice the breakage it's fairly safe to assume that at least for SDVO-LVDS panels the VBT contains fairly sane data. So just switch around the order and use VBT modes first. v2: Also add EDID modes just in case, and spell Egbert correctly. v3: Elaborate a bit more about what's going on on Chris' machine. Cc: Egbert Eich <eich@suse.de> Cc: Chris Wilson <chris@chris-wilson.co.uk> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65524 Cc: stable@vger.kernel.org Reported-and-tested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/i915: Enable hotplug interrupts after querying hw capabilities.Chris Wilson2013-06-101-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sdvo->hotplug_active is initialised during intel_sdvo_setup_outputs(), and so we never enabled the hotplug interrupts on SDVO as we were checking too early. This regression has been introduced somewhere in the hpd rework for the storm detection and handling starting with commit 1d843f9de4e6dc6a899b6f07f106c00da09925e6 Author: Egbert Eich <eich@suse.de> Date: Mon Feb 25 12:06:49 2013 -0500 DRM/I915: Add enum hpd_pin to intel_encoder. and the follow-up patches to use the new encoder->hpd_pin variable for the different irq setup functions. The problem is that encoder->hpd_pin was set up _before_ the output setup was done and so before we could assess the hotplug capabilities of the outputs on an sdvo encoder. Reported-by: Alex Fiestas <afiestas@kde.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58405 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> [danvet: Add regression note.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/i915: Fix hotplug interrupt enabling for SDVOCChris Wilson2013-06-101-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A broken conditional would lead to SDVOC waiting upon hotplug events on SDVOB - and so miss all activity on its SDVO port. This regression has been introduced in commit 1d843f9de4e6dc6a899b6f07f106c00da09925e6 Author: Egbert Eich <eich@suse.de> Date: Mon Feb 25 12:06:49 2013 -0500 DRM/I915: Add enum hpd_pin to intel_encoder. References: https://bugs.freedesktop.org/show_bug.cgi?id=58405 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> [danvet: Add regression note.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>