Ben Skeggs
4f6029da58
drm/nv50-nvc0: switch to common disp impl, removing previous version
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:58 +10:00
Ben Skeggs
f9887d0911
drm/nvd0/disp: implement support for colour vibrance control
...
Ported from original nv50 commit by Christoph, with added support for the
setting on later chipsets.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:57 +10:00
Ben Skeggs
647bf61d03
drm/nvd0/disp: remove fetching of capabilities report
...
Unused, and caused a race with evo_sync(). Will revisit using it properly
later on.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:57 +10:00
Ben Skeggs
63718a0730
drm/nvd0/disp: enable support for older display classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:56 +10:00
Ben Skeggs
47057302f0
drm/nvd0/disp: support creation of fb dma objects on older chipsets
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:56 +10:00
Ben Skeggs
ed5085a589
drm/nvd0/disp: implement support for older DISP_SYNC classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:56 +10:00
Ben Skeggs
419e8dc0af
drm/nvd0/disp: implement sor support for older display classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:55 +10:00
Ben Skeggs
97b19b5c6f
drm/nvd0/disp: implement dac support for older display classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:55 +10:00
Ben Skeggs
de8268c503
drm/nvd0/disp: start implementing support for older display classes
...
Currently unused, but checkpointing the merged head handling routines.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:54 +10:00
Ben Skeggs
8f2abc2586
drm/nouveau/dp: remove last bits of VBIOS parsing from DRM code
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:54 +10:00
Ben Skeggs
6c8e4633d3
drm/nouveau/dp: move core link training calls to common code
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:53 +10:00
Ben Skeggs
b6e4ad200a
drm/nouveau: remove (now obsolete) BIT U table parsing from DRM code
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:53 +10:00
Ben Skeggs
186ecad21c
drm/nv50/disp: move remaining interrupt handling into core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:52 +10:00
Ben Skeggs
4a230fa618
drm/nvd0/disp: calculate U script id in supervisor interrupt
...
This is like we do on nv50:nvd9 already. There's been no problems seen
yet with using this *seemingly* scratch register to store the value, but
we won't be able to do this anymore once nv50's code is merged.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:52 +10:00
Ben Skeggs
8e9e3d2dea
drm/nv84/disp: move hdmi control into core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:51 +10:00
Ben Skeggs
a4feaf4ea5
drm/nva3/disp: move hda codec handling to core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:51 +10:00
Ben Skeggs
f7960736d0
drm/nv50/disp: move dp link training helpers into core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:50 +10:00
Ben Skeggs
7ebb38b556
drm/nv50/disp: call into core for dac load detection
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:50 +10:00
Ben Skeggs
ef22c8bb7b
drm/nv50/disp: call into core to handle dac/sor power state changes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:49 +10:00
Ben Skeggs
2d0aca2119
drm/nv50/disp: allocate display from driver core
...
EVO channels still handled "manually", this won't be ported here, and
will instead be held off until nv50_display/nvd0_display are merged.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:49 +10:00
Ben Skeggs
75f8693f30
drm/nouveau/bios: implement some dcb output entry parsing/matching functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:48 +10:00
Ben Skeggs
ed58aee93c
drm/nvd0/disp: handle DP transfer unit setup from second supervisor interrupt
...
This is what we've done forever in nv50_display.c, and also allows the
last direct MMIO accesses to be removed from nvd0_display.c.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:48 +10:00
Ben Skeggs
1c30cd09e3
drm/nvd0/disp: move HDMI control to core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:47 +10:00
Ben Skeggs
0a9e2b959f
drm/nvd0/disp: move HDA codec setup to core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:47 +10:00
Ben Skeggs
35b21d39a5
drm/nvd0/disp: call into core to handle dac power state changes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:46 +10:00
Ben Skeggs
74b6685089
drm/nvd0/disp: call into core to handle sor power state changes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:46 +10:00
Ben Skeggs
6c5a04249d
drm/nvd0/disp: move link training helpers into core as display methods
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:45 +10:00
Ben Skeggs
fb445b3c23
drm/nouveau/core: allow representing method ranges in nouveau_omthds
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:45 +10:00
Ben Skeggs
cbe7270d48
drm/nouveau/core: expose full method calling capabilities with nv_exec
...
nv_call() just allows mthd+u32 submission, nv_exec() exposes the
mthd+data+size interface which will be used in future commits.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:45 +10:00
Ben Skeggs
65c78660fb
drm/nouveau/bios: implement "full" BIT 'd' table (and subtable) parsing in core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:44 +10:00
Ben Skeggs
14464b8cd6
drm/nvd0/disp: move remaining interrupt handling to core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:44 +10:00
Ben Skeggs
206c38a9f1
drm/nouveau/core: add some missing subdev/engine disable flags
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:43 +10:00
Ben Skeggs
b6caea5058
drm/nouveau/bios: implement BIT 'U' table (and subtable) parsing in core
...
This will, in the near future, replace what's currently in the DRM
nouveau_bios.c code.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:43 +10:00
Ben Skeggs
b5a794b0f1
drm/nvd0/disp: allocate display and evo channels from driver core
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:42 +10:00
Ben Skeggs
d6bf2f3707
drm/nouveau: run mode_config destructor before destroying internal display state
...
Later changes will depend on being able to pull down CRTCs etc with the
master display state still intact.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:42 +10:00
Ben Skeggs
94e5c39bad
drm/nouveau/drm/nvd0/disp: display->disp
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:41 +10:00
Ben Skeggs
dd0e3d53f0
drm/nvd0/disp: introduce a nvd0_head as a subclass of nouveau_crtc
...
This will be used instead of storing a heap of per-head data (such as evo
channels) in nvd0_display in some other way.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:41 +10:00
Ben Skeggs
46654061bb
drm/nvd0-nve0/disp: initial implementation of evo channel classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:40 +10:00
Ben Skeggs
944234d6a2
drm/nv50/disp: allow PCI_US pushbuf binding
2012-11-29 09:57:40 +10:00
Ben Skeggs
370c00f939
drm/nv50/disp: initial implementation of the various channel object classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:35 +10:00
Ben Skeggs
446b05a077
drm/nv50/disp: enable interrupts and setup memory area
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:41 +10:00
Ben Skeggs
ab77214a8e
drm/nv50/disp: copy caps to evo
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:41 +10:00
Ben Skeggs
70cabe4a14
drm/nv50/disp: create skeleton display/channel object classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:40 +10:00
Ben Skeggs
47a1e0fe4b
drm/nvd0/dmaobj: initial bind() method implementation
...
Currently unused, and rudimentary. Lots to figure out here still, but
this is sufficient for what disp will need.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:40 +10:00
Ben Skeggs
80fe155ba6
drm/nvc0/dmaobj: implement initial bind() method
...
Currently unused.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:39 +10:00
Ben Skeggs
f756944a21
drm/nv50/dmaobj: extend class to allow gpu-specific attributes to be defined
...
disp is going to need to be able to create more specific dma objects
than was previously possible.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:39 +10:00
Ben Skeggs
344e107df7
drm/nvd0/dmaobj: duplicate fermi class, will diverge real soon now
...
The hardware dmaobj format completely changed in GF119, so these will
need a separate implementation.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:39 +10:00
Ben Skeggs
82d23aea10
drm/nvc0/dmaobj: stub bind function for now so we can call unconditionally
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:38 +10:00
Ben Skeggs
6c1689a08c
drm/nouveau/dmaobj: move parent class check to bind() method
...
Otherwise when nvc0- gains a bind() method (disp needs it), the fifo
engine will attempt to create a dma object for the push buffer, which
is unnecessary on fermi.
The only sane place to put these checks is in the bind method itself,
and have it unconditionally called from wherever it might be needed.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:38 +10:00
Ben Skeggs
f86770aaaa
drm/nouveau/dmaobj: merge everything except ctor and bind together
...
Simplifies things a little, and currently no reason to need
chipset-specific dmaobj constructors.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:37 +10:00