Suraj Kandpal
2025-Jun-20 06:34 UTC
[PATCH v3 11/13] drm/i915/backlight: Use drm helper to initialize edp backlight
Now that drm_edp_backlight init has been modified to take into account the setup of lumininace based brightness manipulation we can just use that. --v2 -Fix commit message [Arun] Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com> --- .../drm/i915/display/intel_dp_aux_backlight.c | 98 +++++++++---------- 1 file changed, 48 insertions(+), 50 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c index 800d07c7f041..117c762fa2fe 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c @@ -584,9 +584,37 @@ static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector, u8 current_mode; int ret; - if (panel->backlight.edp.vesa.luminance_control_support) { + ret = drm_edp_backlight_init(&intel_dp->aux, &panel->backlight.edp.vesa.info, + luminance_range->max_luminance, + panel->vbt.backlight.pwm_freq_hz, + intel_dp->edp_dpcd, ¤t_level, ¤t_mode, + false); + if (ret < 0) + return ret; + + drm_dbg_kms(display->drm, + "[CONNECTOR:%d:%s] AUX VESA backlight enable is controlled through %s\n", + connector->base.base.id, connector->base.name, + dpcd_vs_pwm_str(panel->backlight.edp.vesa.info.aux_enable)); + drm_dbg_kms(display->drm, + "[CONNECTOR:%d:%s] AUX VESA backlight level is controlled through %s\n", + connector->base.base.id, connector->base.name, + dpcd_vs_pwm_str(panel->backlight.edp.vesa.info.aux_set)); + + if (!panel->backlight.edp.vesa.info.aux_set || + !panel->backlight.edp.vesa.info.aux_enable) { + ret = panel->backlight.pwm_funcs->setup(connector, pipe); + if (ret < 0) { + drm_err(display->drm, + "[CONNECTOR:%d:%s] Failed to setup PWM backlight controls for eDP backlight: %d\n", + connector->base.base.id, connector->base.name, ret); + return ret; + } + } + + if (panel->backlight.edp.vesa.info.luminance_set) { if (luminance_range->max_luminance) { - panel->backlight.max = luminance_range->max_luminance; + panel->backlight.max = panel->backlight.edp.vesa.info.max; panel->backlight.min = luminance_range->min_luminance; } else { panel->backlight.max = 512; @@ -597,56 +625,26 @@ static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector, drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] AUX VESA Nits backlight level is controlled through DPCD\n", connector->base.base.id, connector->base.name); - } else { - ret = drm_edp_backlight_init(&intel_dp->aux, &panel->backlight.edp.vesa.info, - luminance_range->max_luminance, - panel->vbt.backlight.pwm_freq_hz, - intel_dp->edp_dpcd, ¤t_level, ¤t_mode, - false); - if (ret < 0) - return ret; - - drm_dbg_kms(display->drm, - "[CONNECTOR:%d:%s] AUX VESA backlight enable is controlled through %s\n", - connector->base.base.id, connector->base.name, - dpcd_vs_pwm_str(panel->backlight.edp.vesa.info.aux_enable)); - drm_dbg_kms(display->drm, - "[CONNECTOR:%d:%s] AUX VESA backlight level is controlled through %s\n", - connector->base.base.id, connector->base.name, - dpcd_vs_pwm_str(panel->backlight.edp.vesa.info.aux_set)); - - if (!panel->backlight.edp.vesa.info.aux_set || - !panel->backlight.edp.vesa.info.aux_enable) { - ret = panel->backlight.pwm_funcs->setup(connector, pipe); - if (ret < 0) { - drm_err(display->drm, - "[CONNECTOR:%d:%s] Failed to setup PWM backlight controls for eDP backlight: %d\n", - connector->base.base.id, connector->base.name, ret); - return ret; - } + } else if (panel->backlight.edp.vesa.info.aux_set) { + panel->backlight.max = panel->backlight.edp.vesa.info.max; + panel->backlight.min = 0; + if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) { + panel->backlight.level = current_level; + panel->backlight.enabled = panel->backlight.level != 0; + } else { + panel->backlight.level = panel->backlight.max; + panel->backlight.enabled = false; } - - if (panel->backlight.edp.vesa.info.aux_set) { - panel->backlight.max = panel->backlight.edp.vesa.info.max; - panel->backlight.min = 0; - if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) { - panel->backlight.level = current_level; - panel->backlight.enabled = panel->backlight.level != 0; - } else { - panel->backlight.level = panel->backlight.max; - panel->backlight.enabled = false; - } + } else { + panel->backlight.max = panel->backlight.pwm_level_max; + panel->backlight.min = panel->backlight.pwm_level_min; + if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_PWM) { + panel->backlight.level + panel->backlight.pwm_funcs->get(connector, pipe); + panel->backlight.enabled = panel->backlight.pwm_enabled; } else { - panel->backlight.max = panel->backlight.pwm_level_max; - panel->backlight.min = panel->backlight.pwm_level_min; - if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_PWM) { - panel->backlight.level - panel->backlight.pwm_funcs->get(connector, pipe); - panel->backlight.enabled = panel->backlight.pwm_enabled; - } else { - panel->backlight.level = panel->backlight.max; - panel->backlight.enabled = false; - } + panel->backlight.level = panel->backlight.max; + panel->backlight.enabled = false; } } -- 2.34.1
Murthy, Arun R
2025-Jun-24 04:47 UTC
[PATCH v3 11/13] drm/i915/backlight: Use drm helper to initialize edp backlight
> -----Original Message----- > From: Kandpal, Suraj <suraj.kandpal at intel.com> > Sent: Friday, June 20, 2025 12:05 PM > To: intel-xe at lists.freedesktop.org; intel-gfx at lists.freedesktop.org; dri- > devel at lists.freedesktop.org; nouveau at lists.freedesktop.org > Cc: Murthy, Arun R <arun.r.murthy at intel.com>; Kandpal, Suraj > <suraj.kandpal at intel.com> > Subject: [PATCH v3 11/13] drm/i915/backlight: Use drm helper to initialize edp > backlight > > Now that drm_edp_backlight init has been modified to take into account the > setup of lumininace based brightness manipulation we can just use that. > > --v2 > -Fix commit message [Arun] > > Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com> > --- > .../drm/i915/display/intel_dp_aux_backlight.c | 98 +++++++++---------- > 1 file changed, 48 insertions(+), 50 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c > b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c > index 800d07c7f041..117c762fa2fe 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c > @@ -584,9 +584,37 @@ static int intel_dp_aux_vesa_setup_backlight(struct > intel_connector *connector, > u8 current_mode; > int ret; > > - if (panel->backlight.edp.vesa.luminance_control_support) { > + ret = drm_edp_backlight_init(&intel_dp->aux, &panel- > >backlight.edp.vesa.info, > + luminance_range->max_luminance, > + panel->vbt.backlight.pwm_freq_hz, > + intel_dp->edp_dpcd, ¤t_level, > ¤t_mode, > + false); > + if (ret < 0) > + return ret; > + > + drm_dbg_kms(display->drm, > + "[CONNECTOR:%d:%s] AUX VESA backlight enable is > controlled through %s\n", > + connector->base.base.id, connector->base.name, > + dpcd_vs_pwm_str(panel- > >backlight.edp.vesa.info.aux_enable)); > + drm_dbg_kms(display->drm, > + "[CONNECTOR:%d:%s] AUX VESA backlight level is controlled > through %s\n", > + connector->base.base.id, connector->base.name, > + dpcd_vs_pwm_str(panel->backlight.edp.vesa.info.aux_set)); > +Can these both debug prints be combined? With the above change Reviewed-by: Arun R Murthy <arun.r.murthy at intel.com> Thanks and Regards, Arun R Murthy -------------------> + if (!panel->backlight.edp.vesa.info.aux_set || > + !panel->backlight.edp.vesa.info.aux_enable) { > + ret = panel->backlight.pwm_funcs->setup(connector, pipe); > + if (ret < 0) { > + drm_err(display->drm, > + "[CONNECTOR:%d:%s] Failed to setup PWM > backlight controls for eDP backlight: %d\n", > + connector->base.base.id, connector- > >base.name, ret); > + return ret; > + } > + } > + > + if (panel->backlight.edp.vesa.info.luminance_set) { > if (luminance_range->max_luminance) { > - panel->backlight.max = luminance_range- > >max_luminance; > + panel->backlight.max = panel- > >backlight.edp.vesa.info.max; > panel->backlight.min = luminance_range- > >min_luminance; > } else { > panel->backlight.max = 512; > @@ -597,56 +625,26 @@ static int intel_dp_aux_vesa_setup_backlight(struct > intel_connector *connector, > drm_dbg_kms(display->drm, > "[CONNECTOR:%d:%s] AUX VESA Nits backlight level > is controlled through DPCD\n", > connector->base.base.id, connector->base.name); > - } else { > - ret = drm_edp_backlight_init(&intel_dp->aux, &panel- > >backlight.edp.vesa.info, > - luminance_range->max_luminance, > - panel->vbt.backlight.pwm_freq_hz, > - intel_dp->edp_dpcd, > ¤t_level, ¤t_mode, > - false); > - if (ret < 0) > - return ret; > - > - drm_dbg_kms(display->drm, > - "[CONNECTOR:%d:%s] AUX VESA backlight enable is > controlled through %s\n", > - connector->base.base.id, connector->base.name, > - dpcd_vs_pwm_str(panel- > >backlight.edp.vesa.info.aux_enable)); > - drm_dbg_kms(display->drm, > - "[CONNECTOR:%d:%s] AUX VESA backlight level is > controlled through %s\n", > - connector->base.base.id, connector->base.name, > - dpcd_vs_pwm_str(panel- > >backlight.edp.vesa.info.aux_set)); > - > - if (!panel->backlight.edp.vesa.info.aux_set || > - !panel->backlight.edp.vesa.info.aux_enable) { > - ret = panel->backlight.pwm_funcs->setup(connector, > pipe); > - if (ret < 0) { > - drm_err(display->drm, > - "[CONNECTOR:%d:%s] Failed to setup > PWM backlight controls for eDP backlight: %d\n", > - connector->base.base.id, connector- > >base.name, ret); > - return ret; > - } > + } else if (panel->backlight.edp.vesa.info.aux_set) { > + panel->backlight.max = panel->backlight.edp.vesa.info.max; > + panel->backlight.min = 0; > + if (current_mode => DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) { > + panel->backlight.level = current_level; > + panel->backlight.enabled = panel->backlight.level != 0; > + } else { > + panel->backlight.level = panel->backlight.max; > + panel->backlight.enabled = false; > } > - > - if (panel->backlight.edp.vesa.info.aux_set) { > - panel->backlight.max = panel- > >backlight.edp.vesa.info.max; > - panel->backlight.min = 0; > - if (current_mode => DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) { > - panel->backlight.level = current_level; > - panel->backlight.enabled = panel- > >backlight.level != 0; > - } else { > - panel->backlight.level = panel->backlight.max; > - panel->backlight.enabled = false; > - } > + } else { > + panel->backlight.max = panel->backlight.pwm_level_max; > + panel->backlight.min = panel->backlight.pwm_level_min; > + if (current_mode => DP_EDP_BACKLIGHT_CONTROL_MODE_PWM) { > + panel->backlight.level > + panel->backlight.pwm_funcs->get(connector, > pipe); > + panel->backlight.enabled = panel- > >backlight.pwm_enabled; > } else { > - panel->backlight.max = panel- > >backlight.pwm_level_max; > - panel->backlight.min = panel- > >backlight.pwm_level_min; > - if (current_mode => DP_EDP_BACKLIGHT_CONTROL_MODE_PWM) { > - panel->backlight.level > - panel->backlight.pwm_funcs- > >get(connector, pipe); > - panel->backlight.enabled = panel- > >backlight.pwm_enabled; > - } else { > - panel->backlight.level = panel->backlight.max; > - panel->backlight.enabled = false; > - } > + panel->backlight.level = panel->backlight.max; > + panel->backlight.enabled = false; > } > } > > -- > 2.34.1