[PATCH v8 09/14] drm/i915/histogram: Hook i915 histogram with drm histogram
Kandpal, Suraj
suraj.kandpal at intel.com
Fri Feb 14 10:22:52 UTC 2025
> -----Original Message-----
> From: Murthy, Arun R <arun.r.murthy at intel.com>
> Sent: Tuesday, January 28, 2025 9:21 PM
> To: intel-xe at lists.freedesktop.org; intel-gfx at lists.freedesktop.org; dri-
> devel at lists.freedesktop.org
> Cc: Kandpal, Suraj <suraj.kandpal at intel.com>; dmitry.baryshkov at linaro.org;
> Murthy, Arun R <arun.r.murthy at intel.com>
> Subject: [PATCH v8 09/14] drm/i915/histogram: Hook i915 histogram with drm
> histogram
>
> Handle histogram caps and histogram config property in i915 driver. Fill the
> histogram hardware capability and act upon the histogram config property to
> enable/disable histogram in i915.
Need to fix comment its not just for i915 but xe as well.
Otherwise LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal at intel.com>
>
> Signed-off-by: Arun R Murthy <arun.r.murthy at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_crtc.c | 7 +++++++
> drivers/gpu/drm/i915/display/intel_display.c | 12 ++++++++++++
> 2 files changed, 19 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c
> b/drivers/gpu/drm/i915/display/intel_crtc.c
> index
> e69b28779ac551bde56c9c3d394e784275a9b69e..b90017409a23de2a214ca43d
> 32ba537998ea0f78 100644
> --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> @@ -28,6 +28,7 @@
> #include "intel_drrs.h"
> #include "intel_dsi.h"
> #include "intel_fifo_underrun.h"
> +#include "intel_histogram.h"
> #include "intel_pipe_crc.h"
> #include "intel_psr.h"
> #include "intel_sprite.h"
> @@ -211,6 +212,7 @@ static struct intel_crtc *intel_crtc_alloc(void) static
> void intel_crtc_free(struct intel_crtc *crtc) {
> intel_crtc_destroy_state(&crtc->base, crtc->base.state);
> + intel_histogram_finish(crtc);
> kfree(crtc);
> }
>
> @@ -381,6 +383,11 @@ int intel_crtc_init(struct drm_i915_private *dev_priv,
> enum pipe pipe)
>
> BIT(DRM_SCALING_FILTER_DEFAULT) |
>
> BIT(DRM_SCALING_FILTER_NEAREST_NEIGHBOR));
>
> + intel_histogram_init(crtc);
> + if (drm_crtc_create_histogram_property(&crtc->base,
> + crtc->histogram->caps))
> + drm_err(&dev_priv->drm, "Failed to initialize histogram
> +properties\n");
> +
> intel_color_crtc_init(crtc);
> intel_drrs_crtc_init(crtc);
> intel_crtc_crc_init(crtc);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index
> 7d68d652c1bc91acc68281c4761f688f3779bd79..c38a33ee90aef144931215254f
> 178ba955f998b0 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -93,6 +93,7 @@
> #include "intel_fifo_underrun.h"
> #include "intel_frontbuffer.h"
> #include "intel_hdmi.h"
> +#include "intel_histogram.h"
> #include "intel_hotplug.h"
> #include "intel_link_bw.h"
> #include "intel_lvds.h"
> @@ -4675,6 +4676,12 @@ static int intel_crtc_atomic_check(struct
> intel_atomic_state *state,
> if (ret)
> return ret;
>
> + if (crtc_state->uapi.histogram_updated) {
> + ret = intel_histogram_atomic_check(crtc);
> + if (ret)
> + return ret;
> + }
> +
> return 0;
> }
>
> @@ -7933,6 +7940,11 @@ static void intel_atomic_commit_tail(struct
> intel_atomic_state *state)
> */
> old_crtc_state->dsb_color_vblank =
> fetch_and_zero(&new_crtc_state->dsb_color_vblank);
> old_crtc_state->dsb_commit =
> fetch_and_zero(&new_crtc_state->dsb_commit);
> +
> + if (new_crtc_state->uapi.histogram_updated)
> + intel_histogram_update(crtc,
> + (struct drm_histogram_config *)
> + new_crtc_state-
> >uapi.histogram_enable->data);
> }
>
> /* Underruns don't always raise interrupts, so check manually */
>
> --
> 2.25.1
More information about the Intel-xe
mailing list