From: jernej.skrabec@siol.net (Jernej Skrabec)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 11/27] drm/sun4i: Add constraints checking to DE2 driver
Date: Fri, 1 Dec 2017 07:05:34 +0100 [thread overview]
Message-ID: <20171201060550.10392-12-jernej.skrabec@siol.net> (raw)
In-Reply-To: <20171201060550.10392-1-jernej.skrabec@siol.net>
Since current DE2 driver doesn't know how to scale yet, add atomic check
function which checks that.
Nice side effect of that function is that populates clipped coordinates
and checks visibility of the plane. That data will be used in the
future.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/gpu/drm/sun4i/sun8i_layer.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/drivers/gpu/drm/sun4i/sun8i_layer.c b/drivers/gpu/drm/sun4i/sun8i_layer.c
index 5aa6e2c9728e..40e6b83aef3b 100644
--- a/drivers/gpu/drm/sun4i/sun8i_layer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_layer.c
@@ -13,7 +13,9 @@
* the License, or (at your option) any later version.
*/
+#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc.h>
#include <drm/drm_plane_helper.h>
#include <drm/drmP.h>
@@ -26,6 +28,31 @@ struct sun8i_plane_desc {
uint32_t nformats;
};
+static int sun8i_mixer_layer_atomic_check(struct drm_plane *plane,
+ struct drm_plane_state *state)
+{
+ struct drm_crtc *crtc = state->crtc;
+ struct drm_crtc_state *crtc_state;
+ struct drm_rect clip;
+
+ if (!crtc)
+ return 0;
+
+ crtc_state = drm_atomic_get_existing_crtc_state(state->state, crtc);
+ if (WARN_ON(!crtc_state))
+ return -EINVAL;
+
+ clip.x1 = 0;
+ clip.y1 = 0;
+ clip.x2 = crtc_state->adjusted_mode.hdisplay;
+ clip.y2 = crtc_state->adjusted_mode.vdisplay;
+
+ return drm_plane_helper_check_state(state, &clip,
+ DRM_PLANE_HELPER_NO_SCALING,
+ DRM_PLANE_HELPER_NO_SCALING,
+ true, true);
+}
+
static void sun8i_mixer_layer_atomic_disable(struct drm_plane *plane,
struct drm_plane_state *old_state)
{
@@ -53,6 +80,7 @@ static void sun8i_mixer_layer_atomic_update(struct drm_plane *plane,
}
static struct drm_plane_helper_funcs sun8i_mixer_layer_helper_funcs = {
+ .atomic_check = sun8i_mixer_layer_atomic_check,
.atomic_disable = sun8i_mixer_layer_atomic_disable,
.atomic_update = sun8i_mixer_layer_atomic_update,
};
--
2.15.1
next prev parent reply other threads:[~2017-12-01 6:05 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-01 6:05 [PATCH v2 00/27] Improve DE2 support Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 01/27] drm/sun4i: Fix format mask in DE2 driver Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 02/27] drm/sun4i: Rename DE2 RGB format macros Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 03/27] drm/sun4i: Remove setting alpha mode in DE2 driver Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 04/27] drm/sun4i: Fix debug message in DE2 Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 05/27] drm/sun4i: Remove setting default values in DE2 driver Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 06/27] drm/sun4i: Explain color macro " Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 07/27] drm/sun4i: Set blending mode for all channels (DE2) Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 08/27] drm/sun4i: Rename some macros in DE2 driver Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 09/27] drm/sun4i: Rework enabling plane " Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 10/27] drm/sun4i: Start using layer id " Jernej Skrabec
2017-12-01 6:05 ` Jernej Skrabec [this message]
2017-12-01 6:05 ` [PATCH v2 12/27] drm/sun4i: Use values calculated by atomic check Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 13/27] drm/sun4i: Move line width setting in DE2 Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 14/27] drm/sun4i: Move channel size related code " Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 15/27] drm/sun4i: Move interlace " Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 16/27] drm/sun4i: Add multi plane support to DE2 driver Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 17/27] drm/sun4i: Add support for all HW supported DE2 RGB formats Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 18/27] drm/sun4i: Reorganize UI layer code in DE2 Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 19/27] drm/sun4i: Add support for DE2 VI planes Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 20/27] drm/sun4i: Add scaler configuration to DE2 mixers Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 21/27] drm/sun4i: Add support for HW scaling to DE2 Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 22/27] drm/sun4i: Add CCSC property to DE2 configuration Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 23/27] drm/sun4i: Add DE2 CSC library Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 24/27] drm/sun4i: Add DE2 definitions for YUV formats Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 25/27] drm/sun4i: Expand DE2 scaler lib with YUV support Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 26/27] drm/sun4i: Wire in DE2 " Jernej Skrabec
2017-12-01 6:05 ` [PATCH v2 27/27] [DO NOT MERGE]drm/sun4i: Change zpos of bottom VI plane Jernej Skrabec
2017-12-05 10:36 ` [PATCH v2 00/27] Improve DE2 support Maxime Ripard
2017-12-05 15:52 ` Jernej Škrabec
2017-12-05 19:23 ` Maxime Ripard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171201060550.10392-12-jernej.skrabec@siol.net \
--to=jernej.skrabec@siol.net \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox