summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-06-11is this mst enabledevel-mstBen Skeggs1-0/+1
2014-06-11WIPkms: add support for MSTBen Skeggs8-7/+612
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: fix tmds passthrough on dp connectorBen Skeggs2-10/+54
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11kms/dp: probe dpcd to determine connectednessBen Skeggs3-40/+26
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11kms/nv50-: trigger update after all connectors disabledBen Skeggs1-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>
2014-06-11kms/nv50-: prepare for attaching a SOR to multiple headsBen Skeggs3-42/+46
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/gf119-: fix debug output on update failureBen Skeggs1-3/+3
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: make use of postcursor when its availableBen Skeggs1-8/+18
And at the same time, obey the spec better wrt out-of-range requests. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/g94-/dp: take max pullup value across all lanesBen Skeggs2-2/+6
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11bios/dp: parse lane postcursor dataBen Skeggs4-24/+27
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11kms/dp: fix support for dpmsBen Skeggs2-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>
2014-06-11kms: register a drm_dp_aux channel for each dp connectorBen Skeggs2-3/+55
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/g94-: add method to power-off dp lanesBen Skeggs5-0/+35
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: maintain link in response to hpd signalBen Skeggs6-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>
2014-06-11disp/g94-: bash and wait for something after changing lane power regsBen Skeggs1-0/+3
Some kind of update? Needed to make the power-down take effect at least. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: split link config/power into two stepsBen Skeggs6-12/+29
We want to be able to power down the lanes for DPMS off. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/nv50: train PIOR-attached DP from second supervisorBen Skeggs1-21/+11
Same place as for SOR, between detach and attach phases. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: make use of existing output data for link trainingBen Skeggs16-248/+133
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/gf119: start removing direct vbios parsing from supervisorBen Skeggs1-75/+83
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/nv50: start removing direct vbios parsing from supervisorBen Skeggs1-107/+116
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: maintain receiver caps in response to hpd signalBen Skeggs3-8/+70
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: create subclass for dp outputsBen Skeggs19-9/+268
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11kms: use connector events for HPD instead of GPIO watchingBen Skeggs3-44/+34
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp: add internal representaion of output paths and connectorsBen Skeggs15-2/+625
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>
2014-06-11bios: extend connector table parsingBen Skeggs4-16/+79
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp: nothing to see hereBen Skeggs3-21/+42
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11i2c/anx9805: add debugging to aux transactionsBen Skeggs3-5/+35
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11i2c: introduce locking at a per-port levelBen Skeggs19-34/+387
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>
2014-06-11i2c: balance port acquire/releaseBen Skeggs5-18/+63
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>
2014-06-11i2c/gk104: add aux channel interrupt driverBen Skeggs8-7/+82
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11i2c/g94: add aux channel interrupt driverBen Skeggs3-0/+39
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11i2c: add interfaces to support handling aux channel interruptsBen Skeggs4-0/+94
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11i2c: start hiding subdev-internal interfacesBen Skeggs22-236/+195
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11i2c: remove unnecessary i2c_set_adapdata()Ben Skeggs1-2/+0
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11i2c: properly hand aux reply back to caller, and only retry on deferBen Skeggs4-14/+20
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11mc/nv50-: also pass PMGR interrupts onto I2C subdevBen Skeggs3-3/+6
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11gpio: send separate event types for high/low transitionsBen Skeggs4-14/+17
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11gpio: use base constructor for all implementationsBen Skeggs8-119/+47
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11gpio: move on-reset intr disable-and-ack to common codeBen Skeggs7-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>
2014-06-11gpio: split "toggled" interrupt into "went high" / "went low"Ben Skeggs7-114/+156
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11gpio: split g92 class from nv50Ben Skeggs13-58/+112
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11gpio: use indirect pointer to base class definitionBen Skeggs13-75/+75
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: support training to highest rate, rather than a targetBen Skeggs1-23/+34
We really want this for, at least, MST devices. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11disp/dp: support postcursor in link trainingBen Skeggs2-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>
2014-06-11core: allow event source to handle multiple event types per indexBen Skeggs21-77/+112
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2014-06-11gr/gk208: add missing registers to grctx initIlia Mirkin1-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+
2014-06-11kms/nv04-nv40: fix pageflip events via special case.Mario Kleiner1-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+
2014-06-11mc/nv50-: fix kms pageflip events by reordering irq handling order.Mario Kleiner3-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+
2014-06-11disp/nv04-nv40: abort scanoutpos query on vga analog.Mario Kleiner2-0/+15
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+
2014-06-07bin: fix nv_aux wrBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>