GitHub/LineageOS/android_kernel_motorola_exynos9610.git
11 years agodrm/nouveau/fifo: trigger engine context unload before zeroing context pointer
Ben Skeggs [Tue, 27 Nov 2012 01:05:36 +0000 (11:05 +1000)]
drm/nouveau/fifo: trigger engine context unload before zeroing context pointer

Fixes a PCE0 page fault noticed on NVD9 during module unload.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
11 years agodrm/nouveau: prevent log mangling
Daniel J Blueman [Sat, 24 Nov 2012 02:11:46 +0000 (10:11 +0800)]
drm/nouveau: prevent log mangling

On 3.7-rc6, add missing newline to to prevent the following kernel log
line getting appended to the current one after switching the integrated
GPU and suspending the discrete GPU.

Signed-off-by: Daniel J Blueman <daniel@quora.org>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
11 years agodrm/nouveau: unpin various bo's before destroying
Marcin Slusarz [Sun, 25 Nov 2012 22:04:23 +0000 (23:04 +0100)]
drm/nouveau: unpin various bo's before destroying

These objects leak VRAM - but only on module unload.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
11 years agodrm/nouveau: unpin pushbuffer bo before destroying it
Marcin Slusarz [Sun, 25 Nov 2012 22:02:28 +0000 (23:02 +0100)]
drm/nouveau: unpin pushbuffer bo before destroying it

Fixes GART leak (as accounted by nouveau_drm.gem.gart_available).

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
11 years agodrm/nouveau: remove misleading comment from nouveau_prime_new
Marcin Slusarz [Sun, 25 Nov 2012 22:01:28 +0000 (23:01 +0100)]
drm/nouveau: remove misleading comment from nouveau_prime_new

Copy/pasted from nouveau_gem_new.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
11 years agodrm/nouveau: raise reporting levels of some messages
Marcin Slusarz [Sun, 25 Nov 2012 22:00:57 +0000 (23:00 +0100)]
drm/nouveau: raise reporting levels of some messages

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
11 years agodrm/nouveau/core: fix the assumption that NVDEV_XXXX is always under 32
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>
11 years agodrm/nouveau/ppp: remove nouveau_ppp base class
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>
11 years agonve0/ppp: enable support via nvc0's implementation
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>
11 years agonvc0/ppp: initial implementation of engine
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>
11 years agonvc0/vp: initial implementation of engine
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>
11 years agonvc0/bsp: initial implementation of engine
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>
11 years agodrm/nouveau/vdec: remove nouveau_{bsp,vp} base classes, use nouveau_engine directly
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>
11 years agodrm/nve0/fifo: allow for future binding of ppp contexts
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>
11 years agodrm/nve0/vp: implement initial support for engine
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>
11 years agodrm/nve0/bsp: implement initial support for engine
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>
11 years agodrm/nve0: allow specification of channel engine type in abi16 call
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>
11 years agodrm/nouveau/core: implement shortcut for simple engctx construction
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>
11 years agodrm/nvc0/copy: share interrupt handler with nva3
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>
11 years agodrm/nv50/fb: implement trap handler as subdev interrupt handler
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>
11 years agodrm/nouveau/mc: allow calling of multiple handlers for a give intr bit
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>
11 years agodrm/nouveau/copy: remove nouveau_copy base class
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>
11 years agodrm/nvc0/copy: use nouveau_falcon base class
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>
11 years agodrm/nva3/copy: use nouveau_falcon base class
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>
11 years agodrm/nv98/crypt: use nouveau_falcon base class
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>
11 years agodrm/nouveau: initial falcon (fuc) engine base class implementation
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>
11 years agodrm/nouveau: convert to dev_pm_ops
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>
11 years agodrm/nouveau: Add interface to detect optimus and v1 support
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>
11 years agodrm/nouveau/disp: add support for 10bpc over DisplayPort
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>
11 years agodrm/nouveau: rename nvd0_display to nv50_display to reflect reality since merge
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>
11 years agodrm/nv50-nvc0: switch to common disp impl, removing previous version
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>
11 years agodrm/nvd0/disp: implement support for colour vibrance control
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>
11 years agodrm/nvd0/disp: remove fetching of capabilities report
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>
11 years agodrm/nvd0/disp: enable support for older display classes
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>
11 years agodrm/nvd0/disp: support creation of fb dma objects on older chipsets
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>
11 years agodrm/nvd0/disp: implement support for older DISP_SYNC classes
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>
11 years agodrm/nvd0/disp: implement sor support for older display classes
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>
11 years agodrm/nvd0/disp: implement dac support for older display classes
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>
11 years agodrm/nvd0/disp: start implementing support for older display classes
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>
11 years agodrm/nouveau/dp: remove last bits of VBIOS parsing from DRM code
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>
11 years agodrm/nouveau/dp: move core link training calls to common code
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>
11 years agodrm/nouveau: remove (now obsolete) BIT U table parsing from DRM code
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>
11 years agodrm/nv50/disp: move remaining interrupt handling into core
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>
11 years agodrm/nvd0/disp: calculate U script id in supervisor interrupt
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>
11 years agodrm/nv84/disp: move hdmi control into core
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>
11 years agodrm/nva3/disp: move hda codec handling to core
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>
11 years agodrm/nv50/disp: move dp link training helpers into core
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>
11 years agodrm/nv50/disp: call into core for dac load detection
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>
11 years agodrm/nv50/disp: call into core to handle dac/sor power state changes
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>
11 years agodrm/nv50/disp: allocate display from driver core
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>
11 years agodrm/nouveau/bios: implement some dcb output entry parsing/matching functions
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>
11 years agodrm/nvd0/disp: handle DP transfer unit setup from second supervisor interrupt
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>
11 years agodrm/nvd0/disp: move HDMI control to core
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>
11 years agodrm/nvd0/disp: move HDA codec setup to core
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>
11 years agodrm/nvd0/disp: call into core to handle dac power state changes
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>
11 years agodrm/nvd0/disp: call into core to handle sor power state changes
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>
11 years agodrm/nvd0/disp: move link training helpers into core as display methods
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>
11 years agodrm/nouveau/core: allow representing method ranges in nouveau_omthds
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>
11 years agodrm/nouveau/core: expose full method calling capabilities with nv_exec
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>
11 years agodrm/nouveau/bios: implement "full" BIT 'd' table (and subtable) parsing in core
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>
11 years agodrm/nvd0/disp: move remaining interrupt handling to core
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>
11 years agodrm/nouveau/core: add some missing subdev/engine disable flags
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>
11 years agodrm/nouveau/bios: implement BIT 'U' table (and subtable) parsing in core
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>
11 years agodrm/nvd0/disp: allocate display and evo channels from driver core
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>
11 years agodrm/nouveau: run mode_config destructor before destroying internal display state
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>
11 years agodrm/nouveau/drm/nvd0/disp: display->disp
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>
11 years agodrm/nvd0/disp: introduce a nvd0_head as a subclass of nouveau_crtc
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>
11 years agodrm/nvd0-nve0/disp: initial implementation of evo channel classes
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>
11 years agodrm/nv50/disp: allow PCI_US pushbuf binding
Ben Skeggs [Tue, 30 Oct 2012 00:03:38 +0000 (10:03 +1000)]
drm/nv50/disp: allow PCI_US pushbuf binding

