Message ID | 1560913807-10464-1-git-send-email-shawn.c.lee@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Check backlight type while doing eDP backlight initializaiton | expand |
On Tue, 18 Jun 2019, "Lee, Shawn C" <shawn.c.lee@intel.com> wrote: > If LFP backlight type setting from VBT was "VESA eDP AUX Interface". > Driver should check panel capability and try to initialize aux backlight. > No matter i915_modparams.enable_dpcd_backlight was enabled or not. The usual thing to do is to set i915.enable_dpcd_backlight initial value to -1 (i.e. make it an int), and with that default value respect VBT. Otherwise, respect the value of enable_dpcd_backlight. > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Jani Nikula <jani.nikula@intel.com> > Cc: Jose Roberto de Souza <jose.souza@intel.com> > Cc: Cooper Chiou <cooper.chiou@intel.com> > > Signed-off-by: Lee, Shawn C <shawn.c.lee@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.h | 1 + > drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 11 ++++++++++- > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h > index 4e42cfaf61a7..0b7be6389a07 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.h > +++ b/drivers/gpu/drm/i915/display/intel_bios.h > @@ -42,6 +42,7 @@ enum intel_backlight_type { > INTEL_BACKLIGHT_DISPLAY_DDI, > INTEL_BACKLIGHT_DSI_DCS, > INTEL_BACKLIGHT_PANEL_DRIVER_INTERFACE, > + INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE, > }; > > struct edp_power_seq { > 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 7ded95a334db..0cca5b732ccf 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c > @@ -261,11 +261,20 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector) > return false; > } > > +static bool > +intel_dp_bios_use_aux_backlight(struct drm_i915_private *dev_priv) > +{ > + if (dev_priv->vbt.backlight.type == INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE) > + return true; > + return false; > +} I think I'd just access dev_priv->vbt.backlight.type directly from intel_dp_aux_init_backlight_funcs. BR, Jani. > + > int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector) > { > struct intel_panel *panel = &intel_connector->panel; > > - if (!i915_modparams.enable_dpcd_backlight) > + if (!i915_modparams.enable_dpcd_backlight && > + !intel_dp_bios_use_aux_backlight(to_i915(intel_connector->base.dev))) > return -ENODEV; > > if (!intel_dp_aux_display_control_capable(intel_connector))
diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h index 4e42cfaf61a7..0b7be6389a07 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.h +++ b/drivers/gpu/drm/i915/display/intel_bios.h @@ -42,6 +42,7 @@ enum intel_backlight_type { INTEL_BACKLIGHT_DISPLAY_DDI, INTEL_BACKLIGHT_DSI_DCS, INTEL_BACKLIGHT_PANEL_DRIVER_INTERFACE, + INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE, }; struct edp_power_seq { 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 7ded95a334db..0cca5b732ccf 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c @@ -261,11 +261,20 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector) return false; } +static bool +intel_dp_bios_use_aux_backlight(struct drm_i915_private *dev_priv) +{ + if (dev_priv->vbt.backlight.type == INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE) + return true; + return false; +} + int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector) { struct intel_panel *panel = &intel_connector->panel; - if (!i915_modparams.enable_dpcd_backlight) + if (!i915_modparams.enable_dpcd_backlight && + !intel_dp_bios_use_aux_backlight(to_i915(intel_connector->base.dev))) return -ENODEV; if (!intel_dp_aux_display_control_capable(intel_connector))
If LFP backlight type setting from VBT was "VESA eDP AUX Interface". Driver should check panel capability and try to initialize aux backlight. No matter i915_modparams.enable_dpcd_backlight was enabled or not. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Jose Roberto de Souza <jose.souza@intel.com> Cc: Cooper Chiou <cooper.chiou@intel.com> Signed-off-by: Lee, Shawn C <shawn.c.lee@intel.com> --- drivers/gpu/drm/i915/display/intel_bios.h | 1 + drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-)