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

Reply via email to