openwrt/staging/blogic.git
9 years agodrm/exynos: remove wait queue for pending page flip
Gustavo Padovan [Sat, 15 Aug 2015 16:26:19 +0000 (13:26 -0300)]
drm/exynos: remove wait queue for pending page flip

Exynos atomic commit procedures already does this job of waiting for
pending updates to finish, that means using pending_flip_queue is
pointless now because the disable CRTC procedure will never happen
during a page_flip.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: wait all planes updates to finish
Gustavo Padovan [Sat, 15 Aug 2015 16:26:18 +0000 (13:26 -0300)]
drm/exynos: wait all planes updates to finish

Add infrastructure to wait for all planes updates to finish by using
an atomic_t variable to track how many pending updates we are waiting
plus a wait_queue for the wait part.

It also changes vblank behaviour and keeps it enabled for all types
of updates

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: add atomic asynchronous commit
Gustavo Padovan [Sat, 15 Aug 2015 16:26:17 +0000 (13:26 -0300)]
drm/exynos: add atomic asynchronous commit

The atomic modesetting interfaces supports async commits that should be
implemented by the drivers. If drm core requests an async commit
exynos_atomic_commit() will now schedule a work task to run the update later.

It also serializes commits that needs to run on the same crtc, putting the
following commit to wait until the current one is finished.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: fimd: only finish update if START == START_S
Gustavo Padovan [Sat, 15 Aug 2015 16:26:16 +0000 (13:26 -0300)]
drm/exynos: fimd: only finish update if START == START_S

fimd_update_plane() programs BUF_START[win] and during the update
BUF_START[win] is copied to BUF_START_S[win] (its shadow register)
and starts scanning out, then it raises a irq.

The fimd_irq_handler, in the case we have a pending_fb, will check
the fb value was copied to START_S register and finish the update
in case of success.

Based on patch from Daniel Kurtz <djkurtz@chromium.org>

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: add macro to get the address of START_S reg
Gustavo Padovan [Sat, 15 Aug 2015 16:26:15 +0000 (13:26 -0300)]
drm/exynos: add macro to get the address of START_S reg

This macro is need to get the value of the START shadow register, that
will tell if an framebuffer is currently displayed on the screen or not.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: check for pending fb before finish update
Gustavo Padovan [Sat, 15 Aug 2015 16:26:14 +0000 (13:26 -0300)]
drm/exynos: check for pending fb before finish update

The current code was ignoring the end of update for all overlay planes,
caring only for the primary plane update in case of pageflip.

This change adds a change to start to check for pending updates for all
planes through exynos_plane->pending_fb. At the start of plane update the
pending_fb is set with the fb to be shown on the screen. Then only when to
fb is already presented in the screen we set pending_fb to NULL to
signal that the update was finished.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
fixup! drm/exynos: check for pending fb before finish update

9 years agodrm/exynos: fimd: move window protect code to prepare/cleanup_plane
Gustavo Padovan [Sat, 15 Aug 2015 16:26:13 +0000 (13:26 -0300)]
drm/exynos: fimd: move window protect code to prepare/cleanup_plane

Only set/clear the update bit in the CRTC's .atomic_begin()/flush()
so all planes are really committed at the same time.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: add prepare and cleanup phases for planes
Gustavo Padovan [Mon, 24 Aug 2015 11:36:59 +0000 (20:36 +0900)]
drm/exynos: add prepare and cleanup phases for planes

From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>

.prepare_plane() and .cleanup_plane() allows to perform extra operations
before and after the update of planes. For FIMD for example this will
be used to enable disable the shadow protection bit.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip()
Gustavo Padovan [Sat, 15 Aug 2015 16:26:11 +0000 (13:26 -0300)]
drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip()

Unify handling of finished plane update to prepare for a following patch
that will check for the START and START_S regs to really make sure that
the plane was updated.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: don't track enabled state at exynos_crtc
Gustavo Padovan [Sat, 15 Aug 2015 16:26:10 +0000 (13:26 -0300)]
drm/exynos: don't track enabled state at exynos_crtc

struct drm_crtc already stores the enabled state of the crtc
thus we don't need to replicate enabled in exynos_drm_crtc.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/nouveau/dispnv04: fix build on powerpc
Dave Airlie [Fri, 28 Aug 2015 10:33:58 +0000 (20:33 +1000)]
drm/nouveau/dispnv04: fix build on powerpc

align with mask code in overlay.c, Ben can clean the naming
up later if necessary.

Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agonouveau: fix powerpc build
Dave Airlie [Fri, 28 Aug 2015 08:18:10 +0000 (18:18 +1000)]
nouveau: fix powerpc build

Reported-by: Ilia Mirkin on irc.
Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agoMerge branch 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into...
Dave Airlie [Fri, 28 Aug 2015 03:20:09 +0000 (13:20 +1000)]
Merge branch 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next

Rather large pull request this time around, due to the long-pending
cleanup of the kernel driver being here.  There's a stupidly large
number of commits for that, as I wanted to have the series be
bisectable at a fairly fine-grained level.  That said, a very large
portion of the churn in the rework was automated, and a very large
number of boards from right across the whole range we support have
been tested.  I'm fairly confident there shouldn't be (too many)
issues from this.

Beyond correcting some not-so-great design decisions and making the
code a lot easier to work with, there's not much exciting (lower
memory usage, GPU VM should be a lot faster, etc) to be gained by the
end-user as a result of the cleanup, it mostly lays the groundwork for
future improvements.

A big thanks goes to Alexandre Courbot for testing/debugging the GK20A
codepaths for me :)

Highlights:
- A heap of perfmon work, providing a more useful userspace interface
and specifying counters for a bunch of boards
- Support for GT200 reclocking + other misc pm improvements
- Initial patches towards supporting GM20B (Tegra X1)
- Maxwell DisplayPort fixes
- Cleanup of the kernel driver
- The usual collection of random fixes

* 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (312 commits)
  drm/nouveau: bump driver version for release
  drm/nouveau/tegra: merge platform setup from nouveau drm
  drm/nouveau/pci: merge agp handling from nouveau drm
  drm/nouveau/device: remove pci/platform_device from common struct
  drm/nouveau/device: import pciid list and integrate quirks with it
  drm/nouveau/device: cleaner abstraction for device resource functions
  drm/nouveau/mc: move device irq handling to platform-specific code
  drm/nouveau/mc/gf100-: handle second interrupt tree
  drm/nouveau/mc: abstract interface to master intr registers
  drm/nouveau/pci: new subdev
  drm/nouveau/object: merge with handle
  drm/nouveau/core: remove the remainder of the previous style
  drm/nouveau/mpeg: convert to new-style nvkm_engine
  drm/nouveau/sw: convert to new-style nvkm_engine
  drm/nouveau/pm: convert to new-style nvkm_engine
  drm/nouveau/gr: convert to new-style nvkm_engine
  drm/nouveau/fifo: convert to new-style nvkm_engine
  drm/nouveau/disp: convert to new-style nvkm_engine
  drm/nouveau/dma: convert to new-style nvkm_engine
  drm/nouveau/cipher: convert to new-style nvkm_engine
  ...

9 years agodrm/nouveau: bump driver version for release
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau: bump driver version for release

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/tegra: merge platform setup from nouveau drm
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/tegra: merge platform setup from nouveau drm

The copyright header in nvkm/engine/device/platform.c has been replaced
with the NVIDIA one from drm/nouveau_platform.c, as most of the actual
code is now theirs.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/pci: merge agp handling from nouveau drm
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/pci: merge agp handling from nouveau drm

This commit reinstates the pre-DEVINIT AGP fiddling that was broken in
an earlier commit.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/device: remove pci/platform_device from common struct
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/device: remove pci/platform_device from common struct

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/device: import pciid list and integrate quirks with it
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/device: import pciid list and integrate quirks with it

PCI IDs taken from the NVIDIA binary driver, with permission.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/device: cleaner abstraction for device resource functions
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/device: cleaner abstraction for device resource functions

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mc: move device irq handling to platform-specific code
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mc: move device irq handling to platform-specific code

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mc/gf100-: handle second interrupt tree
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mc/gf100-: handle second interrupt tree

Doesn't fix any known issue, but best be safe in case control is handed
to us from firmware with these left enabled.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mc: abstract interface to master intr registers
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mc: abstract interface to master intr registers

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/pci: new subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/pci: new subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/object: merge with handle
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/object: merge with handle

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/core: remove the remainder of the previous style
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/core: remove the remainder of the previous style

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mpeg: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mpeg: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/sw: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/sw: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/pm: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/pm: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/gr: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/gr: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fifo: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/fifo: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/disp: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/disp: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/dma: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/dma: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/cipher: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/cipher: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/ce: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/ce: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/xtensa: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/xtensa: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/falcon: convert to new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/falcon: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/volt: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/volt: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/tmr: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/tmr: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/therm: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/therm: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/pmu: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/pmu: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mxm: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/mxm: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mmu: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/mmu: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mc: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/mc: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/ltc: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/ltc: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/imem: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/imem: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/devinit: run devinit scripts right after preinit
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/devinit: run devinit scripts right after preinit

This ensures we have a valid mask of disabled engines before we start
trying to execute fini()/init() on the subdevs, potentially touching
devices that don't exist.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/ibus: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/ibus: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/i2c: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/i2c: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/gpio: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/gpio: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fuse: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/fuse: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fb: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/fb: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/devinit: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/devinit: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/clk: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/clk: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/bus: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/bus: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/bios: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/bios: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/bar: convert to new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/bar: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/core: kill some (now) dead code
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/core: kill some (now) dead code

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/sw: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/sw: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/pm: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/pm: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mpeg: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/mpeg: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/gr: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/gr: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/cipher: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/cipher: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/ce: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/ce: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/xtensa: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/xtensa: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/falcon: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/falcon: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fifo: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/fifo: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fifo: split user classes out from engine implementations
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/fifo: split user classes out from engine implementations

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/disp: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/disp: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/disp: split user classes out from engine implementations
Ben Skeggs [Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)]
drm/nouveau/disp: split user classes out from engine implementations

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/dma: convert user classes to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/dma: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/dma: split user classes out from engine implementations
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/dma: split user classes out from engine implementations

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/device: convert ctrl class to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/device: convert ctrl class to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/device: convert user class to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/device: convert user class to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/client: convert to new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/client: convert to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/sw: remove dependence on namedb/engctx lookup
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/sw: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mpeg: remove dependence on namedb/engctx lookup
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/mpeg: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/gr: remove dependence on namedb/engctx lookup
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/gr: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fifo: remove dependence on namedb/engctx lookup
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/fifo: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/cipher: remove dependence on namedb/engctx lookup
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/cipher: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/falcon: remove dependence on namedb/engctx lookup
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/falcon: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fb: remove dependence on namedb/engctx lookup
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/fb: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/sw: turn flip completion into an event
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/sw: turn flip completion into an event

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/sw/nv04: replace direct context access with GetRef method
Ben Skeggs [Thu, 20 Aug 2015 04:54:18 +0000 (14:54 +1000)]
drm/nouveau/sw/nv04: replace direct context access with GetRef method

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/ramht: remove dependence on namedb
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/ramht: remove dependence on namedb

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/gpuobj: separate allocation from nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/gpuobj: separate allocation from nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/gr: directly use instmem where currently possible
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/gr: directly use instmem where currently possible

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/fifo: directly use instmem for runlists and polling areas
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/fifo: directly use instmem for runlists and polling areas

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/xtensa: directly use instmem for ucode image
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/xtensa: directly use instmem for ucode image

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/falcon: directly use instmem for ucode image
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/falcon: directly use instmem for ucode image

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/imem/nv04-nv40: directly use instmem for vbios/ramfc/ramro
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/imem/nv04-nv40: directly use instmem for vbios/ramfc/ramro

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/bar/gf100: directly use instmem for channel descriptors
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/bar/gf100: directly use instmem for channel descriptors

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mmu: directly use instmem for page tables
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/mmu: directly use instmem for page tables

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/imem: improve management of instance memory
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/imem: improve management of instance memory

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/mmu: protect each vm with its own mutex
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/mmu: protect each vm with its own mutex

An upcoming commit requires being able to modify the PRAMIN BAR page
tables while already holding the MMU subdev mutex.

To solve this issue, each VM has been given its own mutex.  As a nice
side-effect, this also allows separate VMs to be updated concurrently.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/core: prepare for new-style objects
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/core: prepare for new-style objects

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/device: prepare for new-style subdevs
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/device: prepare for new-style subdevs

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/device: separate construction of pci/tegra devices
Ben Skeggs [Thu, 20 Aug 2015 04:54:17 +0000 (14:54 +1000)]
drm/nouveau/device: separate construction of pci/tegra devices

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/engine: implement support for new-style nvkm_engine
Ben Skeggs [Thu, 20 Aug 2015 04:54:16 +0000 (14:54 +1000)]
drm/nouveau/engine: implement support for new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/subdev: implement support for new-style nvkm_subdev
Ben Skeggs [Thu, 20 Aug 2015 04:54:16 +0000 (14:54 +1000)]
drm/nouveau/subdev: implement support for new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agodrm/nouveau/object: implement support for new-style nvkm_object
Ben Skeggs [Thu, 20 Aug 2015 04:54:16 +0000 (14:54 +1000)]
drm/nouveau/object: implement support for new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>