All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: Daniel Vetter <daniel.vetter@intel.com>, David Airlie <airlied@linux.ie>
Cc: Dom Cobley <dom@raspberrypi.com>,
	Tim Gover <tim.gover@raspberrypi.com>,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	dri-devel@lists.freedesktop.org,
	Maxime Ripard <maxime@cerno.tech>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Phil Elwell <phil@raspberrypi.com>
Subject: [PATCH v2 18/22] drm/object: Add default color encoding and range value at reset
Date: Mon, 21 Feb 2022 10:59:14 +0100	[thread overview]
Message-ID: <20220221095918.18763-19-maxime@cerno.tech> (raw)
In-Reply-To: <20220221095918.18763-1-maxime@cerno.tech>

From: Dave Stevenson <dave.stevenson@raspberrypi.com>

The drm_plane_create_color_properties() function asks for an initial
value for the color encoding and range, and will set the associated
plane state variable with that value if a state is present.

However, that function is usually called at a time where there's no
state yet. Since the drm_plane_state reset helper doesn't take care of
reading that value when it's called, it means that in most cases the
initial value will be 0 (so DRM_COLOR_YCBCR_BT601 and
DRM_COLOR_YCBCR_LIMITED_RANGE, respectively), or the drivers will have
to work around it.

Let's add some code in __drm_atomic_helper_plane_state_reset() to get
the initial encoding and range value if the property has been attached
in order to fix this.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 drivers/gpu/drm/drm_atomic_state_helper.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
index 1412cee404ca..3b6d3bdbd099 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -251,6 +251,20 @@ void __drm_atomic_helper_plane_state_reset(struct drm_plane_state *plane_state,
 	plane_state->alpha = DRM_BLEND_ALPHA_OPAQUE;
 	plane_state->pixel_blend_mode = DRM_MODE_BLEND_PREMULTI;
 
+	if (plane->color_encoding_property) {
+		if (!drm_object_property_get_default_value(&plane->base,
+							   plane->color_encoding_property,
+							   &val))
+			plane_state->color_encoding = val;
+	}
+
+	if (plane->color_range_property) {
+		if (!drm_object_property_get_default_value(&plane->base,
+							   plane->color_range_property,
+							   &val))
+			plane_state->color_range = val;
+	}
+
 	if (plane->zpos_property) {
 		if (!drm_object_property_get_default_value(&plane->base,
 							   plane->zpos_property,
-- 
2.35.1


  parent reply	other threads:[~2022-02-21 10:00 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-21  9:58 [PATCH v2 00/22] drm: Fill in default values for plane properties Maxime Ripard
2022-02-21  9:58 ` [PATCH v2 01/22] drm/komeda: plane: switch to plane reset helper Maxime Ripard
2022-02-25 13:59   ` Liviu Dudau
2022-03-08 11:04   ` (subset) " Maxime Ripard
2022-02-21  9:58 ` [PATCH v2 02/22] drm/tegra: " Maxime Ripard
2022-02-21  9:58   ` Maxime Ripard
2022-02-21  9:58 ` [PATCH v2 03/22] drm/tegra: hub: Fix zpos initial value mismatch Maxime Ripard
2022-02-21  9:58   ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 04/22] drm/omap: plane: " Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 05/22] drm/amd/display: Fix color encoding mismatch Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 06/22] drm/object: Add drm_object_property_get_default_value() function Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 07/22] drm/object: Add default zpos value at reset Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 08/22] drm/tegra: plane: Remove redundant zpos initialisation Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 09/22] drm/komeda: " Maxime Ripard
2022-02-25 13:59   ` Liviu Dudau
2022-03-08 11:04   ` (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 10/22] drm/exynos: " Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 11/22] drm/imx: ipuv3-plane: " Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 12/22] drm/msm/mdp5: " Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-25 17:14     ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 13/22] drm/nouveau/kms: " Maxime Ripard
2022-02-21  9:59   ` [Nouveau] " Maxime Ripard
2022-02-21 16:42   ` Karol Herbst
2022-02-21 16:42     ` Karol Herbst
2022-02-22 14:02     ` Maxime Ripard
2022-02-22 14:02       ` [Nouveau] " Maxime Ripard
2022-02-22 21:35       ` Karol Herbst
2022-02-22 21:35         ` Karol Herbst
2022-02-22 20:36   ` [Nouveau] " Lyude Paul
2022-02-22 20:36     ` Lyude Paul
2022-02-25 17:14   ` (subset) [Nouveau] " Maxime Ripard
2022-02-25 17:14     ` [Nouveau] (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 14/22] drm/omap: plane: " Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 15/22] drm/rcar: " Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-25 17:14     ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 16/22] drm/sti: " Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 17/22] drm/sun4i: layer: " Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-25 17:14   ` (subset) " Maxime Ripard
2022-02-25 17:14     ` Maxime Ripard
2022-02-25 17:14     ` Maxime Ripard
2022-02-21  9:59 ` Maxime Ripard [this message]
2022-02-25 17:14   ` (subset) [PATCH v2 18/22] drm/object: Add default color encoding and range value at reset Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 19/22] drm/komeda: plane: Remove redundant color encoding and range initialisation Maxime Ripard
2022-02-25 14:01   ` Liviu Dudau
2022-03-08 11:04   ` (subset) " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 20/22] drm/armada: overlay: " Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 21/22] drm/imx: ipuv3-plane: " Maxime Ripard
2022-02-21  9:59   ` Maxime Ripard
2022-02-21  9:59 ` [PATCH v2 22/22] drm/omap: plane: " Maxime Ripard
2022-02-25 17:14   ` (subset) " 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=20220221095918.18763-19-maxime@cerno.tech \
    --to=maxime@cerno.tech \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=dom@raspberrypi.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=phil@raspberrypi.com \
    --cc=tim.gover@raspberrypi.com \
    --cc=tzimmermann@suse.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.