summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
Commit message (Collapse)AuthorAgeFilesLines
* drm/vmwgfx: Fix compat shader namespaceThomas Hellstrom2014-07-047-413/+673
| | | | | | | | | | | Contrary to the host-backed shader interface that has a per-context name-space for shaders, the compat shader namespace was per client (or rather, per file). Fix this so that the compat shader namespace is per context, and at the same time, make command buffer managed context resource management generic. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
* Merge branch 'drm-nouveau-next' of ↵Dave Airlie2014-06-1190-1486/+3346
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next display rework fixes lots of displayport issues. * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (43 commits) drm/nouveau/disp/dp: fix tmds passthrough on dp connector drm/nouveau/dp: probe dpcd to determine connectedness drm/nv50-: trigger update after all connectors disabled drm/nv50-: prepare for attaching a SOR to multiple heads drm/gf119-/disp: fix debug output on update failure drm/nouveau/disp/dp: make use of postcursor when its available drm/g94-/disp/dp: take max pullup value across all lanes drm/nouveau/bios/dp: parse lane postcursor data drm/nouveau/dp: fix support for dpms drm/nouveau: register a drm_dp_aux channel for each dp connector drm/g94-/disp: add method to power-off dp lanes drm/nouveau/disp/dp: maintain link in response to hpd signal drm/g94-/disp: bash and wait for something after changing lane power regs drm/nouveau/disp/dp: split link config/power into two steps drm/nv50/disp: train PIOR-attached DP from second supervisor drm/nouveau/disp/dp: make use of existing output data for link training drm/gf119/disp: start removing direct vbios parsing from supervisor drm/nv50/disp: start removing direct vbios parsing from supervisor drm/nouveau/disp/dp: maintain receiver caps in response to hpd signal drm/nouveau/disp/dp: create subclass for dp outputs ...
| * drm/nouveau/disp/dp: fix tmds passthrough on dp connectorBen Skeggs2014-06-112-10/+54
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/dp: probe dpcd to determine connectednessBen Skeggs2014-06-113-40/+26
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50-: trigger update after all connectors disabledBen Skeggs2014-06-111-0/+1
| | | | | | | | | | | | | | | | We were sending the necessary state changes to unset the mode, but never actually hit the big GO button unless another modeset happens afterwards. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50-: prepare for attaching a SOR to multiple headsBen Skeggs2014-06-113-42/+46
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/gf119-/disp: fix debug output on update failureBen Skeggs2014-06-111-3/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: make use of postcursor when its availableBen Skeggs2014-06-111-8/+18
| | | | | | | | | | | | And at the same time, obey the spec better wrt out-of-range requests. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/g94-/disp/dp: take max pullup value across all lanesBen Skeggs2014-06-112-2/+6
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios/dp: parse lane postcursor dataBen Skeggs2014-06-114-24/+27
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/dp: fix support for dpmsBen Skeggs2014-06-112-4/+50
| | | | | | | | | | | | | | | | | | | | SOR_PWR has no effect to power-off DP links, unlike other SOR protocols. Instead, on the source side, we cut power to the lanes after having put the sink into D3. Link training takes care of everything required to bring it back again. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: register a drm_dp_aux channel for each dp connectorBen Skeggs2014-06-112-3/+55
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/g94-/disp: add method to power-off dp lanesBen Skeggs2014-06-115-0/+35
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: maintain link in response to hpd signalBen Skeggs2014-06-116-12/+125
| | | | | | | | | | | | | | | | | | This previously worked for the most part due to userspace doing a modeset in response to HPD interrupts. This will allow us to properly handle cases where sync is lost for other reasons, or if userspace isn't caring. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/g94-/disp: bash and wait for something after changing lane power regsBen Skeggs2014-06-111-0/+3
| | | | | | | | | | | | Some kind of update? Needed to make the power-down take effect at least. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: split link config/power into two stepsBen Skeggs2014-06-116-12/+29
| | | | | | | | | | | | We want to be able to power down the lanes for DPMS off. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50/disp: train PIOR-attached DP from second supervisorBen Skeggs2014-06-111-21/+11
| | | | | | | | | | | | Same place as for SOR, between detach and attach phases. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: make use of existing output data for link trainingBen Skeggs2014-06-1116-248/+133
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/gf119/disp: start removing direct vbios parsing from supervisorBen Skeggs2014-06-111-75/+83
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50/disp: start removing direct vbios parsing from supervisorBen Skeggs2014-06-111-107/+116
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: maintain receiver caps in response to hpd signalBen Skeggs2014-06-112-8/+68
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: create subclass for dp outputsBen Skeggs2014-06-1116-9/+265
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: use connector events for HPD instead of GPIO watchingBen Skeggs2014-06-113-44/+34
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp: add internal representaion of output paths and connectorsBen Skeggs2014-06-1110-2/+619
| | | | | | | | | | | | | | | | This will, at some point, be used to replace various bits and pieces of code doing direct bios parsing. For now, it'll just be used for some DP improvements. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios: extend connector table parsingBen Skeggs2014-06-114-16/+79
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp: nothing to see hereBen Skeggs2014-06-113-21/+42
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c/anx9805: add debugging to aux transactionsBen Skeggs2014-06-112-5/+34
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: introduce locking at a per-port levelBen Skeggs2014-06-1114-34/+380
| | | | | | | | | | | | | | | | | | | | There's also provisions to allow a pad to be locked with a specific routing, for an indefinite period of time. This will be used in future patches. The G94+ pad driver will now also power-down pads when not required. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: balance port acquire/releaseBen Skeggs2014-06-114-14/+56
| | | | | | | | | | | | | | | | | | | | | | This was a half-finished hack before, just enough to handle the shared aux/i2c pad thing on G94 and up. We got lucky with locking etc up until now, as this was (generally) all protected by the DRM mode_config lock. It's about to become a lot more likely to hit the races. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/gk104/i2c: add aux channel interrupt driverBen Skeggs2014-06-116-6/+79
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/g94/i2c: add aux channel interrupt driverBen Skeggs2014-06-113-0/+39
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: add interfaces to support handling aux channel interruptsBen Skeggs2014-06-114-0/+94
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: start hiding subdev-internal interfacesBen Skeggs2014-06-1121-236/+194
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: remove unnecessary i2c_set_adapdata()Ben Skeggs2014-06-111-2/+0
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/i2c: properly hand aux reply back to caller, and only retry on deferBen Skeggs2014-06-114-14/+20
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50-/mc: also pass PMGR interrupts onto I2C subdevBen Skeggs2014-06-113-3/+6
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gpio: send separate event types for high/low transitionsBen Skeggs2014-06-114-14/+17
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gpio: use base constructor for all implementationsBen Skeggs2014-06-118-119/+47
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gpio: move on-reset intr disable-and-ack to common codeBen Skeggs2014-06-117-138/+80
| | | | | | | | | | | | | | Re-uses the implementation's accessor functions rather than requiring and init/fini implementation for each chipset. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gpio: split "toggled" interrupt into "went high" / "went low"Ben Skeggs2014-06-117-114/+156
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gpio: split g92 class from nv50Ben Skeggs2014-06-1111-58/+110
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gpio: use indirect pointer to base class definitionBen Skeggs2014-06-1113-75/+75
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: support training to highest rate, rather than a targetBen Skeggs2014-06-111-23/+34
| | | | | | | | | | | | We really want this for, at least, MST devices. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/disp/dp: support postcursor in link trainingBen Skeggs2014-06-112-11/+53
| | | | | | | | | | | | | | Not enabled at the backends yet, but will read status and send back max reached at level 0. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: allow event source to handle multiple event types per indexBen Skeggs2014-06-1121-77/+112
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | Merge branch 'drm-nouveau-next' of ↵Dave Airlie2014-06-1048-122/+687
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next There's really not a great deal this time due to me spending most of this window on Maxwell. But, here's the random bits and pieces that's currently queued. * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (25 commits) drm/gk208/gr: add missing registers to grctx init drm/nouveau/kms/nv04-nv40: fix pageflip events via special case. drm/nv50-/mc: fix kms pageflip events by reordering irq handling order. drm/nouveau/disp/nv04-nv40: abort scanoutpos query on vga analog. drm/nv50-/kms: wait for enough ring space in crtc_prepare() drm/nouveau/disp/dp: support training pattern 3 drm/nouveau/disp/dp: support aux read interval during link training drm/gk104/gpio: fix incorrect interrupt register usage drm/nouveau/core: punt all object state change messages to trace level drm/nouveau/clk: allow end-user reclocking for nv40, nvaa, and nve0 clock types drm/nouveau/fb: default NvMemExec to on, turning it off is used for debugging only drm/nouveau/bios: fix a potential NULL deref in the PROM shadowing function drm/nouveau/i2c: bump the i2c delay for the adt7473 drm/nouveau/therm/fan/tach: default to 2 pulses per revolution drm/nvf0/device: enable video decoding engines on gk110/gk208 drm/nvf1/device: add support for 0xf1 (gk110b) drm/nouveau/device: support for probing GK20A drm/nouveau/graph: add GK20A support drm/nouveau/graph: pad firmware code at load time drm/nouveau/graph: enable when using external fw ...
| * drm/gk208/gr: add missing registers to grctx initIlia Mirkin2014-06-101-0/+2
| | | | | | | | | | | | | | | | | | This fixes hangs on GK208 which happen instantaneously on trying to use a geometry shader. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: stable@vger.kernel.org # v3.14+
| * drm/nouveau/kms/nv04-nv40: fix pageflip events via special case.Mario Kleiner2014-06-101-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Cards with nv04 display engine can't reliably use vblank counts and timestamps computed via drm_handle_vblank(), as the function gets invoked after sending the pageflip events. Fix this by defaulting to the old crtcid = -1 fallback path on <= NV-50 cards, and only using the precise path on NV-50 and later. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: <stable@vger.kernel.org> # 3.13+
| * drm/nv50-/mc: fix kms pageflip events by reordering irq handling order.Mario Kleiner2014-06-103-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Whenever a single nouveau_mc_intr() main gpu irq-handler invocation was responsible for calling both, the vblank-irq handler (display engine irq) and kms-pageflip completion handler (from fifo irq), the order of invocation was wrong. nouveau_finish_flip() was called before drm_handle_vblank() for the vblank of pageflip completion, so the emitted pageflip event contained stale vblank count and timestamp from previous vblank. This caused failure in userspace to timestamp properly. Reorder order of invocation of engine irq handlers: Put NVDEV_ENGINE_DISP always on top, and thereby before NVDEV_ENGINE_FIFO, so that drm_handle_vblank() gets called to update vblank timestamps and count before potential pageflip events make use of that information. This works on nv-50 and later, where kms-pageflip completion triggers an irq either after a separate vblank irq, or both pageflip and vblank trigger one common irq invocation, but never before vblank irqs. v2 (Ben): - removed mods for nv04-nv40, it doesn't help there anyway - this is considered a hack, and a better solution should be found Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: <stable@vger.kernel.org> # 3.13+
| * drm/nouveau/disp/nv04-nv40: abort scanoutpos query on vga analog.Mario Kleiner2014-06-101-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | nv04_disp_scanoutpos() must abort to trigger simple timestamping fallback if vtotal/htotal regs return zero. This happens if the output isn't a digital output, but a vga analog output, as the regs don't get initialized in that case. Fixes timestamping failure on nv-40 and earlier with vga output. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: <stable@vger.kernel.org> # 3.14+
OpenPOWER on IntegriCloud