Commit 5eae8ca3 authored by Lyude Paul's avatar Lyude Paul Committed by Jani Nikula

Revert "drm/i915: Don't use VBT for detecting DPCD backlight controls"

This reverts commit d2a4bb6f.

So, turns out that this ended up just breaking things. While many
laptops incorrectly advertise themselves as supporting PWM backlight
controls, they actually will only work with DPCD backlight controls.
Unfortunately, it also seems there are a number of systems which
advertise DPCD backlight controls in their eDP DPCD but don't actually
support them. Talking with some laptop manufacturers has shown it might
be possible to probe this support via the EDID (!?!?) but I haven't been
able to confirm that this would work on any other manufacturer's
systems.

So in the mean time, we'll just revert this commit for now and go back
to the old way of doing things.

Fixes: d2a4bb6f ("drm/i915: Don't use VBT for detecting DPCD backlight controls")
Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200204192823.111404-2-lyude@redhat.com
parent f14f27b1
...@@ -328,16 +328,15 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector) ...@@ -328,16 +328,15 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector)
int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector) int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
{ {
struct intel_panel *panel = &intel_connector->panel; struct intel_panel *panel = &intel_connector->panel;
enum intel_backlight_type type = struct drm_i915_private *dev_priv = to_i915(intel_connector->base.dev);
to_i915(intel_connector->base.dev)->vbt.backlight.type;
if (i915_modparams.enable_dpcd_backlight == 0 || if (i915_modparams.enable_dpcd_backlight == 0 ||
(i915_modparams.enable_dpcd_backlight == -1 && (i915_modparams.enable_dpcd_backlight == -1 &&
!intel_dp_aux_display_control_capable(intel_connector))) dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE))
return -ENODEV; return -ENODEV;
if (type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE) if (!intel_dp_aux_display_control_capable(intel_connector))
DRM_DEBUG_DRIVER("Ignoring VBT backlight type\n"); return -ENODEV;
panel->backlight.setup = intel_dp_aux_setup_backlight; panel->backlight.setup = intel_dp_aux_setup_backlight;
panel->backlight.enable = intel_dp_aux_enable_backlight; panel->backlight.enable = intel_dp_aux_enable_backlight;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment