Ben Skeggs
4cbb0f8d2b
drm/nvd0/disp: disconnect encoders before reprogramming them
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-13 17:15:07 +10:00
Ben Skeggs
3488c57b98
drm/nvd0/disp: move syncs/magic setup to or mode_set
...
NVIDIA appear to do these around the same place they do the MODE_CTRL
methods, and for DP at least we need to bash some extra bits in "syncs"
to keep EVO happy.
It's a bit of a guess as to the 6/8bpc, but i have no better idea yet.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-13 17:15:06 +10:00
Ben Skeggs
c674844bab
drm/nvd0/disp: fix dcb sor link matching in supervisor handler
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-13 17:15:05 +10:00
Ben Skeggs
6e83fda2c0
drm/nvd0/disp: initial implementation of displayport
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-13 17:15:04 +10:00
Ben Skeggs
7c5f6a87b2
drm/nvd0/disp: attempt to handle more than 2 crtcs if possible
...
Theoretically handles CRTC2/CRTC3, should any GF119 out there actually
have them enabled. The room is there for the regs etc, so why not :)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-13 17:15:00 +10:00
Ben Skeggs
befb51e9c9
drm/nouveau/disp: parse connector info directly in nouveau_connector.c
...
Another case where we parsed vbios data to some structs, then again use
that info once to construct another set of data. Skip the intermediate
step.
This is also slightly improved in that we can now use DCB 3.x connector
table info, which will allow NV4x to gain hotplug support, and to make
quirks for SPWG LVDS panels unnecessary.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:41 +10:00
Ben Skeggs
816af2f2d6
drm/nvd0/disp: use single, shared, sync bo for all evo channels
...
This simplifies some things, and hopefully won't come back to bite me.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:38 +10:00
Ben Skeggs
a63a97eb66
drm/nvd0/disp: rename sync channel to flip channel
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:38 +10:00
Ben Skeggs
84e052e626
drm/nvd0/disp: handle yet another interrupt
...
Spotted while messing with overlay channels (probably as a result of
sending a similar "disable" sequence as we do for the flip channels).
The value in 0x61008c was 0x20, which one would reasonably guess is
"bit 5 == something to report about evo channel 5" - but who knows.
Spotted the binary driver getting this too, and it appears to not do
anything exciting as a result. So, handle it the same way and avoid
an IRQ storm.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:37 +10:00
Ben Skeggs
8a46438a6a
drm/nvd0/disp: initialise overlay channels
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:37 +10:00
Ben Skeggs
3376ee374d
drm/nvd0/disp: add support for page flipping
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:37 +10:00
Ben Skeggs
4acd429398
drm/nvd0/disp: make it clearer that the cursor regs are pio evo channels
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:36 +10:00
Ben Skeggs
2eac77b793
drm/nvd0/disp: have evo names now, use them
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:36 +10:00
Ben Skeggs
bdb8c212be
drm/nvd0/disp: init display sync channels
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:36 +10:00
Ben Skeggs
9285462273
drm/nvd0/disp: scaler updates, overscan compensation etc
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:35 +10:00
Ben Skeggs
2d1d898b46
drm/nvd0/disp: update crtc timing calculations for interlace/doublescan
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:35 +10:00
Ben Skeggs
2a44e4997c
drm/nouveau/disp: introduce proper init/fini, separate from create/destroy
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:33 +10:00
Ben Skeggs
091e40cd95
drm/nvd0/disp: enable hdmi audio
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:32 +10:00
Ben Skeggs
27517ddbdc
drm/nvd0/disp: hook evo up to debugging
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:32 +10:00
Ben Skeggs
64d9cc04ec
drm/nvd0/disp: enable hdmi on sor if hdmi monitor present
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:32 +10:00
Ben Skeggs
78951d2226
drm/nvd0/disp: send eld to the audio codec
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:31 +10:00
Ben Skeggs
de69185573
drm/nouveau: improve dithering properties, and implement proper auto mode
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:21 +10:00
Ben Skeggs
488ff207f9
drm/nouveau: no need to pass parameters into set_scale/dither
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-12-21 19:01:20 +10:00
Ben Skeggs
26cfa81357
drm/nvd0/disp: fix sor dpms typo, preventing dpms on in some situations
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-11-30 23:40:30 +10:00
Ben Skeggs
84e2ad8b7b
drm/nvd9/disp: bail out of mode_set_base if no fb bound to crtc
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:12:11 +10:00
Ben Skeggs
c20ab3e1cb
drm/nvd9/disp: stub some more api hooks so we don't oops on resume
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:12:08 +10:00
Ben Skeggs
37b034a64b
drm/nvd0/disp: tidy up what we have so far
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:49 +10:00
Ben Skeggs
ee41779e76
drm/nvd0/disp: rewrite irq handler, should be somewhat sturdier now
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:46 +10:00
Ben Skeggs
f20ce9629f
drm/nvd0/disp: do modeset irq handling from tasklet
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:42 +10:00
Ben Skeggs
3b6d83d1b9
drm/nvd0/disp: untested LVDS support
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:36 +10:00
Ben Skeggs
c6f2f71dae
drm/nvd0/disp: track down fb positioning method
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:32 +10:00
Ben Skeggs
ff8ff50342
drm/nvd0/disp: determine U table config in or_mode_set()
...
Takes a gamble and presumes that we can safely store something random in
OR_MODE_CTRL+4, the hw doesn't seem to mind...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:29 +10:00
Ben Skeggs
b681993f7a
drm/nvd0/disp: dac load detect
...
VBIOS does more than this, as does nv50/nvc0 driver in nouveau. Traces
of the NVIDIA binary driver however, show pretty much just this being
done... Seems to work for me, it'll be fine for the moment.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:22 +10:00
Ben Skeggs
629c1b9207
drm/nvd0/disp: handle sync polarity, kill off some unknown
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:18 +10:00
Ben Skeggs
f3fdc52dd7
drm/nvd0/disp: scaling
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:15 +10:00
Ben Skeggs
a46232ee09
drm/nvd0/disp: push the update button in mode_set_base()
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:09 +10:00
Ben Skeggs
8ea0d4aa60
drm/nvd0/disp: fixup clut so it actually works
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:05 +10:00
Ben Skeggs
3a89cd0292
drm/nvd0/disp: initial attempt at modeset irq handling
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:01 +10:00
Ben Skeggs
b6d8e7ec38
drm/nvd0/disp: stub dac load detect, prevents oops
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:57 +10:00
Ben Skeggs
8eaa9669f8
drm/nvd0/disp: dac encoder module
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:50 +10:00
Ben Skeggs
a36f04c044
drm/nvd0/disp: extend the init voodoo to cover crtcs
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:47 +10:00
Ben Skeggs
c0cc92a115
drm/nvd0/disp: remove lp reordering from vram dmaobj, create fb dmaobjs
...
Fixes CLUT being messed up. Mostly.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:44 +10:00
Ben Skeggs
1d6e7a59f7
drm/nvd0/disp: some magic to make evo happeir
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:37 +10:00
Ben Skeggs
438d99e3b1
drm/nvd0/disp: initial crtc object implementation
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:30 +10:00
Ben Skeggs
270a574780
drm/nvd0/disp: skeletal handling of modeset interrupts
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:24 +10:00
Ben Skeggs
83fc083cbb
drm/nvd0/disp: start on SOR encoder functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:21 +10:00
Ben Skeggs
efd272a7a0
drm/nvd0/disp: setup a couple of dma objects we'll need
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:07 +10:00
Ben Skeggs
4600522a8f
drm/nvd0/disp: start on interrupt handling
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:01 +10:00
Ben Skeggs
51beb428e4
drm/nvd0/disp: whip up some basic dma handling for the evo channels
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:05:57 +10:00
Ben Skeggs
26f6d88b32
drm/nvd0/disp: very initial evo setup
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:05:54 +10:00