Commit 73c0fcac authored by Mustamin B Mustaffa's avatar Mustamin B Mustaffa Committed by Jani Nikula

drm/i915: Enable VBT based BL control for DP

Currently, BXT_PP is hardcoded with value '0'.
It practically disabled eDP backlight on MRB (BXT) platform.

This patch will tell which BXT_PP registers (there are two set of
PP_CONTROL in the spec) to be used as defined in VBT (Video Bios Timing
table) and this will enabled eDP backlight controller on MRB (BXT)
platform.

v2:
 - Remove unnecessary information in commit message.
 - Assign vbt.backlight.controller to a backlight_controller variable and
   return the variable value.
v3:
 - Rebased to latest code base.
 - updated commit title.
Signed-off-by: default avatarMustamin B Mustaffa <mustamin.b.mustaffa@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180227030734.37901-1-mustamin.b.mustaffa@intel.com
parent 128326a1
...@@ -654,19 +654,15 @@ static int ...@@ -654,19 +654,15 @@ static int
bxt_power_sequencer_idx(struct intel_dp *intel_dp) bxt_power_sequencer_idx(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp)); struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp));
int backlight_controller = dev_priv->vbt.backlight.controller;
lockdep_assert_held(&dev_priv->pps_mutex); lockdep_assert_held(&dev_priv->pps_mutex);
/* We should never land here with regular DP ports */ /* We should never land here with regular DP ports */
WARN_ON(!intel_dp_is_edp(intel_dp)); WARN_ON(!intel_dp_is_edp(intel_dp));
/*
* TODO: BXT has 2 PPS instances. The correct port->PPS instance
* mapping needs to be retrieved from VBT, for now just hard-code to
* use instance #0 always.
*/
if (!intel_dp->pps_reset) if (!intel_dp->pps_reset)
return 0; return backlight_controller;
intel_dp->pps_reset = false; intel_dp->pps_reset = false;
...@@ -676,7 +672,7 @@ bxt_power_sequencer_idx(struct intel_dp *intel_dp) ...@@ -676,7 +672,7 @@ bxt_power_sequencer_idx(struct intel_dp *intel_dp)
*/ */
intel_dp_init_panel_power_sequencer_registers(intel_dp, false); intel_dp_init_panel_power_sequencer_registers(intel_dp, false);
return 0; return backlight_controller;
} }
typedef bool (*vlv_pipe_check)(struct drm_i915_private *dev_priv, typedef bool (*vlv_pipe_check)(struct drm_i915_private *dev_priv,
......
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