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? > */ > > __printf(6, 0) -- With best wishes Dmitry
