dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: Eric Anholt <eric@anholt.net>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>,
	dri-devel@lists.freedesktop.org
Subject: [PATCH] drm/vc4: plane: Expand the lower bits using the LSB
Date: Tue, 24 Apr 2018 09:48:14 +0200	[thread overview]
Message-ID: <20180424074814.6922-1-maxime.ripard@bootlin.com> (raw)

The vc4 HVS uses an internal RGB888 representation of the frames, and will
by default expand formats using a lower depth using zeros.

This causes an issue when we try to use other compositing software such as
pixman that seems to be filling the missing bits using the format least
significant bit value. As such, this prevents us from checking the display
output in a reliable way.

To prevent this, force the same behaviour so that we can do such things.

Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
 drivers/gpu/drm/vc4/vc4_plane.c | 1 +
 drivers/gpu/drm/vc4/vc4_regs.h  | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index ce39390be389..8dd33c6e9fd8 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -542,6 +542,7 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
 	/* Control word */
 	vc4_dlist_write(vc4_state,
 			SCALER_CTL0_VALID |
+			VC4_SET_FIELD(SCALER_CTL0_EXPAND_LSB, SCALER_CTL0_EXPAND) |
 			(format->pixel_order << SCALER_CTL0_ORDER_SHIFT) |
 			(format->hvs << SCALER_CTL0_PIXEL_FORMAT_SHIFT) |
 			VC4_SET_FIELD(tiling, SCALER_CTL0_TILING) |
diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h
index a141496104a6..7c28e6207ec2 100644
--- a/drivers/gpu/drm/vc4/vc4_regs.h
+++ b/drivers/gpu/drm/vc4/vc4_regs.h
@@ -806,12 +806,20 @@ enum hvs_pixel_format {
 #define SCALER_CTL0_ORDER_MASK			VC4_MASK(14, 13)
 #define SCALER_CTL0_ORDER_SHIFT			13
 
+#define SCALER_CTL0_EXPAND_MASK			VC4_MASK(12, 11)
+#define SCALER_CTL0_EXPAND_SHIFT		11
+
 #define SCALER_CTL0_SCL1_MASK			VC4_MASK(10, 8)
 #define SCALER_CTL0_SCL1_SHIFT			8
 
 #define SCALER_CTL0_SCL0_MASK			VC4_MASK(7, 5)
 #define SCALER_CTL0_SCL0_SHIFT			5
 
+#define SCALER_CTL0_EXPAND_ZERO			0
+#define SCALER_CTL0_EXPAND_LSB			1
+#define SCALER_CTL0_EXPAND_MSB			2
+#define SCALER_CTL0_EXPAND_REPEAT		3
+
 #define SCALER_CTL0_SCL_H_PPF_V_PPF		0
 #define SCALER_CTL0_SCL_H_TPZ_V_PPF		1
 #define SCALER_CTL0_SCL_H_PPF_V_TPZ		2
-- 
2.17.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2018-04-24  7:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24  7:48 Maxime Ripard [this message]
2018-04-24 16:53 ` [PATCH] drm/vc4: plane: Expand the lower bits using the LSB Eric Anholt
2018-05-14 13:20   ` Maxime Ripard
2018-05-14 13:32 ` Stefan Schake

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=20180424074814.6922-1-maxime.ripard@bootlin.com \
    --to=maxime.ripard@bootlin.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eric@anholt.net \
    /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