#
d40af7b1 |
| 30-Jul-2018 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: move primary plane to separate file Split out the primary plane support; this is now entirely separate from the CRTC support. Signed-off-by: Russell King <rmk+kernel
drm/armada: move primary plane to separate file Split out the primary plane support; this is now entirely separate from the CRTC support. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
show more ...
|
#
3acea7b9 |
| 30-Jul-2018 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: use old_state for update tracking in atomic_update() Rather than tracking the register state, we can now check the previous state and decide which registers need updating fro
drm/armada: use old_state for update tracking in atomic_update() Rather than tracking the register state, we can now check the previous state and decide which registers need updating from that since the old plane state indicates the previous state which was programmed into the hardware. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
show more ...
|
#
47dc413b |
| 30-Jul-2018 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: convert overlay plane to atomic state The overlay plane support updates asynchronously to the request, but the drm_plane_helper_update() transitional helper waits for a vblan
drm/armada: convert overlay plane to atomic state The overlay plane support updates asynchronously to the request, but the drm_plane_helper_update() transitional helper waits for a vblank event before releasing the framebuffer. Using the transitional helper would make the call block, which would introduce a performance regression. Convert the overlay plane update to use the atomic state structures and methods for the plane, but implement our own legacy update method rather than the transitional helper. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
show more ...
|
#
0239520e |
| 30-Jul-2018 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: add rectangle helpers Add helpers to convert rectangle width/height and x/y to register values. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
Revision tags: v4.17.3 |
|
#
d378859a |
| 24-Jun-2018 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: fix colorkey mode property The colorkey mode property was not correctly disabling the colorkeying when "disabled" mode was selected. Arrange for this to work as one woul
drm/armada: fix colorkey mode property The colorkey mode property was not correctly disabling the colorkeying when "disabled" mode was selected. Arrange for this to work as one would expect. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
show more ...
|
Revision tags: v4.17.2, v4.17.1, v4.17, v4.16, v4.15 |
|
#
81af63a4 |
| 23-Jan-2018 |
Ville Syrjälä <ville.syrjala@linux.intel.com> |
drm: Don't pass clip to drm_atomic_helper_check_plane_state() Move the plane clip rectangle handling into drm_atomic_helper_check_plane_state(). Drivers no longer have to worry about
drm: Don't pass clip to drm_atomic_helper_check_plane_state() Move the plane clip rectangle handling into drm_atomic_helper_check_plane_state(). Drivers no longer have to worry about such mundane details. v2: Convert armada, rcar, and sun4i as well v3: Resolve simple_kms_helper conflict Cc: Liviu Dudau <liviu.dudau@arm.com> Cc: Brian Starkey <brian.starkey@arm.com> Cc: Mali DP Maintainers <malidp@foss.arm.com> Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Gustavo Padovan <gustavo@padovan.org> Cc: Sean Paul <seanpaul@chromium.org> Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: CK Hu <ck.hu@mediatek.com> Cc: Neil Armstrong <narmstrong@baylibre.com> Cc: Rob Clark <robdclark@gmail.com> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Sandy Huang <hjc@rock-chips.com> Cc: "Heiko Stübner" <heiko@sntech.de> Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: VMware Graphics <linux-graphics-maintainer@vmware.com> Cc: Sinclair Yeh <syeh@vmware.com> Cc: Thomas Hellstrom <thellstrom@vmware.com> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Archit Taneja <architt@codeaurora.org> Cc: linux-amlogic@lists.infradead.org Cc: linux-arm-msm@vger.kernel.org Cc: freedreno@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Cc: linux-renesas-soc@vger.kernel.org Cc: linux-tegra@vger.kernel.org Cc: Russell King <rmk+kernel@armlinux.org.uk> Suggested-by: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Archit Taneja <architt@codeaurora.org> #msm Link: https://patchwork.freedesktop.org/patch/msgid/20180123170857.13818-5-ville.syrjala@linux.intel.com Acked-by: Liviu Dudau <liviu.dudau@arm.com> #hdlcd,malidp Acked-by: Philipp Zabel <p.zabel@pengutronix.de> #imx,mtk Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com> #vmwgfx Acked-by: Neil Armstrong <narmstrong@baylibre.com> #meson Acked-by: Shawn Guo <shawnguo@kernel.org> #zte
show more ...
|
#
bf817d0c |
| 23-Jan-2018 |
Ville Syrjälä <ville.syrjala@linux.intel.com> |
drm/armada: Use drm_mode_get_hv_timing() to populate plane clip rectangle Use drm_mode_get_hv_timing() to fill out the plane clip rectangle. Since armada isn't atomic we'll use crtc
drm/armada: Use drm_mode_get_hv_timing() to populate plane clip rectangle Use drm_mode_get_hv_timing() to fill out the plane clip rectangle. Since armada isn't atomic we'll use crtc->enabled and crtc->mode instead of the stuff under crtc_state. Once everyone agrees on how the clip rectangle gets set up we can move the code into drm_atomic_helper_check_plane_state(). Cc: Dave Airlie <airlied@redhat.com> Cc: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180123170857.13818-4-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Dave Airlie <airlied@redhat.com>
show more ...
|
#
57270b81 |
| 23-Jan-2018 |
Ville Syrjälä <ville.syrjala@linux.intel.com> |
drm/armada: Construct a temporary crtc state for plane checks As armada isn't an atomic driver trying to pass a non-populated crtc->state to drm_atomic_helper_check_plane_state() will en
drm/armada: Construct a temporary crtc state for plane checks As armada isn't an atomic driver trying to pass a non-populated crtc->state to drm_atomic_helper_check_plane_state() will end in tears. Construct a temporary crtc state a la drm_plane_helper_check_update() and pass that instead. For now we just really need crtc_state->enable to be there. Cc: Dave Airlie <airlied@redhat.com> Cc: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180123170857.13818-3-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Dave Airlie <airlied@redhat.com>
show more ...
|
#
bcd21a47 |
| 04-Jan-2018 |
Dave Airlie <airlied@redhat.com> |
Merge branch 'drm-armada-devel-4.15' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-next This series builds upon the set of fixes previously submitted to move Armada DRM closer to
Merge branch 'drm-armada-devel-4.15' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-next This series builds upon the set of fixes previously submitted to move Armada DRM closer to atomic modeset. We're nowhere near yet, but this series helps to get us closer by unifying some of the differences between the primary and overlay planes. New features added allows userspace to disable the primary plane if overlay is full screen and there's nothing obscuring the colorkey - this saves having to fetch an entire buffer containing nothing but colorkey when displaying full screen video. [airlied: fixup for atomic plane helper rename: a01cb8ba3f6282934cff65e89ab36b18b14cbe27 Author: Ville Syrjälä <ville.syrjala@linux.intel.com> Date: Wed Nov 1 22:16:19 2017 +0200 drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c ] * 'drm-armada-devel-4.15' of git://git.armlinux.org.uk/~rmk/linux-arm: (29 commits) drm/armada: expand overlay trace entry drm/armada: implement primary plane update drm/armada: extract register generation from armada_drm_primary_set() drm/armada: wait for previous work when moving overlay window drm/armada: move overlay plane register update generation drm/armada: re-organise overlay register update generation drm/armada: disable planes at next blanking period drm/armada: avoid work allocation drm/armada: allow armada_drm_plane_work_queue() to silently fail drm/armada: use drm_plane_helper_check_state() drm/armada: only enable HSMOOTH if scaling horizontally drm/armada: move writes of LCD_SPU_SRAM_PARA1 under lock drm/armada: move regs into armada_plane_work drm/armada: move event sending into armada_plane_work drm/armada: move fb retirement into armada_plane_work drm/armada: move overlay plane work out from under spinlock drm/armada: clear plane enable bit when disabling drm/armada: clean up armada_drm_crtc_plane_disable() drm/armada: allow the primary plane to be disabled drm/armada: wait and cancel any pending frame work at disable ...
show more ...
|
Revision tags: v4.13.16, v4.14, v4.13.5, v4.13 |
|
#
07da3c78 |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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
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>
show more ...
|
#
65843e9a |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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.
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>
show more ...
|
#
d19f6ee5 |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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 n
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>
show more ...
|
#
890ca8df |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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->p
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>
show more ...
|
#
d924155d |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: avoid work allocation Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
#
c93dfdcd |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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
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>
show more ...
|
#
7bfab1ec |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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
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>
show more ...
|
#
73c51abd |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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.
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>
show more ...
|
#
214612f9 |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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 disabli
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>
show more ...
|
#
eaa66279 |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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
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>
show more ...
|
#
b972a80f |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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
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>
show more ...
|
#
a3f6a18f |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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
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>
show more ...
|
#
d76dcc72 |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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 plan
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>
show more ...
|
#
f1f1bffc |
| 08-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
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 simpli
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>
show more ...
|
#
65724a19 |
| 07-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: wait and cancel any pending frame work at disable Wait for a second, and if we time out, cancel any pending work when disabling the primary plane. This ensures that any pend
drm/armada: wait and cancel any pending frame work at disable Wait for a second, and if we time out, cancel any pending work when disabling the primary plane. This ensures that any pending work is completed or cleaned up prior to the disable taking effect. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
show more ...
|
#
eaab0130 |
| 07-Jul-2017 |
Russell King <rmk+kernel@armlinux.org.uk> |
drm/armada: store plane in armada_plane_work Store the plane in the armada_plane_work structure rather than passing it around; it doesn't get used very much in the work structures, so
drm/armada: store plane in armada_plane_work Store the plane in the armada_plane_work structure rather than passing it around; it doesn't get used very much in the work structures, so passing it around is a needless expense. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
show more ...
|