mirror of
https://github.com/torvalds/linux.git
synced 2025-11-03 10:10:33 +02:00
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@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://lore.kernel.org/r/20250620063445.3603086-12-suraj.kandpal@intel.com
This commit is contained in:
parent
ba02bf8e86
commit
e13af5166a
1 changed files with 49 additions and 51 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
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 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.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;
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue