For global histogram the panel should be edp and should have pwm based backlight controller. Flags are updated accordingly. Reviewed-by: Uma Shankar <uma.shankar@xxxxxxxxx> Signed-off-by: Arun R Murthy <arun.r.murthy@xxxxxxxxx> --- drivers/gpu/drm/i915/display/intel_modeset_setup.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_modeset_setup.c b/drivers/gpu/drm/i915/display/intel_modeset_setup.c index cd21b0ddbabb..975d6bdb59f3 100644 --- a/drivers/gpu/drm/i915/display/intel_modeset_setup.c +++ b/drivers/gpu/drm/i915/display/intel_modeset_setup.c @@ -17,12 +17,14 @@ #include "intel_crtc_state_dump.h" #include "intel_ddi.h" #include "intel_de.h" +#include "intel_dp.h" #include "intel_display.h" #include "intel_display_power.h" #include "intel_display_types.h" #include "intel_modeset_setup.h" #include "intel_pch_display.h" #include "intel_pm.h" +#include "intel_global_hist.h" static void intel_crtc_disable_noatomic(struct intel_crtc *crtc, struct drm_modeset_acquire_ctx *ctx) @@ -309,6 +311,7 @@ static void intel_sanitize_encoder(struct intel_encoder *encoder) struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc); struct intel_crtc_state *crtc_state = crtc ? to_intel_crtc_state(crtc->base.state) : NULL; + struct intel_panel *panel; /* * We need to check both for a crtc link (meaning that the encoder is @@ -376,6 +379,15 @@ static void intel_sanitize_encoder(struct intel_encoder *encoder) if (HAS_DDI(i915)) intel_ddi_sanitize_encoder_pll_mapping(encoder); + + /* validate the global hist struct elements */ + if (intel_dp_is_port_edp(i915, encoder->port)) { + crtc->global_hist->has_edp = true; + panel = &connector->panel; + if (panel->backlight.present == true) + crtc->global_hist->has_pwm = true; + } + } /* FIXME read out full plane state for all planes */ -- 2.25.1