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
Ben Skeggs
0a32241d8b
drm/nouveau: pass address to object accessor functions as u64
...
Will be required by future work. Make the API change now to catch any
(but hopefully none) unexpected fallout.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:37 +10:00
Ben Skeggs
66bb7e1d67
drm/nouveau/gpio: place upper limit on using old-school tvdac bios data
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:36 +10:00
Ben Skeggs
9da49599a7
drm/nouveau: remove newline-only NV_DEBUG calls
...
This used to output the function name, now doesn't, so just looks
stupid.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:36 +10:00
Marcin Slusarz
d432a2db7d
drm/nv50: decode PGRAPH status registers on TLB flush fail
...
SIgned-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:35 +10:00
Viktor Novotný
1f2285d462
drm/nouveau/clk: fix crystal frequency retrieval on nv25
...
Signed-off-by: Viktor Novotný <noviktor@seznam.cz>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:35 +10:00
Marcin Slusarz
fced4b2211
drm/nouveau: remove unused variable from nouveau_bios_shadow_of
...
drivers/gpu/drm/nouveau/core/subdev/bios/base.c: warning: unused variable 'i'
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:34 +10:00
Ben Skeggs
7ef19e454e
drm/nv40/fb: use an actual compressed zeta format
...
SPLIT is apparently just that, and only splits Z and S components.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:34 +10:00
Ben Skeggs
d7da62845b
drm/nv30/fb: enable z compression
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:33 +10:00
Ben Skeggs
2f1cb96d65
drm/nv40/fb: enable z compression
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:33 +10:00
Ben Skeggs
fd3a522586
drm/nv20/fb: fixup compression tag allocation size
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:32 +10:00
Ben Skeggs
fafa0cb37e
drm/nv30-nv40/graph: poke zcomp regs from tile_prog hook
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:32 +10:00
Ben Skeggs
e1344412ae
drm/nv30-nv40/fb: call zcomp setup hook from tiling setup
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:31 +10:00
Ben Skeggs
dac1558d49
drm/nouveau/fb: create tag heap from common code for all relevant chipsets
...
A nv2x bug wrt hardcoded tag counts is now also fixed as a side-effect.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:31 +10:00
Ben Skeggs
268d5a3017
drm/nv30/fb: start bashing zcomp registers with 'disabled' (for now)
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:30 +10:00
Ben Skeggs
7e0f992b79
drm/nouveau: replace some open-coded mm_initialised checks
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:30 +10:00
Ben Skeggs
6d338081a6
drm/nouveau/fb: read TILE_BASE after writing it to avoid a hardware race
...
Apparently needed for turbocache nv4x chips at least, we'll just do it
everywhere...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:29 +10:00