public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: jernej.skrabec@siol.net (Jernej Skrabec)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 09/27] drm/sun4i: Rework enabling plane in DE2 driver
Date: Fri,  1 Dec 2017 07:05:32 +0100	[thread overview]
Message-ID: <20171201060550.10392-10-jernej.skrabec@siol.net> (raw)
In-Reply-To: <20171201060550.10392-1-jernej.skrabec@siol.net>

If we want to support multiple planes in the future, code which enables
pipe has to be moved to appropriate place and it must depend on channel
id instead of being hardcoded.

Side effect of that rework is definition of default Z position. For now,
put first channel at the bottom, second above it and so on.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
 drivers/gpu/drm/sun4i/sun8i_mixer.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c
index c7d4ccd605e0..015943c0ed5a 100644
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
@@ -55,6 +55,15 @@ void sun8i_mixer_layer_enable(struct sun8i_mixer *mixer,
 	regmap_update_bits(mixer->engine.regs,
 			   SUN8I_MIXER_CHAN_UI_LAYER_ATTR(chan, layer),
 			   SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN, val);
+
+	if (enable)
+		val = SUN8I_MIXER_BLEND_PIPE_CTL_EN(chan);
+	else
+		val = 0;
+
+	regmap_update_bits(mixer->engine.regs,
+			   SUN8I_MIXER_BLEND_PIPE_CTL,
+			   SUN8I_MIXER_BLEND_PIPE_CTL_EN(chan), val);
 }
 
 static int sun8i_mixer_drm_format_to_layer(struct drm_plane *plane,
@@ -98,7 +107,7 @@ int sun8i_mixer_update_layer_coord(struct sun8i_mixer *mixer,
 					      state->crtc_h));
 		DRM_DEBUG_DRIVER("Updating blender size\n");
 		regmap_write(mixer->engine.regs,
-			     SUN8I_MIXER_BLEND_ATTR_INSIZE(0),
+			     SUN8I_MIXER_BLEND_ATTR_INSIZE(chan),
 			     SUN8I_MIXER_SIZE(state->crtc_w,
 					      state->crtc_h));
 		regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_OUTSIZE,
@@ -322,20 +331,17 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master,
 	regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR,
 		     SUN8I_MIXER_BLEND_COLOR_BLACK);
 
-	/* Initialize blender */
+	/*
+	 * Set fill color of bottom plane to black. Generally not needed
+	 * except when VI plane is at bottom (zpos = 0) and enabled.
+	 */
 	regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL,
-		     SUN8I_MIXER_BLEND_PIPE_CTL_EN(0) |
 		     SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0));
-
-	regmap_write(mixer->engine.regs,
-		     SUN8I_MIXER_BLEND_ATTR_FCOLOR(0),
+	regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(0),
 		     SUN8I_MIXER_BLEND_COLOR_BLACK);
 
-	/* Select the first UI channel */
-	DRM_DEBUG_DRIVER("Selecting channel %d (first UI channel)\n",
-			 mixer->cfg->vi_num);
-	regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ROUTE,
-		     mixer->cfg->vi_num);
+	/* Fixed zpos for now */
+	regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ROUTE, 0x43210);
 
 	plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num;
 	for (i = 0; i < plane_cnt; i++)
-- 
2.15.1

  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 ` Jernej Skrabec [this message]
2017-12-01  6:05 ` [PATCH v2 10/27] drm/sun4i: Start using layer id " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 11/27] drm/sun4i: Add constraints checking to " Jernej Skrabec
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-10-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