Christoph Bumiller
af5e7d84b0
drm/nvd0/disp: mask off high 16 bit of negative cursor x-coordinate
...
Signed-off-by: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: stable@vger.kernel.org
2012-08-14 09:36:24 +10:00
Laurent Pinchart
e811f5ae19
drm: Make the .mode_fixup() operations mode argument a const pointer
...
The passed mode must not be modified by the operation, make it const.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-07-19 21:52:38 -04:00
Ben Skeggs
35bcf5d555
drm/nouveau: move flip-related channel setup to software engine
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-05-24 16:55:43 +10:00
Ben Skeggs
2cda7f4c5e
drm/nvd0/disp: remove unnecessary sync from flip_next
...
This shouldn't be necessary, I believe this is just a bit of missed debug
code that got left over somehow.
Causes flips to be always synced to vblank, regardless of swap interval,
which we don't want..
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-05-24 16:32:03 +10:00
Ben Skeggs
6d59702775
drm/nouveau: use the same packet header macros as userspace
...
Cosmetic cleanup only.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-05-24 16:31:49 +10:00
Dave Airlie
22b33e8ed0
nouveau: add PRIME support
...
This adds prime->fd and fd->prime support to nouveau,
it passes the SG object to TTM, and then populates the
GART entries using it.
v2: add stubbed kmap + use new function to fill out pages array
for faulting + add reimport test.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-05-23 10:46:55 +01:00
Ben Skeggs
6544599249
drm/nouveau/dp: support version 4.0 of DP table
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-23 00:21:18 +10:00
Ben Skeggs
e592c73b91
drm/nve0/disp: nvidia randomly decided to move the dithering method
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-23 00:21:14 +10:00
Ben Skeggs
dd62608bcc
drm/nvd0/disp: ignore clock set if no pclk
...
This happens somehow during init on a machine I have, and leads to a
divide-by-zero.
Lets avoid that...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-22 17:18:00 +10:00
Ben Skeggs
b5b2e5988b
drm/nouveau: remove subchannel names from places where it doesn't matter
...
These are FIFO methods, it doesn't matter what subchannel is being used.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-03-22 17:17:30 +10:00
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