-----Original Message-----
From: Dmitry Baryshkov <[email protected]>
Sent: Saturday, October 4, 2025 3:38 PM
To: Garg, Nemesa <[email protected]>
Cc: [email protected]; [email protected]; dri-
[email protected]; Nautiyal, Ankit K <[email protected]>;
G M, Adarsh <[email protected]>; Simona Vetter
<[email protected]>
Subject: Re: [PATCH 01/10] drm/drm_crtc: Introduce sharpness strength
property
On Wed, Oct 01, 2025 at 12:04:51PM +0530, Nemesa Garg wrote:
Introduce a new crtc property "SHARPNESS_STRENGTH" that allows the
user to set the intensity so as to get the sharpness effect.
The value of this property can be set from 0-255.
It is useful in scenario when the output is blurry and user want to
sharpen the pixels. User can increase/decrease the sharpness level
depending on the content displayed.
v2: Rename crtc property variable [Arun]
Add modeset detail in uapi doc[Uma]
v3: Fix build issue
v4: Modify the subject line[Ankit]
Signed-off-by: Nemesa Garg <[email protected]>
Reviewed-by: Ankit Nautiyal <[email protected]>
Tested-by: Adarsh G M <[email protected]>
Acked-by: Simona Vetter <[email protected]>
---
drivers/gpu/drm/drm_atomic_uapi.c | 4 ++++
drivers/gpu/drm/drm_crtc.c | 35 +++++++++++++++++++++++++++++++
include/drm/drm_crtc.h | 18 ++++++++++++++++
3 files changed, 57 insertions(+)
diff --git a/drivers/gpu/drm/drm_atomic_uapi.c
b/drivers/gpu/drm/drm_atomic_uapi.c
index 85dbdaa4a2e2..b2cb5ae5a139 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -419,6 +419,8 @@ static int drm_atomic_crtc_set_property(struct
drm_crtc *crtc,
set_out_fence_for_crtc(state->state, crtc, fence_ptr);
} else if (property == crtc->scaling_filter_property) {
state->scaling_filter = val;
+ } else if (property == crtc->sharpness_strength_property) {
+ state->sharpness_strength = val;
} else if (crtc->funcs->atomic_set_property) {
return crtc->funcs->atomic_set_property(crtc, state, property,
val);
} else {
@@ -456,6 +458,8 @@ drm_atomic_crtc_get_property(struct drm_crtc
*crtc,
*val = 0;
else if (property == crtc->scaling_filter_property)
*val = state->scaling_filter;
+ else if (property == crtc->sharpness_strength_property)
+ *val = state->sharpness_strength;
else if (crtc->funcs->atomic_get_property)
return crtc->funcs->atomic_get_property(crtc, state, property,
val);
else {
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 46655339003d..a7797d260f1e 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -229,6 +229,25 @@ struct dma_fence *drm_crtc_create_fence(struct
drm_crtc *crtc)
* Driver's default scaling filter
* Nearest Neighbor:
* Nearest Neighbor scaling filter
+ * SHARPNESS_STRENGTH:
+ * Atomic property for setting the sharpness strength/intensity by
userspace.
+ *
+ * The value of this property is set as an integer value ranging
+ * from 0 - 255 where:
+ *
+ * 0: Sharpness feature is disabled(default value).
+ *
+ * 1: Minimum sharpness.
+ *
+ * 255: Maximum sharpness.
+ *
+ * User can gradually increase or decrease the sharpness level and can
+ * set the optimum value depending on content.
+ * This value will be passed to kernel through the UAPI.
+ * The setting of this property does not require modeset.
+ * The sharpness effect takes place post blending on the final composed
output.
+ * If the feature is disabled, the content remains same without any
sharpening effect
+ * and when this feature is applied, it enhances the clarity of the
content.
I can repeat my question from XDC: should we extend this to negative values,
allowing softening (unsharpening) the image?