Martin Peres [Mon, 26 Nov 2012 23:30:32 +0000 (00:30 +0100)]
drm/nouveau/core: fix the assumption that NVDEV_XXXX is always under 32
It fixes a bug that would have been introduced when adding more
sudevs/engines.
Signed-off-by: Martin Peres <martin.peres@labri.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 23 Nov 2012 01:20:11 +0000 (11:20 +1000)]
drm/nouveau/ppp: remove nouveau_ppp base class
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 23 Nov 2012 01:14:49 +0000 (11:14 +1000)]
nve0/ppp: enable support via nvc0's implementation
NVIDIA also appear to use the same class on Fermi/Kepler for PPP.
Will allow use of the engine if firmware (nvXX_fuc086) provided.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Maarten Lankhorst [Fri, 23 Nov 2012 01:13:36 +0000 (11:13 +1000)]
nvc0/ppp: initial implementation of engine
Will allow use of the engine if firmware (nvXX_fuc086) provided.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Maarten Lankhorst [Fri, 23 Nov 2012 01:10:45 +0000 (11:10 +1000)]
nvc0/vp: initial implementation of engine
Will allow use of the engine if firmware (nvXX_fuc085) provided.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Maarten Lankhorst [Fri, 23 Nov 2012 01:08:23 +0000 (11:08 +1000)]
nvc0/bsp: initial implementation of engine
Will allow use of the engine if firmware (nvXX_fuc084) provided.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 06:01:06 +0000 (16:01 +1000)]
drm/nouveau/vdec: remove nouveau_{bsp,vp} base classes, use nouveau_engine directly
Later chipsets use falcon anyway, and I can't currently see a good need
for a shared base class.
PPP will get the same treatment once Maarten's patches are merged.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 05:54:46 +0000 (15:54 +1000)]
drm/nve0/fifo: allow for future binding of ppp contexts
No support for the class yet, but will be pulled in with Maarten's Fermi
vdec patches. The Kepler PPP class is identical.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 05:48:41 +0000 (15:48 +1000)]
drm/nve0/vp: implement initial support for engine
Will allow use of the engine if firmware (nvXX_fuc085) provided.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 05:42:23 +0000 (15:42 +1000)]
drm/nve0/bsp: implement initial support for engine
Will allow use of the engine if firmware (nvXX_fuc084) provided.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 03:43:55 +0000 (13:43 +1000)]
drm/nve0: allow specification of channel engine type in abi16 call
Previously, if either vram/gart handles were specified as ~0, the ioctl
call would fail. In order to hack engine selection into the ioctl for
kepler, we now define (fb_ctxdma_handle == ~0) to mean "engine mask is
in tt_ctxdma_handle".
This approach also allows new userspace to detect lack of support for
non-PGRAPH channels on older kernels.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 03:27:37 +0000 (13:27 +1000)]
drm/nouveau/core: implement shortcut for simple engctx construction
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 03:02:06 +0000 (13:02 +1000)]
drm/nvc0/copy: share interrupt handler with nva3
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 02:57:32 +0000 (12:57 +1000)]
drm/nv50/fb: implement trap handler as subdev interrupt handler
nv50_fb_trap() will now be called automagically by the mc intr handler,
rather than each engine's handler having to check for traps manually.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 02:49:42 +0000 (12:49 +1000)]
drm/nouveau/mc: allow calling of multiple handlers for a give intr bit
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 02:37:30 +0000 (12:37 +1000)]
drm/nouveau/copy: remove nouveau_copy base class
nva3/nvc0 are using falcon, nve0 is now using engine directly.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 02:33:25 +0000 (12:33 +1000)]
drm/nvc0/copy: use nouveau_falcon base class
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 02:27:05 +0000 (12:27 +1000)]
drm/nva3/copy: use nouveau_falcon base class
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 22 Nov 2012 02:18:57 +0000 (12:18 +1000)]
drm/nv98/crypt: use nouveau_falcon base class
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 21 Nov 2012 11:02:32 +0000 (21:02 +1000)]
drm/nouveau: initial falcon (fuc) engine base class implementation
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Dave Airlie [Fri, 2 Nov 2012 01:04:28 +0000 (11:04 +1000)]
drm/nouveau: convert to dev_pm_ops
This is a precursor to dynamic power management support for nouveau,
we need to use pm ops for that, so first convert the driver to using pm ops
interfaces.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Dave Airlie [Fri, 2 Nov 2012 01:04:27 +0000 (11:04 +1000)]
drm/nouveau: Add interface to detect optimus and v1 support
This is required to decide if we can auto-powerdown and how to implement it.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 21 Nov 2012 04:49:54 +0000 (14:49 +1000)]
drm/nouveau/disp: add support for 10bpc over DisplayPort
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 21 Nov 2012 04:40:21 +0000 (14:40 +1000)]
drm/nouveau: rename nvd0_display to nv50_display to reflect reality since merge
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 16 Nov 2012 01:54:31 +0000 (11:54 +1000)]
drm/nv50-nvc0: switch to common disp impl, removing previous version
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 21 Nov 2012 03:03:42 +0000 (13:03 +1000)]
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>
Ben Skeggs [Mon, 19 Nov 2012 00:18:25 +0000 (10:18 +1000)]
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>
Ben Skeggs [Fri, 16 Nov 2012 01:44:14 +0000 (11:44 +1000)]
drm/nvd0/disp: enable support for older display classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 16 Nov 2012 03:58:48 +0000 (13:58 +1000)]
drm/nvd0/disp: support creation of fb dma objects on older chipsets
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 16 Nov 2012 03:16:51 +0000 (13:16 +1000)]
drm/nvd0/disp: implement support for older DISP_SYNC classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 16 Nov 2012 01:40:34 +0000 (11:40 +1000)]
drm/nvd0/disp: implement sor support for older display classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 16 Nov 2012 01:21:37 +0000 (11:21 +1000)]
drm/nvd0/disp: implement dac support for older display classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 16 Nov 2012 00:24:31 +0000 (10:24 +1000)]
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>
Ben Skeggs [Thu, 15 Nov 2012 08:58:01 +0000 (18:58 +1000)]
drm/nouveau/dp: remove last bits of VBIOS parsing from DRM code
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 15 Nov 2012 08:56:02 +0000 (18:56 +1000)]
drm/nouveau/dp: move core link training calls to common code
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Sun, 11 Nov 2012 23:55:16 +0000 (09:55 +1000)]
drm/nouveau: remove (now obsolete) BIT U table parsing from DRM code
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 9 Nov 2012 02:09:48 +0000 (12:09 +1000)]
drm/nv50/disp: move remaining interrupt handling into core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 9 Nov 2012 01:25:37 +0000 (11:25 +1000)]
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>
Ben Skeggs [Fri, 9 Nov 2012 00:54:38 +0000 (10:54 +1000)]
drm/nv84/disp: move hdmi control into core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 9 Nov 2012 00:38:10 +0000 (10:38 +1000)]
drm/nva3/disp: move hda codec handling to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 23:53:28 +0000 (09:53 +1000)]
drm/nv50/disp: move dp link training helpers into core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 23:38:06 +0000 (09:38 +1000)]
drm/nv50/disp: call into core for dac load detection
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 23:32:56 +0000 (09:32 +1000)]
drm/nv50/disp: call into core to handle dac/sor power state changes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 23:22:31 +0000 (09:22 +1000)]
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>
Ben Skeggs [Thu, 8 Nov 2012 07:41:06 +0000 (17:41 +1000)]
drm/nouveau/bios: implement some dcb output entry parsing/matching functions
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 04:59:26 +0000 (14:59 +1000)]
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>
Ben Skeggs [Thu, 8 Nov 2012 04:22:28 +0000 (14:22 +1000)]
drm/nvd0/disp: move HDMI control to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 04:03:56 +0000 (14:03 +1000)]
drm/nvd0/disp: move HDA codec setup to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 02:08:55 +0000 (12:08 +1000)]
drm/nvd0/disp: call into core to handle dac power state changes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 8 Nov 2012 02:01:39 +0000 (12:01 +1000)]
drm/nvd0/disp: call into core to handle sor power state changes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 7 Nov 2012 06:43:00 +0000 (16:43 +1000)]
drm/nvd0/disp: move link training helpers into core as display methods
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 7 Nov 2012 06:28:35 +0000 (16:28 +1000)]
drm/nouveau/core: allow representing method ranges in nouveau_omthds
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 7 Nov 2012 06:16:41 +0000 (16:16 +1000)]
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>
Ben Skeggs [Tue, 6 Nov 2012 06:03:51 +0000 (16:03 +1000)]
drm/nouveau/bios: implement "full" BIT 'd' table (and subtable) parsing in core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 2 Nov 2012 01:33:27 +0000 (11:33 +1000)]
drm/nvd0/disp: move remaining interrupt handling to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 1 Nov 2012 01:09:53 +0000 (11:09 +1000)]
drm/nouveau/core: add some missing subdev/engine disable flags
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 2 Nov 2012 01:02:47 +0000 (11:02 +1000)]
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>
Ben Skeggs [Tue, 16 Oct 2012 04:18:32 +0000 (14:18 +1000)]
drm/nvd0/disp: allocate display and evo channels from driver core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 30 Oct 2012 00:59:12 +0000 (10:59 +1000)]
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>
Ben Skeggs [Mon, 29 Oct 2012 03:36:45 +0000 (13:36 +1000)]
drm/nouveau/drm/nvd0/disp: display->disp
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 16 Oct 2012 04:00:31 +0000 (14:00 +1000)]
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>
Ben Skeggs [Tue, 28 Aug 2012 04:10:39 +0000 (14:10 +1000)]
drm/nvd0-nve0/disp: initial implementation of evo channel classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 30 Oct 2012 00:03:38 +0000 (10:03 +1000)]
drm/nv50/disp: allow PCI_US pushbuf binding
Ben Skeggs [Tue, 14 Aug 2012 04:11:49 +0000 (14:11 +1000)]
drm/nv50/disp: initial implementation of the various channel object classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 14 Aug 2012 02:50:14 +0000 (12:50 +1000)]
drm/nv50/disp: enable interrupts and setup memory area
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 14 Aug 2012 01:29:57 +0000 (11:29 +1000)]
drm/nv50/disp: copy caps to evo
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 14 Aug 2012 00:04:04 +0000 (10:04 +1000)]
drm/nv50/disp: create skeleton display/channel object classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 8 Oct 2012 04:44:00 +0000 (14:44 +1000)]
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>
Ben Skeggs [Mon, 8 Oct 2012 04:34:35 +0000 (14:34 +1000)]
drm/nvc0/dmaobj: implement initial bind() method
Currently unused.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 8 Oct 2012 04:29:16 +0000 (14:29 +1000)]
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>
Ben Skeggs [Mon, 8 Oct 2012 04:11:35 +0000 (14:11 +1000)]
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>
Ben Skeggs [Mon, 8 Oct 2012 03:39:13 +0000 (13:39 +1000)]
drm/nvc0/dmaobj: stub bind function for now so we can call unconditionally
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Mon, 8 Oct 2012 02:58:23 +0000 (12:58 +1000)]
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>
Ben Skeggs [Wed, 29 Aug 2012 00:54:49 +0000 (10:54 +1000)]
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>
Ben Skeggs [Sat, 17 Nov 2012 11:51:30 +0000 (21:51 +1000)]
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>
Ben Skeggs [Wed, 21 Nov 2012 05:04:51 +0000 (15:04 +1000)]
drm/nouveau/gpio: place upper limit on using old-school tvdac bios data
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 21 Nov 2012 05:02:47 +0000 (15:02 +1000)]
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>
Marcin Slusarz [Sun, 11 Nov 2012 18:52:59 +0000 (19:52 +0100)]
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>
Viktor Novotný [Sat, 10 Nov 2012 18:24:06 +0000 (19:24 +0100)]
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>
Marcin Slusarz [Sun, 11 Nov 2012 18:57:35 +0000 (19:57 +0100)]
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>
Ben Skeggs [Tue, 30 Oct 2012 03:55:13 +0000 (13:55 +1000)]
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>
Ben Skeggs [Thu, 11 Oct 2012 05:46:30 +0000 (15:46 +1000)]
drm/nv30/fb: enable z compression
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 11 Oct 2012 05:13:10 +0000 (15:13 +1000)]
drm/nv40/fb: enable z compression
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 12 Oct 2012 01:24:39 +0000 (11:24 +1000)]
drm/nv20/fb: fixup compression tag allocation size
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 11 Oct 2012 04:08:16 +0000 (14:08 +1000)]
drm/nv30-nv40/graph: poke zcomp regs from tile_prog hook
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 10 Oct 2012 02:52:00 +0000 (12:52 +1000)]
drm/nv30-nv40/fb: call zcomp setup hook from tiling setup
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 10 Oct 2012 01:31:11 +0000 (11:31 +1000)]
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>
Ben Skeggs [Wed, 10 Oct 2012 01:18:00 +0000 (11:18 +1000)]
drm/nv30/fb: start bashing zcomp registers with 'disabled' (for now)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 10 Oct 2012 02:13:38 +0000 (12:13 +1000)]
drm/nouveau: replace some open-coded mm_initialised checks
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 10 Oct 2012 01:09:48 +0000 (11:09 +1000)]
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>
Ben Skeggs [Wed, 10 Oct 2012 00:57:49 +0000 (10:57 +1000)]
drm/nv40/fb: start bashing zcomp registers on relevant chipsets
Always bashing "disabled" for now, actual compressing coming up...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 10 Oct 2012 00:41:04 +0000 (10:41 +1000)]
drm/nv30-nv40/fb: make use of bankoff for zeta buffers, where supported
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Wed, 10 Oct 2012 00:34:29 +0000 (10:34 +1000)]
drm/nv20/fb: fix zcomp register calculation on big-endian systems
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 9 Oct 2012 06:03:23 +0000 (16:03 +1000)]
drm/nv40/fb: split implementation into nv40/nv41/nv44/nv46/nv47/nv49/nv4e pieces
Wow, this is a nice complicated mess of build-your-own-mc blocks...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 9 Oct 2012 05:56:16 +0000 (15:56 +1000)]
drm/nv30/fb: split implementation into nv34(nv10)/nv30/nv35 pieces
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 9 Oct 2012 05:48:11 +0000 (15:48 +1000)]
drm/nv20/fb: split implementation into nv20/nv25 pieces
There's more stuff that can be shared in the constructor, will be merged
together again later.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Tue, 9 Oct 2012 05:41:09 +0000 (15:41 +1000)]
drm/nouveau/fb: split tile and compression region handling
This is in preparation for extending the support to the remaining
chipsets, to allow for sharing more functions.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Fri, 12 Oct 2012 02:45:15 +0000 (22:45 -0400)]
drm/nouveau/bios: attempt to fetch entire acpi rom image in one shot
v2: fdo#55948 - the _ROM method silently truncates size to 4KiB, perform
a checksum test and fall back to slow _ROM access on failure.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Daniel Vetter [Thu, 1 Nov 2012 13:45:18 +0000 (14:45 +0100)]
drm/doc: add new dp helpers into drm DocBook
I didn't bother with documenting the really trivial new "extract
something from dpcd" helpers, but the i2c over aux ch is now
documented a bit.
v2: Clarify the comment for i2c_dp_aux_add_bus a bit.
v3: Fix more spelling fail spotted by Laurent Pinchart.
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Daniel Vetter [Thu, 1 Nov 2012 13:45:17 +0000 (14:45 +0100)]
drm/doc: integrate fb helper reference into docs
Again only minimal changes to make kerneldoc no longer shout. Plus a
little introduction in the form of a inline DOC: section to quickly
explain what this is all about.
v2: Fixup spelling fail.
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>