[Intel-gfx] [PATCH] drm/i915/bxt: Enable VBT based BL control for DP (v2)
Jani Nikula
jani.nikula at linux.intel.com
Tue Jan 16 10:02:54 UTC 2018
On Wed, 10 Jan 2018, Mustamin B Mustaffa <mustamin.b.mustaffa at intel.com> wrote:
> 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.
>
> Signed-off-by: Mustamin B Mustaffa <mustamin.b.mustaffa at intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 09f2744..e00569f 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -640,19 +640,15 @@ static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
> struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> struct drm_device *dev = intel_dig_port->base.base.dev;
> struct drm_i915_private *dev_priv = to_i915(dev);
> + int backlight_controller = dev_priv->vbt.backlight.controller;
You need to look at connector->panel->backlight->controller
instead. This gets initialized to the vbt value, but we only use the vbt
information in bxt_setup_backlight().
BR,
Jani.
>
> lockdep_assert_held(&dev_priv->pps_mutex);
>
> /* We should never land here with regular DP ports */
> WARN_ON(!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)
> - return 0;
> + return backlight_controller;
>
> intel_dp->pps_reset = false;
>
> @@ -662,7 +658,7 @@ static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
> */
> intel_dp_init_panel_power_sequencer_registers(dev, intel_dp, false);
>
> - return 0;
> + return backlight_controller;
> }
>
> typedef bool (*vlv_pipe_check)(struct drm_i915_private *dev_priv,
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list