Skip to content

Commit 66c9c0c

Browse files
committed
drm/mode_object: add drm_object_immutable_property_get_value()
We have a helper to get property values for non-atomic drivers and another one default property values for atomic drivers. In some cases we need the ability to get value of immutable property, no matter what kind of driver it is. Implement new property-related helper, drm_object_immutable_property_get_value(), which lets the caller to get the value of the immutable property. Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patch.msgid.link/20260106-drm-fix-lut-checks-v3-1-f7f979eb73c8@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
1 parent c40b50c commit 66c9c0c

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

drivers/gpu/drm/drm_mode_object.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,31 @@ int drm_object_property_get_default_value(struct drm_mode_object *obj,
385385
}
386386
EXPORT_SYMBOL(drm_object_property_get_default_value);
387387

388+
/**
389+
* drm_object_immutable_property_get_value - retrieve the value of a property
390+
* @obj: drm mode object to get property value from
391+
* @property: property to retrieve
392+
* @val: storage for the property value
393+
*
394+
* This function retrieves the software state of the given immutable property
395+
* for the given mode object.
396+
*
397+
* This function can be called by both atomic and non-atomic drivers.
398+
*
399+
* Returns:
400+
* Zero on success, error code on failure.
401+
*/
402+
int drm_object_immutable_property_get_value(struct drm_mode_object *obj,
403+
struct drm_property *property,
404+
uint64_t *val)
405+
{
406+
if (drm_WARN_ON(property->dev, !(property->flags & DRM_MODE_PROP_IMMUTABLE)))
407+
return -EINVAL;
408+
409+
return __drm_object_property_get_prop_value(obj, property, val);
410+
}
411+
EXPORT_SYMBOL(drm_object_immutable_property_get_value);
412+
388413
/* helper for getconnector and getproperties ioctls */
389414
int drm_mode_object_get_properties(struct drm_mode_object *obj, bool atomic,
390415
bool plane_color_pipeline,

include/drm/drm_mode_object.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ int drm_object_property_get_value(struct drm_mode_object *obj,
133133
int drm_object_property_get_default_value(struct drm_mode_object *obj,
134134
struct drm_property *property,
135135
uint64_t *val);
136+
int drm_object_immutable_property_get_value(struct drm_mode_object *obj,
137+
struct drm_property *property,
138+
uint64_t *val);
136139

137140
void drm_object_attach_property(struct drm_mode_object *obj,
138141
struct drm_property *property,

0 commit comments

Comments
 (0)