11 years agodrm/nv50/disp: initial implementation of the various channel object classes
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>
11 years agodrm/nv50/disp: enable interrupts and setup memory area
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>
11 years agodrm/nv50/disp: copy caps to evo
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>
11 years agodrm/nv50/disp: create skeleton display/channel object classes
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>
11 years agodrm/nvd0/dmaobj: initial bind() method implementation
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>
11 years agodrm/nvc0/dmaobj: implement initial bind() method
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>
11 years agodrm/nv50/dmaobj: extend class to allow gpu-specific attributes to be defined
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>
11 years agodrm/nvd0/dmaobj: duplicate fermi class, will diverge real soon now
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>
11 years agodrm/nvc0/dmaobj: stub bind function for now so we can call unconditionally
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>
11 years agodrm/nouveau/dmaobj: move parent class check to bind() method
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>
11 years agodrm/nouveau/dmaobj: merge everything except ctor and bind together
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>
11 years agodrm/nouveau: pass address to object accessor functions as u64
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>
11 years agodrm/nouveau/gpio: place upper limit on using old-school tvdac bios data
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>
11 years agodrm/nouveau: remove newline-only NV_DEBUG calls
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>
11 years agodrm/nv50: decode PGRAPH status registers on TLB flush fail
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>
11 years agodrm/nouveau/clk: fix crystal frequency retrieval on nv25
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>
11 years agodrm/nouveau: remove unused variable from nouveau_bios_shadow_of
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>
11 years agodrm/nv40/fb: use an actual compressed zeta format
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>
11 years agodrm/nv30/fb: enable z compression
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>
11 years agodrm/nv40/fb: enable z compression
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>
11 years agodrm/nv20/fb: fixup compression tag allocation size
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>
11 years agodrm/nv30-nv40/graph: poke zcomp regs from tile_prog hook
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>
11 years agodrm/nv30-nv40/fb: call zcomp setup hook from tiling setup
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>
11 years agodrm/nouveau/fb: create tag heap from common code for all relevant chipsets
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>
11 years agodrm/nv30/fb: start bashing zcomp registers with 'disabled' (for now)
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>
11 years agodrm/nouveau: replace some open-coded mm_initialised checks
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>
11 years agodrm/nouveau/fb: read TILE_BASE after writing it to avoid a hardware race
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>
11 years agodrm/nv40/fb: start bashing zcomp registers on relevant chipsets
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>
11 years agodrm/nv30-nv40/fb: make use of bankoff for zeta buffers, where supported
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>
11 years agodrm/nv20/fb: fix zcomp register calculation on big-endian systems
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>
11 years agodrm/nv40/fb: split implementation into nv40/nv41/nv44/nv46/nv47/nv49/nv4e pieces
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>