From: Lyude Paul Date: Tue, 4 Feb 2020 19:28:09 +0000 (-0500) Subject: Revert "drm/i915: Don't use VBT for detecting DPCD backlight controls" X-Git-Tag: baikal/mips/sdk5.9~13997^2~18^2~131 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=7d4f28cbeaa65cc24034b78fe097dec1fafd999f;p=kernel.git Revert "drm/i915: Don't use VBT for detecting DPCD backlight controls" This reverts commit 833d7790dc654ced8d132d3194e1c713ac6592dc. 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: 833d7790dc65 ("drm/i915: Don't use VBT for detecting DPCD backlight controls") Signed-off-by: Lyude Paul Cc: Jani Nikula Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20200204192823.111404-2-lyude@redhat.com --- 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 e86feebef299d..48276237b3623 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c @@ -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) { struct intel_panel *panel = &intel_connector->panel; - enum intel_backlight_type type = - to_i915(intel_connector->base.dev)->vbt.backlight.type; + struct drm_i915_private *dev_priv = to_i915(intel_connector->base.dev); if (i915_modparams.enable_dpcd_backlight == 0 || (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; - if (type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE) - DRM_DEBUG_DRIVER("Ignoring VBT backlight type\n"); + if (!intel_dp_aux_display_control_capable(intel_connector)) + return -ENODEV; panel->backlight.setup = intel_dp_aux_setup_backlight; panel->backlight.enable = intel_dp_aux_enable_backlight;