Felix Kuehling
a3084e6c52
drm/amdkfd: Add dGPU device IDs and device info
...
v2: remove needs_iommu field as it doesn't exists
CC: linux-pci@vger.kernel.org
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-01-04 17:17:47 -05:00
Felix Kuehling
1d63669885
drm/amdkfd: Add dGPU support to kernel_queue_init
...
Recognize dGPU ASIC families.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-01-04 17:17:46 -05:00
Felix Kuehling
ee04955af6
drm/amdkfd: Add dGPU support to the MQD manager
...
On dGPUs don't set ATC addressing bits and use MTYPE_UC for coherent
memory.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Oded Gabbay <oded.gabbay@gmail.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-01-04 17:17:45 -05:00
Felix Kuehling
97672cbe3d
drm/amdkfd: Add dGPU support to the device queue manager
...
GFXv7 and v8 dGPUs use a different addressing mode for KFD compared
to APUs (GPUVM64 vs HSA64). And dGPUs don't support MTYPE_CC. They
use MTYPE_UC instead for memory that requires coherency.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Oded Gabbay <oded.gabbay@gmail.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-01-04 17:17:44 -05:00
Felix Kuehling
d146c5a719
drm/amdkfd: Make sched_policy a per-device setting
...
Some dGPUs don't support HWS. Allow them to use a per-device
sched_policy that may be different from the global default.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-01-04 17:17:43 -05:00
Felix Kuehling
3ee2d00cfb
drm/amdkfd: Conditionally enable PCIe atomics
...
This will be needed for most dGPUs.
CC: linux-pci@vger.kernel.org
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-01-04 17:17:41 -05:00
Gustavo A. R. Silva
3f866f5f04
drm/amdkfd: Use ARRAY_SIZE macro in kfd_build_sysfs_node_entry
...
Use ARRAY_SIZE instead of dividing sizeof array with sizeof an element.
This issue was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com >
Reviewed-by: Felix Kuehling<Felix.Kuehling@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-01-18 18:39:55 -06:00
Stefan Schake
babc811005
drm/vc4: Release fence after signalling
...
We were never releasing the initial fence reference that is obtained
through dma_fence_init.
Link: https://github.com/anholt/linux/issues/122
Fixes: cdec4d3613 ("drm/vc4: Expose dma-buf fences for V3D rendering.")
Signed-off-by: Stefan Schake <stschake@gmail.com >
Signed-off-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/1512236444-301-1-git-send-email-stschake@gmail.com
2017-12-08 13:02:22 -08:00
Chris Wilson
2d8d1afb4d
drm/i915: Add is-wedged flag to intel_engine_dump()
...
Comparing the state tested by intel_engine_is_idle() and printed by
intel_engine_dump(), the only bit not shown is whether or not the device
is wedged. Add that little bit of information to the pretty printer so
that if the engine fails to idle we can see why.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171208012303.25504-5-chris@chris-wilson.co.uk
2017-12-08 18:48:38 +00:00
Chris Wilson
528dd16a7c
drm/i915: Include the global reset count for intel_engine_dump()
...
Since a global reset affects the engine, include that along side the
per-engine reset counter when pretty printing the engine state in
intel_engine_dump().
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171208012303.25504-4-chris@chris-wilson.co.uk
2017-12-08 18:48:37 +00:00
Chris Wilson
832265d38c
drm/i915: Include engine state on detecting a missed breadcrumb/seqno
...
Now that we have a common engine state pretty printer, we can use that
instead of the adhoc information printed when we miss a breadcrumb.
v2: Rearrange intel_engine_disarm_breadcrumbs() to avoid calling
intel_engine_dump() under the rb spinlock (Mika) and to pretty-print the
error state early so that we include the full list of waiters.
v3: Pass missed breadcrumb msg to pretty-printer as the header
v4: Preserve DRM_DEBUG_DRIVER filtering.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Mika Kuoppala <mika.kuoppala@intel.com >
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com >
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171208012303.25504-3-chris@chris-wilson.co.uk
2017-12-08 18:48:36 +00:00
Chris Wilson
0db18b17c8
drm/i915: Make engine state pretty-printer header configurable
...
Pass in a format string (and args) to specify the header to be emitted
along with the engine state when pretty-printing. This allows the header
to be emitted inside the drm_printer stream, so sharing the same prefix
and output characteristics (e.g. debug level and filtering).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171208012303.25504-2-chris@chris-wilson.co.uk
2017-12-08 18:48:34 +00:00
Chris Wilson
e8a70cab25
drm/i915: Use snprintf to avoid line-break when pretty-printing engines
...
When printing the execlist ports, we first print the ELSP header then
follow it with the pretty-printed request. Since switching to
drm_printer and show the output via printk, it automatically appends a
newline to each call (unlike the old seq_printf output). To avoid the
unwanted line break, construct the ELSP request header in a temporary
buffer.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171208012303.25504-1-chris@chris-wilson.co.uk
2017-12-08 18:48:34 +00:00
Rodrigo Vivi
6647852abc
Merge airlied/drm-next into drm-intel-next-queued
...
Chris requested this backmerge for a reconciliation on
drm_print.h between drm-misc-next and drm-intel-next-queued
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2017-12-08 10:15:30 -08:00
Shaoyun Liu
4fd09a19a6
drm/admgpu: Reduce the usage of soc15ip.h
...
Remove the header where it's not used.
Acked-by: Christian Konig <christian.koenig@amd.com >
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-12-08 11:35:19 -05:00
Shaoyun Liu
cd29253f65
drm/amdgpu: Change SOC15_REG_OFFSET to use dynamic register offset
...
Acked-by: Christian Konig <christian.koenig@amd.com >
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-12-08 11:32:24 -05:00
Shaoyun Liu
946a4d5b30
drm/amdgpu: Avoid use SOC15_REG_OFFSET in static const array
...
Handle dynamic offsets correctly in static arrays.
Acked-by: Christian Konig <christian.koenig@amd.com >
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-12-08 11:18:51 -05:00
Shaoyun Liu
b466107e8b
drm/amdgpu: Use dynamic IP offset for register access on SOC15
...
Update the register access macros and functions to take into
account the new dynamic IP base offsets.
Acked-by: Christian Konig <christian.koenig@amd.com >
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-12-08 11:17:56 -05:00
Shaoyun Liu
4522824c48
drm/amdgpu: Dynamic initialize IP base offset
...
The base offsets of the IP blocks may change across
asics even though the relative register offsets
are the same for an IP. Handle this dynamically.
Acked-by: Christian Konig <christian.koenig@amd.com >
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-12-08 11:16:51 -05:00
Noralf Trønnes
bdecd83546
drm/arm/mali: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Liviu Dudau <liviu.dudau@arm.com >
Cc: Brian Starkey <brian.starkey@arm.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Liviu Dudau <liviu.dudau@arm.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-20-noralf@tronnes.org
2017-12-08 14:47:43 +01:00
Noralf Trønnes
f05682a8b4
drm/zte: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Shawn Guo <shawnguo@kernel.org >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Shawn Guo <shawnguo@kernel.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-19-noralf@tronnes.org
2017-12-08 14:47:43 +01:00
Noralf Trønnes
b8f429a77f
drm/vc4: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Eric Anholt <eric@anholt.net >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-18-noralf@tronnes.org
2017-12-08 14:47:43 +01:00
Noralf Trønnes
4f054fcf47
drm/tve200: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-17-noralf@tronnes.org
2017-12-08 14:47:42 +01:00
Noralf Trønnes
50b45f2137
drm/tilcdc: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Jyri Sarha <jsarha@ti.com >
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Jyri Sarha <jsarha@ti.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-16-noralf@tronnes.org
2017-12-08 14:47:42 +01:00
Noralf Trønnes
22efc85b6c
drm/sun4i: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Maxime Ripard <maxime.ripard@free-electrons.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-15-noralf@tronnes.org
2017-12-08 14:47:42 +01:00
Noralf Trønnes
068b393c1a
drm/stm: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Remove duplicate ldev assignment.
Cc: Yannick Fertre <yannick.fertre@st.com >
Cc: Philippe Cornu <philippe.cornu@st.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Philippe Cornu <philippe.cornu@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-14-noralf@tronnes.org
2017-12-08 14:47:41 +01:00
Noralf Trønnes
53889c92fd
drm/sti: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-13-noralf@tronnes.org
2017-12-08 14:47:41 +01:00
Noralf Trønnes
d18df744de
drm/pl111: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Eric Anholt <eric@anholt.net >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-11-noralf@tronnes.org
2017-12-08 14:47:41 +01:00
Noralf Trønnes
b2ad947210
drm/imx: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Philipp Zabel <p.zabel@pengutronix.de >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Philipp Zabel <p.zabel@pengutronix.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-8-noralf@tronnes.org
2017-12-08 14:47:40 +01:00
Noralf Trønnes
ce4eb35bfa
drm/atmel-hlcdc: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Boris Brezillon <boris.brezillon@free-electrons.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-6-noralf@tronnes.org
2017-12-08 14:47:39 +01:00
Noralf Trønnes
41b676e03f
drm/cma-helper: Add drm_fb_cma_fbdev_init/fini()
...
Add functions drm_fb_cma_fbdev_init(), drm_fb_cma_fbdev_fini() and
drm_fb_cma_fbdev_init_with_funcs(). These functions relies on the fact
that the drm_fb_helper struct is stored in dev->drm_fb_helper_private
so drivers don't need to store it.
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-3-noralf@tronnes.org
2017-12-08 14:27:47 +01:00
Noralf Trønnes
e44f0801bb
drm/gem-fb-helper: drm_gem_fbdev_fb_create() make funcs optional
...
Make the drm_framebuffer_funcs argument optional for drivers that
don't need to set the dirty callback.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-2-noralf@tronnes.org
2017-12-08 14:26:00 +01:00
Russell King
27ab688f70
drm/armada: expand overlay trace entry
...
Add CRTC and source positions to the Armada overlay trace entry.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:22:02 +00:00
Russell King
950bc137c3
drm/armada: implement primary plane update
...
Implement primary plane update without having to go through a modeset
to achieve that; the hardware does not require such complexity. This
means we treat the primary plane as any other, allowing the format,
size, position and scaling to be updated via the normal plane ioctls.
This also allows us to seemlessly disable and re-enable the primary
plane when (eg) displaying full-frame video without any graphic
clipping the overlaid video - which saves wasting memory bandwidth
needlessly verifying that the colorkey is indeed filling the entire
primary plane.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:22:01 +00:00
Russell King
11df53dc5b
drm/armada: extract register generation from armada_drm_primary_set()
...
Extract the register generation from armada_drm_primary_set(), so that
it can be re-used.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:21:59 +00:00
Russell King
07da3c787a
drm/armada: wait for previous work when moving overlay window
...
We must wait for the previous plane work to complete before moving
the overlay window, as it could overwrite our positioning update.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:21:57 +00:00
Russell King
65843e9af7
drm/armada: move overlay plane register update generation
...
Move the overlay plane register update generation to a separate function
as this is independent of the legacy or atomic update.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:21:53 +00:00
Russell King
d19f6ee505
drm/armada: re-organise overlay register update generation
...
Re-organise overlay register generation so that we do not have to wait
for the previous update to complete while creating the new state. This
allows the update to be fully prepared before queueing it for the next
interrupt.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:20:57 +00:00
Russell King
890ca8df5a
drm/armada: disable planes at next blanking period
...
Disable planes at the next blanking period rather than immediately.
In order to achieve this, we need to delay the clearing of dcrtc->plane
until after the next blanking period, so move that into a separate
work function. To avoid races, we also need to move its assignment in
the overlay code.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:20:52 +00:00
Russell King
d924155dae
drm/armada: avoid work allocation
...
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:20:00 +00:00
Russell King
c93dfdcd05
drm/armada: allow armada_drm_plane_work_queue() to silently fail
...
Avoid printing an error message when armada_drm_plane_work_queue() is
unable to get the vblank (eg, because we're doing a modeset.) Continue
to report the failure to the caller, so the caller can handle this.
Move the error message into armada_ovl_plane_update().
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:19:58 +00:00
Russell King
7bfab1ec45
drm/armada: use drm_plane_helper_check_state()
...
Use drm_plane_helper_check_state() to check the overlay plane state
rather than drm_plane_helper_check_update(), as:
(1) using drm_plane_helper_check_state() provides a better migration
path to atomic modeset
(2) it avoids needless copies of drm rectangle structures, and so is
more efficient.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:19:56 +00:00
Russell King
73c51abd9d
drm/armada: only enable HSMOOTH if scaling horizontally
...
Only enable the HSMOOTH control bit if we are scaling horizontally,
otherwise it makes no sense to enable the horizontal scaler.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:19:55 +00:00
Russell King
214612f9b7
drm/armada: move writes of LCD_SPU_SRAM_PARA1 under lock
...
Move writes of LCD_SPU_SRAM_PARA1 under the irq lock, so that we can
add this to the frame updates at interrupt time when disabling a
plane.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:19:53 +00:00
Russell King
eaa66279c3
drm/armada: move regs into armada_plane_work
...
Move the register update structure out of the overlay private structure
into armada_plane_work, as this is common to both the primary and
overlay planes.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:19:51 +00:00
Russell King
eb19be5bbe
drm/armada: move event sending into armada_plane_work
...
Move the sending of events into the armada_plane_work structure, and
combine the processing in armada_drm_plane_work_call().
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:19:49 +00:00
Russell King
b972a80f44
drm/armada: move fb retirement into armada_plane_work
...
Both the primary and overlay planes retire framebuffers in a similar
manner; this can be consolidated by moving the retirement up to the
armada_plane_work layer.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:19:44 +00:00
Russell King
a3f6a18f9a
drm/armada: move overlay plane work out from under spinlock
...
Move the overlay plane work out from under the spinlock so that both the
primary and overlay planes run their work in the same context. This is
necessary so that we can use frame works with the overlay plane.
However, we must update the CRTC registers under the spinlock, so fix up
the overlay code for that.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:18:46 +00:00
Russell King
d76dcc7236
drm/armada: clear plane enable bit when disabling
...
Clear the plane enable bit in the software state within
armada_drm_plane_disable() when disabling either the primary or
overlay planes.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:18:44 +00:00
Russell King
f1f1bffcf0
drm/armada: clean up armada_drm_crtc_plane_disable()
...
Merge armada_drm_primary_disable() into armada_drm_crtc_plane_disable()
and rename to armada_drm_plane_disable(). Use this to simplify
armada_ovl_plane_disable().
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
2017-12-08 12:18:43 +00:00