[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230109143846.1966301-7-mwen@igalia.com>
Date: Mon, 9 Jan 2023 13:38:34 -0100
From: Melissa Wen <mwen@...lia.com>
To: maarten.lankhorst@...ux.intel.com, mripard@...nel.org,
tzimmermann@...e.de, airlied@...il.com, daniel@...ll.ch
Cc: Joshua Ashton <joshua@...ggi.es>, alex.hung@....com,
nicholas.kazlauskas@....com, sungjoon.kim@....com,
seanpaul@...omium.org, bhawanpreet.lakha@....com,
Shashank Sharma <shashank.sharma@....com>,
ville.syrjala@...ux.intel.com, kernel-dev@...lia.com,
laurent.pinchart+renesas@...asonboard.com,
Melissa Wen <mwen@...lia.com>, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Subject: [RFC PATCH v2 06/18] drm/drm_color_mgmt: set first lut3d mode as default
Signed-off-by: Melissa Wen <mwen@...lia.com>
---
drivers/gpu/drm/drm_color_mgmt.c | 18 ++++++++++++++++--
include/drm/drm_color_mgmt.h | 3 ++-
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c
index 06503f693ecd..d6283f049881 100644
--- a/drivers/gpu/drm/drm_color_mgmt.c
+++ b/drivers/gpu/drm/drm_color_mgmt.c
@@ -280,18 +280,32 @@ EXPORT_SYMBOL(drm_crtc_create_lut3d_mode_property);
* therefore optional.
*/
void drm_crtc_enable_lut3d(struct drm_crtc *crtc,
- uint shaper_lut_size)
+ uint shaper_lut_size,
+ bool first_value_as_default)
{
struct drm_device *dev = crtc->dev;
struct drm_mode_config *config = &dev->mode_config;
+ struct drm_property_enum *prop;
+ uint init_value = 0;
if (!config->lut3d_mode_property)
return;
drm_object_attach_property(&crtc->base,
config->lut3d_property, 0);
+
+ if (first_value_as_default) {
+ prop = list_first_entry_or_null(&config->lut3d_mode_property->enum_list,
+ typeof(*prop), head);
+ init_value = prop ? prop->value : 0;
+ }
+
drm_object_attach_property(&crtc->base,
- config->lut3d_mode_property, 0);
+ config->lut3d_mode_property,
+ init_value);
+
+ if (crtc->state && prop)
+ crtc->state->lut3d_mode = init_value;
if (!shaper_lut_size)
return;
diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h
index db2026dc825e..d13e99e2e877 100644
--- a/include/drm/drm_color_mgmt.h
+++ b/include/drm/drm_color_mgmt.h
@@ -64,7 +64,8 @@ int drm_crtc_create_lut3d_mode_property(struct drm_crtc *crtc,
unsigned int num_modes);
void drm_crtc_enable_lut3d(struct drm_crtc *crtc,
- uint shaper_lut_size);
+ uint shaper_lut_size,
+ bool first_value_as_default);
int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
int gamma_size);
--
2.35.1
Powered by blists - more mailing lists